Rust 1.54 编程语言发布

系统编程语言 Rust 1.54 已发布,该语言由 Mozilla 项目创建,但现在由独立非营利组织 Rust 基金会赞助开发。 该语言专注于内存安全,提供自动内存管理,并提供了无需使用垃圾收集器或运行时即可实现高任务并行性的方法(运行时被简化为标准库的基本初始化和维护)。

Rust 的自动内存管理使开发人员在操作指针时避免错误,并防止由于低级内存操作而出现的问题,例如在释放后访问内存区域、取消引用空指针、缓冲区溢出等。 为了分发库、提供构建和管理依赖项,该项目开发了 Cargo 包管理器。 crates.io 存储库支持托管库。

主要创新:

  • 添加了在属性内使用类似函数的宏的功能(过程宏和使用“macro_rules!”宏创建的宏)。 此类宏通过符号“!”与函数区分开来。 在名称 (macro!(...)) 之后并替换宏源文本而不是生成函数调用。 在属性中调用宏对于将其他文件的内容包含在记录注释中非常有用。 例如,要插入 README 文件的内容和脚本执行的结果,可以指定: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR "), "/ generated.rs" )] mod 生成;
  • wasm32 平台的内置编译器函数(Intrinsics)已经稳定,允许在 WebAssembly 中使用 SIMD 指令。 大多数函数(例如 v128_bitselect)都可以在“安全”模式下使用,但某些使用指针的函数(例如 v128_load)仍然是“不安全”的。
  • 增量编译的默认使用已经回归,允许您仅重建代码中发生变化的部分,这可以显着减少在进行微小更改后重新编译时构建项目所需的时间。 由于在添加从磁盘缓存加载数据的额外检查后出现的隐藏错误,增量编译在版本 1.52.1 中被禁用。
  • 新的部分 API 已转移到稳定类别,包括以下稳定的 API:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • 拱门::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::partition_point
  • 向货物树添加了选项:“—prune " 从依赖关系图中删除包,"-深度" 只显示依赖关系树中给定嵌套级别的元素,"-edges no-proc-macro" 隐藏过程宏依​​赖关系。

来源: opennet.ru

添加评论