Rust 1.64.0 发布
Rust 团队于今天发布了 Rust 1.64.0 新版本,1.64.0 稳定版中的主要更新内容如下:
用 IntoFuture 增强 .await
Rust 1.64 稳定了 IntoFuture 特性。IntoFuture 是一个类似于 IntoIterator 的特性,但 IntoFuture 不支持 for ... in ... 循环,而是改变了 .await 的工作方式。它可以等待任何可以通过 IntoFuture 转换为 Future 的东西,这可以帮助你的 API 变得更友好.
core 和 alloc 中与 C 语言兼容的 FFI 类型
当调用或被 C ABI 调用时,Rust 代码可以使用 c_uint 或 c_ulong 等类型别名以在任何目标上匹配来自 C 的相应类型,而不需要特定于目标的代码或条件。
以前,这些类型别名只在 std 中可用,所以为嵌入式目标和其他只能使用 core 或 alloc 的情况下编写的代码不能使用这些类型。
Rust 1.64 现在在 core::fi 中提供了所有的 c_* 类型别名,以及用于处理 C 字符串的 core::f i::CStr。Rust 1.64 还提供了 alloc::ffi::CString,用于处理只使用 alloc crate 的 C 字符串。
rust-analyzer 现在可以通过 rustup 获得
rust-analyzer 现在作为 Rust 工具集的一部分被包含在其中。这使得下载和访问 rust-analyzer 更加容易,并使其在更多平台上可用。如今它可以作为一个 rustup 组件使用,可以通过以下方式安装。
rustup component add rust-analyzer
此时,要运行已安装的 rustup 版本,你需要这样调用它:
rustup run stable rust-analyzer
rustup 的下一个版本将提供一个内置的代理,这样运行可执行的 rust-analyzer 就会启动相应的版本。
Cargo 改进
当在一个 Cargo 工作空间中处理相关库或二进制 crate 的集合时,你现在可以避免 crate 之间共同的字段值的重复,如共同的版本号、仓库 URL 或 rust-version。这也有助于在更新 crate 时保持这些值的同步。
在为多个目标进行构建时,你现在可以向 cargo build 传递多个 --target 选项,以便一次性构建所有这些目标。
稳定的 API
以下方法和特性的实现现在已经稳定了:
[future::IntoFuture]()[num::NonZero*::checked_mul]()[num::NonZero*::checked_pow]()[num::NonZero*::saturating_mul]()[num::NonZero*::saturating_pow]()[num::NonZeroI*::abs]()[num::NonZeroI*::checked_abs]()[num::NonZeroI*::overflowing_abs]()[num::NonZeroI*::saturating_abs]()[num::NonZeroI*::unsigned_abs]()[num::NonZeroI*::wrapping_abs]()[num::NonZeroU*::checked_add]()[num::NonZeroU*::checked_next_power_of_two]()[num::NonZeroU*::saturating_add]()[os::unix::process::CommandExt::process_group]()[os::windows::fs::FileTypeExt::is_symlink_dir]()[os::windows::fs::FileTypeExt::is_symlink_file]()
这些类型以前在 std::fi 中是稳定的,但现在在 core 和 alloc 中也可用:
[core::ffi::CStr]()[core::ffi::FromBytesWithNulError]()[alloc::ffi::CString]()[alloc::ffi::FromVecWithNulError]()[alloc::ffi::IntoStringError]()[alloc::ffi::NulError]()
这些类型以前在 std::os::raw 中是稳定的,但现在在 core::ffi 和 std::ffi 中也可用
[ffi::c_char]()[ffi::c_double]()[ffi::c_float]()[ffi::c_int]()[ffi::c_long]()[ffi::c_longlong]()[ffi::c_schar]()[ffi::c_short]()[ffi::c_uchar]()[ffi::c_uint]()[ffi::c_ulong]()[ffi::c_ulonglong]()[ffi::c_ushort]()
更多详情可查看:https://github.com/rust-lang/rust/releases/tag/1.64.0
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Erlang/OTP 25.1 发布
Erlang/OTP 25.1 是 OTP 25 的第一个维护补丁包,主要包含错误修复以及许多小改进。 Erlang 是一种通用的并发函数式程序设计语言。Erlang 也可以指 Erlang/OTP 的通称,开源电信平台 (OTP) 是 Erlang 的常用执行环境及一系列标准组件。 主要变化 Crypto Crypto 现在被认为可以与 OpenSSL 3.0 cryptolib 一起用于生产环境。ENGINE 和 FIPS 尚未完全发挥作用。 改变引擎加载/卸载函数的行为 ssl 已发现并修复了一个漏洞,编号为 CVE-2022-37026,用于绕过客户端认证。目前已通过 23.3.4.15, 24.3.4.2 和 25.0.2 补丁在受支持的 track 上发布修正。该漏洞也可能存在于较旧的 OTP 版本中们建议受影响的用户在各自的 track 上升级到这些版本之一或更高版本,OTP 25.1 将是一个更好的选择。受影响的是那些直接或通过其他应用程序间接使用该应用程序运行ssl/tls/dtls服务器的用户。例如通过inets(httpd),cowboy)等。注意该漏洞只影响请求...
-
下一篇
GNOME 43 发布
距离 GNOME 42 发布 6 个月后,GNOME 于近日正式推出了代号为 "Guadalajara" 的 GNOME 43。最新的 GNOME 版本带来了全面的改进,包括新的快速设置菜单、重新设计的 Files 应用和设备安全设置。GNOME 43 延续了 GNOME 应用程序从 GTK 3 迁移到 GTK 4 的趋势,除此之外还包括许多其他较小的改进。 快速设置 GNOME 43 带有一个重新设计的系统状态菜单,它允许快速改变常用的设置。以前需要深入菜单的设置,现在只需点击按钮就可以改变设置。新的设计也可以让你一目了然地看到设置状态。 除了使现有的设置更容易使用外,新的设置菜单还包括一些值得注意的新功能: 菜单中首次包含了用户界面风格的设置,允许在浅色和深色样式之间切换。此前这一设置只能从 "设置" 应用程序中修改 包括一个新的屏幕截图按钮,这是对 GNOME 42 中引入的内置屏幕截图功能的补充 当有多个音频设备时,现在可以从菜单中切换它们,无需深入设置应用程序进行调整 当 VPN 被关闭时,按下 VPN 按钮将连接到最后使用的网络。 更多工具迁移至 GTK 4 GTK 4 是...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL数据库在高并发下的优化方案
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8

微信收款码
支付宝收款码