< 返回版块

Yuan YQ 发表于 2025-02-20 12:25

Typst 0.13 发布

Typst 是一款功能强大的开源排版系统,旨在为用户提供高效、灵活且美观的排版体验,其具备多种特性:

  • 语法简洁易用:采用直观、简洁的语法,即使是没有专业排版经验的用户也能快速上手,轻松创建各种文档,降低了排版的技术门槛。
  • 丰富的功能支持:拥有丰富的功能,涵盖了从基础的文本排版(如设置字体、字号、颜色等)到复杂的数学公式编辑、图表绘制以及多语言排版等各个方面,满足不同用户在不同场景下的多样化需求。
  • 高度可定制性:支持用户根据自身需求进行深度定制,无论是文档的整体风格、页面布局,还是特定元素的样式,都可以通过相应的设置进行调整,充分体现个性化。
  • 跨平台使用:具备良好的跨平台性,可在多种操作系统上使用,方便用户在不同设备间切换使用,不受系统限制,提高了使用的便捷性。
  • 社区生态活跃:拥有活跃的开源社区,社区成员积极贡献插件、模板等资源,同时也为用户提供技术支持和交流平台,促进了 Typst 的不断发展和完善 。

此次发布的 0.13 版本的主要功能与改进有:

  • 段落与首行缩进
  • 外观优化的大纲
  • 新曲线函数
  • 图像生成增强
  • 数学模式改进
  • 字体覆盖控制
  • PDF 文件嵌入
  • HTML 导出初步支持

原文地址:https://typst.app/blog/2025/typst-0.13/

Typst 官方网站:https://typst.app/

Greg KH: Rust 不是“银弹”,但的确在很多方面展现了独特的优势

作为一个在过去 15 年多时间里几乎见证了每一个内核错误修复和安全问题的人(嗯,希望所有问题最终都能进入稳定版本的代码树,不过有时候维护者或开发者忘记将它们标记为错误修复时,我们确实会遗漏一些问题),并且见证了每一个发布的内核通用漏洞披露(CVE),我想我可以就这个话题发表一下看法。

我们遇到的大多数漏洞(这里说的是数量,而非质量或严重程度)是由 C 语言中那些愚蠢的小边角情况导致的,而这些情况在 Rust 语言中是完全不存在的。比如像简单的内存覆盖(当然,Rust 也远不能捕获所有这类问题)、错误处理路径的清理、忘记检查错误值以及释放后使用的错误。这就是为什么我希望看到 Rust 被引入内核,这类问题会随之消失,让开发者和维护者有更多时间专注于真正出现的漏洞(比如逻辑问题、竞态条件等等)。

我完全支持将我们的 C 语言代码库朝着杜绝这类问题发生的方向推进。基斯(Kees)、古斯塔沃(Gustavo)以及其他人员在此所做的工作非常出色,而且是完全有必要的。我们有 3000 万行 C 语言代码,在未来几年内它们都不会消失。这是一项值得付出努力的工作,无论如何都不会停止,也不应该停止。

但对于新的代码或驱动程序,用 Rust 来编写,因为在 Rust 中这类漏洞根本不会出现(或者出现的概率要低得多),这对我们所有人来说都是一件好事,我们为什么不这么做呢?在未来十年内,C++ 也无法为我们解决这些问题,而且 C++ 语言委员会所暴露出的问题似乎表明,如果人们希望拥有任何能够在较长时间内维护的代码库,最好尽快放弃这门语言。

Rust 还让我们能够以一种在使用时几乎不可能出错的方式来定义内核内 API。我们有太多复杂、棘手的 API,仅仅为了 “确保使用正确” 就需要维护者进行大量的审查,这一方面是因为我们的 API 在多年间不断演变(你能用多少种不同的安全方式来使用一个 struct cdev 呢?),另一方面是因为 C 语言不允许我们以一种更简单、更安全的方式来表达 API。迫使我们这些 API 的维护者重新思考这些 API 是一件好事,因为这促使我们为所有人(包括已经在使用 C 语言的用户)对它们进行清理,从而让整个 Linux 系统变得更好。

是的,作为一个对 Rust 经验甚少的人,有些地方的 Rust 绑定代码在我看来就像魔法一样,但我愿意学习,并与那些主动站出来提供帮助的开发者合作。不能因为这些原因就不想学习和做出改变(参考我之前提到的关于查看我们所遇到的每一个内核漏洞的观点)。

Rust 并不是能解决我们所有问题的 “万灵药”,但它肯定能在很多方面提供帮助,所以对于未来的新内容,我们为什么不想要采用它呢?

Linux 是一个被其他人用来解决他们问题的工具,而现在有开发者说:“嘿,我们的问题是,我们想为我们的硬件编写代码,而且这些代码不能自动出现所有这类漏洞。”

我们为什么要忽视这一点呢?

是的,我理解我们的维护者工作负担过重的问题(我自己也是其中一员),但现在实际上有人在做这些工作!

是的,混合语言的代码库很难处理,也很难维护,但该死的,我们可是内核开发者。我们维护和强化 Linux 的时间比任何人想象的都要长。我们已经将我们的开发模式变成了一个运转良好的工程奇迹,创造出了其他人从未能够实现的成果。添加另一种语言真的不应该成为一个问题,我们过去处理过更糟糕的情况,而且我们现在不应该放弃确保我们的项目在未来 20 多年里取得成功的努力。当面对新的好想法时,我们必须不断向前推进,并且欢迎那些愿意加入我们、实际参与工作以确保我们共同成功的人。

谢谢,

Greg KH

原文地址:https://lore.kernel.org/rust-for-linux/2025021954-flaccid-pucker-f7d9@gregkh/

--

From 日报小组 Yuan YQ

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页