2025 年 1 月 4 日发布了 11 月的 OilShell 版本,新域为 oils.pub。主要内容如下:
- 延迟发布原因及相关文章:因初稿感觉太密集,先写了友好介绍文章Why Should a Unix Shell Have Objects?。
发布内容及主题:
- 重要更新:构建和打包改进、文档更新、YSH 调整(如 closures、objects、namespaces 等)、OSH 兼容性改进、交互式 Shell 改进。
- 贡献者:感谢众多贡献者,如 Aidan Olsen、Melvin Walls 等,列出了他们的具体贡献。
- Build 和 Packaging 改进:解决了issue #2080,更新了
./install
和--help
。 - Docs 更新:更新了大量文档,如Oils Reference等,还在不断完善。
- YSH 打破变化:包括环境变量移到
ENV
、"here word"行为改变、范围运算符替换、args.ysh
参数类型改变、procs 可定义为局部、eval()
和evalExpr()
移动、块和控制流变化等。 - Deprecations:
fopen
内置函数重命名为redir
。 - 更多 YSH 变化:运算符、整数相关变化(如身份运算符、整数转换、整数溢出等),添加
test --true
和test --false
,以及其他一些 bug 修复。 - Builtin Functions 和 Methods:
str()
函数扩展、添加setVar()
等。 - Closures:解释了 YSH 需要 closures 的原因,如 Hay 示例、字符串模板和表达式参数等,还介绍了
Command
、Expr
等值是 closures 以及相关设计注意事项和待办事项。 - Objects:展示了 Obj API、
__invoke__
方法、类型表达式等。 - Namespaces:介绍了命名空间的相关变化,如
__builtins__
对象、__defaults__
对象、keys() values() get()
函数等。 - OSH 兼容性:
read -u
正确处理未实现情况,添加shopt -s ignore_shopt_not_impl
。 - Interactive Shell:修复了一些与交互相关的问题。
- 后续计划:已迁移到 oils.pub 域,正在完善 Vim 语法插件,计划进行“四次清理”等。
- 附录:列出了一些已关闭的问题,如 strict_errexit 消息缺失代码位置等;还给出了 0.24.0 版本的文档、spec 测试、基准测试和代码大小等方面的 metrics 对比。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。