< 返回版块

苦瓜小仔 发表于 2025-08-21 13:31

Tags:日报

Rust 公告:将 x86_64-apple-darwin 目标平台降级到 Tier 2

这篇文章宣布了 Rust 项目将 x86_64-apple-darwin 目标平台从 Tier 1 降级到 Tier 2 的决定。

这一变化主要是由于 Apple 停止支持 x86_64 架构以及 GitHub 不再提供免费的 macOS x86_64 测试环境。

虽然标准库和编译器的构建仍然会分发,但该目标的测试支持将减少,可能会更快地积累错误。

主要内容

  • 变更内容:从 Rust 1.90.0 开始,x86_64-apple-darwin 目标平台将被降级到 Tier 2。
  • 背景
    • Rust 一直支持 macOS,甚至可以追溯到 Rust 0.1 版本。
    • Apple 已经从 x86 架构迁移到 x86_64 架构,现在又转向 Apple Silicon(苹果自研芯片),并宣布停止支持 x86_64 架构。
    • GitHub 宣布不再为公共仓库提供免费的 macOS x86_64 测试环境(runners)。Rust 项目依赖这些测试环境来执行 x86_64-apple-darwin 目标的自动化测试。
    • 根据 Rust 的目标层级政策,Tier 1 平台必须在 CI 中运行测试,因此 x86_64-apple-darwin 需要被降级到 Tier 2。

具体变化

  • 对用户的影响:从 Rust 1.90.0 开始,x86_64-apple-darwin 将成为 Tier 2 平台,但标准库和编译器的构建仍然会通过 rustup 或其他安装方法分发给用户。
  • 测试支持:由于测试环境的减少,x86_64-apple-darwin 目标上的自动化测试不再保证运行。这意味着该目标可能会更快地积累未被发现的错误。

未来展望

  • 进一步降级的可能性:如果 x86_64-apple-darwin 目标在未来导致具体问题,可能会进一步降级。目前尚未有进一步降级的计划。
  • 详细动机:关于降级的详细动机可以参考 RFC 3841

阅读:https://blog.rust-lang.org/2025/08/19/demoting-x86-64-apple-darwin-to-tier-2-with-host-tools/

Reddit:https://www.reddit.com/r/rust/comments/1mulyk1/demoting_x86_64appledarwin_to_tier_2_with_host/

文章《Const Trait Counterexamples》

作者: Rust Lang Team 的 const traits 项目的负责人

主要探讨了 Rust 中 const traits 的设计细节、当前提案的总结以及对一些替代方案的分析和反驳。

这篇文章为 Rust 社区提供了关于 const traits 设计的深入见解,并为未来的语言设计和改进提供了方向。

1. Const Traits 的设计目标和现状

  • 目标:希望尽快稳定 const traits 功能,但这是一个复杂的功能,涉及大量设计考量。
  • 现状:团队收到了许多来自不熟悉该功能和设计的开发者的反馈,因此作者总结了一些常见的反对意见和反例。

2. 当前提案概述

  • 声明 const trait:通过在 trait 前添加 const 关键字,使其可以在 trait bounds 中使用。
    const trait PartialEq<Rhs: ?Sized = Self> {
        fn eq(&self, other: &Rhs) -> bool;
        fn ne(&self, other: &Rhs) -> bool { !self.eq(other) }
    }
    
  • 实现 const trait:通过在 impl 前添加 const 关键字,使其满足 trait bounds。
    impl const PartialEq for MyType<()> {
        fn eq(&self, other: &Self) -> bool {
            true
        }
    }
    
  • 泛型 const 代码:引入 Destruct trait,允许在编译时销毁类型。
    pub const fn callit<T: ~const Destruct, F: ~const FnOnce(&T)>(x: T, f: F) {
        f(&x)
    }
    

3. ~const 的含义

  • ~const 是一个修饰符,用于 trait bounds,表示“可能为 const”或“如果在 const 上下文中则为 const”。
  • 它只在从 const 上下文中使用时才需要证明。
  • 在函数调用时,~const 约束才会被强制执行。

4. 替代方案的分析

文章详细探讨了以下替代方案,并分析了它们的优缺点:

Proposal 1: 默认为隐式 const

  • 想法:让 T: Trait 在 const 上下文中隐式地表示 T: ~const Trait,并使用 ?const 作为退出选项。
  • 问题
    • 与现有稳定版 Rust 的行为冲突。
    • 需要通过多个版本逐步引入,这可能导致迁移路径复杂且容易出错。
    • 对于非 const trait,会导致混淆和潜在的严格性问题。

Proposal 2: 选择性 const

  • 想法:允许在 trait 中逐个方法标记为 const,而不是整个 trait。
  • 问题
    • 需要区分哪些方法可以在 const 上下文中调用,哪些不能,这可能导致混乱。
    • 无法区分哪些 trait 允许 const 实现,哪些不允许。

Proposal 3: 使用 T: const Trait

  • 想法:使用 T: const Trait 表示“如果在 const 上下文中则为 const”的约束。
  • 问题:可能会导致与现有语法的不一致性,需要进一步讨论。

Proposal 4: Destruct vs. Drop

  • 想法:引入 Destruct trait 来区分哪些类型可以在编译时销毁。
  • 问题:如果使用 T: ~const Drop,会导致与 T: Drop 的不对称性。

Proposal 5: 学术研究的适用性

  • 想法:尝试将学术研究中的效果系统应用于 Rust。
  • 问题:这些模型可能过于复杂,不适合 Rust 的实际需求。

Proposal 6: 一致性的困境

  • 想法:在所有需要的地方使用 ~const,例如 ~const fn~const trait 等。
  • 问题:这可能会导致不必要的复杂性,且对实际开发帮助不大。

Proposal 7: ?const 的适用性

  • 想法:使用 ?const 表示“可能为 const”。
  • 问题? 在 Rust 中通常用于放松约束,而 ~const 是更严格的约束,因此使用 ?const 不合适。

5. 未来方向和讨论

  • 待确定的内容
    • const-when-const 约束的语法(~const[const](const))。
    • 关键字的顺序(const impl Trait for Tyimpl const Trait for Ty)。
    • Destruct 的命名是否需要改进。
  • 未来可能的扩展
    • const fn trait 方法。
    • ~const fn 指针、dyn ~const Traitimpl ~const Trait
    • 配置 derive 宏以生成 const 实现。

6. 总结

文章最后提到,作者自 2021 年 7 月开始从事 const traits 的工作,至今已四年。尽管可能还需要更多时间来完善,但作者希望通过这篇文章帮助改进语言设计的讨论。同时,作者也鼓励社区成员参与讨论,并在 GitHub 上支持他的工作。

阅读:https://dbeef.dev/const-trait-counterexamples/

Reddit:https://www.reddit.com/r/rust/comments/1mvgukq/const_trait_counterexamples/

Mach:网络模糊测试和资产发现工具

MACH 是一款速度极快的网络模糊测试和资产发现工具,可帮助攻击性安全专业人员发现隐藏的端点、服务和漏洞。它的设计考虑了速度 、 精度和状态跟踪 。

功能:

  • 🚀 快速模糊测试 ——针对速度进行优化的高性能扫描引擎。
  • 🔍 智能发现 ——查找隐藏的端点、子域和资产。
  • 🛠️ 状态引擎 — 有效跟踪已发现的资产。
  • 📊 可视化输出 ——清晰的结果和结构化的报告。
  • ⚡ 多样化且强大 ——专为进攻性安全工作流程而打造。

仓库:https://github.com/clickswave/mach

Reddit:https://www.reddit.com/r/rust/comments/1ms9u3t/media_releasing_mach_a_web_fuzzing_tool_designed/

讨论:Bevy 真的像介绍中描述的那样不稳定吗?

“一直在发生大量变化。巨大的破坏性变化。”

Reddit:https://www.reddit.com/r/rust/comments/1mvfamk/is_bevy_really_as_unstable_as_their_introduction/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页