Rust 1.37 编程语言发布

发表 系统编程语言发布 锈1.37,由 Mozilla 项目创建。 该语言专注于内存安全,提供自动内存管理,并提供一种无需使用垃圾收集器或运行时即可实现高任务并行性的方法。

Rust 的自动内存管理使开发人员免于指针操作,并防止低级内存操作引起的问题,例如释放后内存访问、空指针取消引用、缓冲区溢出等。 正在开发一个包管理器来分发库、确保组装并管理项目的依赖关系。 货物,让您一键获取程序所需的库。 支持存储库来托管库 箱子.

创新:

  • 在 rustc 编译器中 提供 支持基于代码分析结果的优化(PGO,Profile-Guided Optimization),
    允许您根据程序执行期间积累的统计数据分析生成更优化的代码。 要生成配置文件,需要提供“-C profile-generate”标志,并在汇编期间使用该配置文件 -“-C profile-use”(最初,程序使用第一个标志进行汇编,运行,然后创建配置文件,它与第二个标志重新组装);

  • 执行“cargo run”命令时,如果包中有多个可执行文件,则添加了自动选择可执行文件运行的功能,方便快速测试控制台应用程序。 要执行的默认文件是通过 [package] 部分中的 default-run 指令和包参数确定的,这样您就可以避免每次运行“cargo run”时通过“-bin”标志显式指定文件名;
  • “货物供应商”命令,以前提供为 单独包装。 该命令允许您使用依赖项的本地副本来组织工作 - 执行“cargovendor”后,项目依赖项的所有源代码都会从 crates.io 下载到本地目录,然后可以将其用于工作而无需访问 crates。 io(执行命令后,会显示更改配置的提示以使用该目录进行构建)。 这一功能已用于组织 rustc 编译器的交付,并将所有依赖项打包到发布的一个存档中;
  • 现在可以使用类型别名创建指向枚举选项的链接(例如,在函数“fnincrement_or_zero(x:ByteOption)”的主体中,您可以指定“ByteOption::None => 0”)、类型计算结构(< MyType←.. ››::option => N) 或 Self 访问(在块 c &self 中您可以指定“Self::Quarter => 25”);
  • 添加了在宏中创建未命名常量的功能。 现在可以使用“_”字符动态选择不重复的标识符,而不是在“const”中定义元素名称,避免再次调用宏时出现名称冲突;
  • 添加了将“#[repr(align(N))”属性与枚举一起使用的功能,其语法类似于定义具有对齐方式的 AlignN<T> 结构,然后使用 AlignN<MyEnum>;
  • API 的新部分已移至稳定类别,包括 BufReader::buffer、BufWriter::buffer 和
    单元格::from_mut,
    细胞::as_slice_of_cells,
    DoubleEndedIterator::nth_back,
    选项::异或
    {i,u}{8,16,64,128,size}::reverse_bits、Wrapping::reverse_bits 和
    切片::copy_within。

另外,还可以注意到 测试开始 项目 异步标准,它提供了 Rust 标准库的异步变体(std 库的一个端口,其中所有接口都以异步版本提供,并准备好与 async/await 语法一起使用)。

来源: opennet.ru

添加评论