Oils 0.24.0 - 闭包、对象和命名空间

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()移动、块和控制流变化等。
    • Deprecationsfopen内置函数重命名为redir
    • 更多 YSH 变化:运算符、整数相关变化(如身份运算符、整数转换、整数溢出等),添加test --truetest --false,以及其他一些 bug 修复。
    • Builtin Functions 和 Methodsstr()函数扩展、添加setVar()等。
    • Closures:解释了 YSH 需要 closures 的原因,如 Hay 示例、字符串模板和表达式参数等,还介绍了CommandExpr等值是 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 对比。
阅读 8
0 条评论