## Rust vs. Swift:似曾相识 最近学习 Rust 时,发现它与我使用多年的 Swift 语言有惊人的相似之处。两种语言都大量借鉴了函数式编程——包括标记枚举、匹配表达式和强大的类型系统——并提供通过 `unsafe` 代码访问低级功能的方式。两者都编译为本机代码和 WASM,在没有垃圾回收的情况下实现高性能。 然而,它们的内核哲学却不同。Rust 是“自下而上”的,是一种系统语言,默认情况下优先考虑控制和速度,需要显式内存管理(所有权/借用),但在需要时提供 `Rc` 和 `Cow` 等便利功能。Swift 是“自上而下”的,优先考虑易用性,默认使用值类型和写时复制语义,将所有权作为性能优化的选择。 这体现在语法和编译器行为上。Swift 经常将 Rust 类似的概念*隐藏*在熟悉的 C 风格结构之下(例如,`switch` 语句充当模式匹配)。Rust 的编译器会主动*强制*解决复杂问题,而 Swift 经常会自动化这些问题。 虽然 Swift 历史上专注于 Apple 平台,但它正在迅速成为一种可行的跨平台选择,对 Linux、WASM 甚至 Windows 的支持日益增加。尽管存在一些缺点,例如编译时间和不太成熟的包生态系统,但 Swift 为许多应用程序提供了一种引人入胜且便捷的 Rust 替代方案。
## LLVM 开发总结 - 2025
2025 年 LLVM 多个关键项目持续取得进展。历时多年的 **ptradd 迁移** 接近完成,将 GEP 指令规范化为单个偏移量,从而实现公共子表达式消除并改进链式 GEP 处理——这些优势与最终迁移无关。目前仍在继续讨论 `ptradd` 的缩放因子支持以及过渡到强制使用。
**生命周期 intrinsic** 发生了重大变化,强制其与 allocas 一起使用,并删除了大小参数,从而改进了栈着色并发现了现有的 IR 问题。**捕获跟踪** 得到了增强,可以区分地址捕获和来源捕获,从而使 Rust 优化受益。
为改进 LLVM 的 ABI 处理,开发了一个原型 **ABI 下降库**,并对 Clang 和 LLVM 之间的类型对齐进行了一致性检查。通过对 SCCP 和对象大小计算进行优化,以及来自其他贡献者(如调试行表发射)的贡献,**编译时间** 得到了改善。
进一步的优化包括 **存储合并优化** 和在 SCCP 中启用 **PredicateInfo**。Rust 更新利用了 LLVM 的新功能,例如只读捕获和 alloc-variant-zeroed 属性。打包改进包括单体构建和 PGO,但简化兼容性包的尝试失败,凸显了 RPM 符号链接方面的挑战。
最后,作为领域团队和项目委员会参与新的 LLVM 治理结构,并与形式化规范工作组进行初步合作,完成了这一年。大约审查了 2500 个 pull request。
## Wiki 教育与生成式人工智能:保护维基百科的完整性
Wiki 教育负责培养 19% 的新英文维基百科编辑者,调查了生成式人工智能(GenAI)工具(如 ChatGPT)对内容质量的影响。他们的研究揭示了一个令人担忧的趋势:虽然人工智能不一定会*创建*虚假引用,但**超过三分之二的人工智能生成文章包含无法在引用来源中验证的信息**——这是一种微妙但重要的错误信息形式。
他们使用 Pangram 检测工具发现,ChatGPT 发布后人工智能生成文本急剧增加。干预措施——包括培训、自动警报和内容审查——被证明是有效的。通过主动阻止直接复制粘贴并强调可验证性,他们将文章中人工智能草稿的内容从预计的 25% 降低到仅 5%。
Wiki 教育虽然告诫不要使用 GenAI 来*撰写*内容,但发现人工智能对研究任务(如识别文章中的空白和查找来源)有帮助。他们提倡广泛采用 Pangram 等工具进行自动内容审查,并建议为新编辑提供更明确的指导,强调基于来源的写作,而不是人工智能生成的草稿。
最终,Wiki 教育的经验强调了在人工智能时代保持警惕和适应的重要性,以确保维基百科保持其准确性和可靠性。