当前位置: 首页 > news >正文

【Rust日报】《LLVM 糟糕的一面》|《cargo-semver-checks 呈现指数级增长》

《LLVM 糟糕的一面》

作者:Nikita Popov(LLVM 核心维护者、Rust 编译器团队负责人)

文章深度分析了 LLVM 当前存在的弊端。他强调,这份清单并非劝退指南,而是为 LLVM 指明未来的改进方向

宏观层面的问题:

  • 审查能力不足(Review Capacity):LLVM 不缺代码贡献者,但极度缺乏合格的代码审查者。这导致大量 PR 长期搁置,或者被非专业人士“盖章”通过,影响了代码质量和贡献者体验。

  • 频繁的改动(Churn):LLVM 的 C++ API 和 IR(中间表示)并不稳定。这种快速迭代虽然能修正过去的错误,但给下游用户(如 Rust、Clang)带来了巨大的维护成本。

技术设计上的缺陷:

  • Context 与 Module 的割裂

    • LLVM 将全局数据存储在Context中,将编译单元存储在Module中。

    • 痛点:类型(Types)和常量(Constants)存在于Context中,但关于类型布局的关键信息(如“指针有多宽”)却存储在ModuleDataLayout中。这导致在处理类型和常量时,经常无法直接获取其内存布局信息。

  • ABI 与 目标特性(Target Features)的耦合

    • 在某些架构(如 AArch64)上,开启特定的目标特性(如浮点寄存器)会改变函数的调用约定(ABI)。

    • 风险:如果一个开启了某特性的函数调用了另一个关闭该特性的函数,可能会导致 ABI 不匹配,进而引发崩溃。作者认为 ABI 应该是模块级的,而特性应该是函数级的,两者目前耦合过于紧密。

  • 常量表达式(Constant Expressions)的残余

    • 虽然 LLVM 已经在逐步移除复杂的常量表达式(转而使用普通指令),但仍有一些顽固的残余(如icmpfcmp等)。这些表达式增加了编译器的复杂性,且难以维护。

已取得的进展:作者提到,他几年前提出的三大痛点已接近解决:

  • 不透明指针(Opaque Pointers):已完全完成,消除了不同类型指针在 IR 层面的区分。

  • 常量表达式移除:已完成大部分。

  • ptradd 迁移:正在进行中,旨在统一指针算术运算。

结论与展望: Nikita Popov 认为 LLVM 正处于一个“还债”期。虽然它作为工业界事实上的标准非常强大,但其历史包袱和设计缺陷依然明显。他呼吁更多的企业和资深开发者投入到代码审查基础架构清理中,而不仅仅是贡献新功能。

阅读:https://www.npopov.com/2026/01/11/LLVM-The-bad-parts.html

《cargo-semver-checks 呈现指数级增长》

作者: Predrag Gruevski

这篇文章总结了 Rust 生态中的语义化版本(SemVer)检查工具cargo-semver-checks在 2025 年的进展,指出该项目正处于爆发式增长阶段,旨在实现“无畏的 cargo 更新“。

指数级增长的数据:

  • Lint 规则数量翻倍:Lint 规则(检查项)从 2022 年底的 30 个、2023 年的 57 个、2024 年的 120 个,增长到了 2025 年底的242 个,连续多年保持翻倍增长。

  • 发布与贡献:全年发布了 7 个主要版本(v0.39 至 v0.45),包含来自 18 位作者的 734 次提交。

关键技术突破与改进:

  • 性能大幅提升:Lint 的总执行时间减少了4 倍,部分特定规则的运行速度提升了 10 倍。

  • Rustdoc JSON 兼容性:工具在 2025 年平滑支持了26 个不同版本的 rustdoc JSON 格式(从 v32 到 v57)。这意味着用户无需关心底层格式变化,工具能自动适应不同版本的 Rust 编译器。

  • Sealed Traits 检测:v0.40 版本大幅升级了对密封 Trait 的识别系统,提高了检查准确性并支持处理循环 Trait 关系。

项目愿景:无畏更新。 作者重申了项目的终极目标:消除cargo update时的“俄罗斯轮盘赌”现象。目前,即便是最流行的前 1000 个 crate 中,也有超过 1/6 的项目曾意外发布过破坏性变更。cargo-semver-checks的存在就是为了在发布前拦截这些问题。

2026 年展望与挑战:

  • 可持续性问题:作者直言目前开源项目的资金支持(如 GitHub Sponsors 和企业赞助)仍显不足。如果没有重大的企业资助,2026 年可能无法维持这种翻倍增加 Lint 的强度。

  • 策略转变:2026 年的工作重点可能会从单纯增加规则转向提升稳定性、减少误报以及进一步集成到 Cargo 官方生态中。

2025 年是cargo-semver-checks走向成熟的关键一年,它通过更强大的自动化检查和更快的运行速度,进一步保障了 Rust 生态的稳定性。作者呼吁更多依赖该工具的企业参与资助,以维持这一核心基础设施的健康发展。

阅读:https://predr.ag/blog/cargo-semver-checks-2025-year-in-review/

stdout-tv:在终端播放 YouTube 视频


作者不仅完成了一个有趣的 Demo(在终端看 YouTube),还将其中的核心图像处理逻辑封装成了高质量、可复用的工具库pixel2ascii

核心功能:该工具可以抓取 YouTube 视频流,并将其每一帧实时转换为 ASCII 字符(文字画),在终端内直接播放。

开发动机:这是作者的第一个 Rust 学习项目,旨在通过实践掌握 Rust 的所有权(Ownership)、性能优化和终端 I/O 处理。

技术实现:它依赖于作者独立拆分出来的核心库pixel2ascii来进行图像到文字的转换,并加入了基础的帧率(FPS)控制机制。

pixel2ascii是上述视频播放器的“心脏”,是一个专门负责将像素图像转换为 ASCII 字符的 Rust 库(Crate)和命令行工具。核心功能:

  • 图像转 ASCII:支持将 PNG, JPEG, GIF, BMP 等多种格式转换为文字画。

  • **真彩色支持 (ANSI Truecolor)**:对于支持 24 位色的现代终端,可以生成带有颜色的 ASCII 图,视觉效果非常丰富。

  • 多种字符集方案:提供内置的default(标准)、dense(密集型)和blocks(由 Unicode 方块组成,效果最接近像素图)三种方案,也支持自定义字符。

  • 自适应调整:支持长宽比修正(解决终端字符非正方形的问题)和亮度反转(适配浅色或深色终端背景)。

  • 高性能:得益于 Rust 的特性,它能快速处理图像块的平均色彩和亮度采样。

仓库:https://github.com/SameerVers3/stdout-tv

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss

  • 微信公众号:Rust语言中文社区

http://www.jsqmd.com/news/258066/

相关文章:

  • 深耕男士护肤11年,左颜右色:科研驱动的国货功效护肤领军者 - 速递信息
  • 图灵新知2026年书讯 | 万众期待,又是新书爆发的一年!
  • 2026年1月权威榜单:GEO优化公司综合实力Top5,谁是真正的领导者? - 速递信息
  • 为什么 Go 社区强调避免不必要的抽象?—— 借用海德格尔哲学寻找“正确”的答案
  • 2026自动化展会导航:口碑好,一网打尽!智能/压力机/液压气动/环保/机床/激光技术设备/机械,自动化展览怎么选择 - 品牌推荐师
  • 2026年新加坡留学中介哪家好:五家优选全面对比 - 速递信息
  • 自动操作浏览器,又一款 Chrome 神器,开源了!
  • 2026 年前端必会的 10 个现代 CSS 布局技巧
  • 十条经过实战检验的 TypeScript monorepo 约定
  • 2026年出国留学服务哪个更专业:五家优选全面对比 - 速递信息
  • 苹果终于眨眼了:打电话给谷歌救 Siri(对,真的是谷歌)
  • 分析各类原料分子包裹技术产品和服务厂家,全国排名如何? - 工业品牌热点
  • Anthropic万字长文:一篇AI Agent评估体系的详细解析!
  • COSCon‘25 第十届中国开源年会登上中国日报,并获评思否「最受开发者欢迎的技术活动」
  • 2026年新加坡中学留学机构推荐:五家优选全面对比 - 速递信息
  • 2025年就业导向新西兰留学机构推荐:五家优选全面评测 - 速递信息
  • “买几送几“解题模板探讨
  • MySQL自增id超过int最大值的场景
  • Instagram十亿级“用户名已被占用“背后的架构设计
  • vue3怎么实现网页端的文件夹上传?
  • 百度WebUploader在vue-cli项目里怎么用文件夹上传?
  • html中如何用js实现大文件文件夹上传?
  • 【2026最新】电商数据分析平台实用解析:从选型到落地应用 - 速递信息
  • 教育平台如何用百度UE实现PPT内容无缝转存至网页?
  • 2026国际竞赛课程培训机构全景指南:从AMC备赛到升学竞争力提升 - 速递信息
  • 2026口碑柠檬茶加盟品牌梳理:从供应链到盈利模型拆解 - 速递信息
  • 深度测评9个论文写作工具,一键生成论文工具助研究生高效毕业!
  • 你不是在和AI竞争,你是在和“不用AI的自己”
  • 一键获取!上海智推时代咨询电话与对接方式 - 速递信息
  • 聚焦“十五五”人才战略,终成国际2026服务生态大会在青岛成功举办