主要观点:发布了 Gren 编程语言的新版本 25S,包含多项改进,包括任务端口简化与 JavaScript 的互操作、任务可并发执行、零安装包管理、新增“gren run”命令等。
关键信息:
- 25S 包含的软件:compiler v0.6.0、gren-lang/core v7.0.0、gren-lang/browser v6.0.0、gren-lang/node v6.0.0。
- 任务端口可减少代码量,解决部分问题,需以异步函数或返回 promise 的形式在 JavaScript 端实现。
- 可使用 Task.map2 等函数使任务并发执行,Task.sequence 可顺序执行任务。
- 编译项目时编译器会将依赖存储在“gren_packages”文件夹,可提交至版本控制。
- 新增“gren run”命令可编译并执行应用,还可执行包中的辅助应用。
- 有多项 misc. 变化,如新增“gren path”命令等。
- 接下来的目标是在 12 月发布 25W 版本,重写语言解析器等。
重要细节: - 定义任务端口:
port saveToDB : String -> Task Json.Decode.Value Int
。 - JavaScript 中实现任务端口:
Gren.Main.init({ taskPorts: { myTaskPort: async function(str) { return str.length; } } })
。 - 并发不是并行,使用 Task.map2 进行不同操作性能不同。
- 重写包管理器,零安装包管理功能由 Gren 编写,部分功能在compiler-node包中。
- 可通过“gren run --package=xyz/cool-framework Setup”执行包的初始化器。
- 多人对项目做出贡献,如 Andrew MacMurray 等。
- 可通过赞助或购买商品支持项目,也可通过多种方式参与贡献,如加入 Discord 等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。