PATH 应该是一个系统调用?

2025-04-25

Emacs 和 bash 在启动时查找配置文件时,需要遍历 PATH 环境变量中的每个目录,逐一检查目标文件是否存在,效率低下。这篇文章探讨了这种低效的查找机制,并以 strace 工具跟踪 Emacs 和 bash 的系统调用,展示了大量的 fstatat 调用。作者认为,这种查找方式应该由操作系统或文件系统直接提供更优化的解决方案,例如类似于数据库查询的方式,直接返回符合条件的文件,而不是逐一尝试。作者还提到 Python 的实现相对更高效,但也存在不足。最终,作者提出了一种改进方案:将所有可能的文件名和目录列表直接提供给操作系统,以减少系统调用次数和网络请求次数。

阅读更多
开发

JSON 的逗号之殇:一场关于语法简洁性的思考

2025-04-06

本文探讨了 JSON 格式中逗号的必要性。作者认为,JSON 中的逗号并非设计巧妙,反而增加了语法错误的可能性,并降低了可读性。作者建议移除逗号,利用空格和冒号区分键值对,并以 JSON5 为例说明了改进方向,尽管 JSON5 只是部分解决了问题。文章最后提及了 AI 系统在文本生成中的有趣现象。

阅读更多
开发

An exploration of SBCL internals - simonsafar.com

2024-04-22

西蒙·萨法尔 (Simon Safar) 的网站主要集中于通用 Lisp (Common Lisp) 编程语言,特别关注 SBCL (Steel Bank Common Lisp) 方言。该网站包含教程、文档、示例和关于使用 SBCL 开发的讨论。它还提供了一个社区论坛,用户可以在其中寻求帮助、共享代码并参与关于 Common Lisp 及其在各种应用程序中的使用的讨论。该网站由西蒙·萨法尔 (Simon Safar) 维护,他是一位经验丰富的 Common Lisp 程序员和 SBCL 的积极贡献者。

阅读更多
未分类