Goscript
Go规格作为一种脚本语言来实现。
目标
- 运行最纯粹的Go代码,如果需要的话,可能会增加一些动态功能。
我如何尝试
项目 "引擎 "是入口/包装。这里面有测试案例可以浏览。
- 确保你的Rust安装是最新的。
- 克隆这个资源库。
- 转到goscript/engine
- 运行
cargo test -- --nocapture
使用案例
- 像Lua一样作为一种嵌入式语言。
- 像Python一样作为一种胶合语言。
理论依据
- 我们需要一种对Rust友好的脚本语言。
- Go很流行,而且很简单(即使是作为一种脚本语言)。
- 在某些情况下,当你的项目变得很大。
- 如果Go是一种嵌入式语言,它将比Lua更好。
- 如果Go是一种胶水语言,从项目的可维护性来说,它将比Python更好。
- 我发现了一个我喜欢的新锤子(Rust),并决定把它用在我喜欢的钉子(Go)上。
实施
- 有五个项目。
- 解析器 -- Go安装程序附带的官方实现的一个移植。
- 类型检查器 -- Go安装程序中的官方实现的一个移植。
- codegen -- 生成字节码。
- vm -- 运行字节码。
- engine -- 包装器。
进展
-
语言:最大的缺失部分是goroutine/channel/defer,支持大部分功能,其中一些可能是第一次在脚本语言中实现:),如Pointer/Interface/Struct。
-
标准库:刚刚开始。
-
生产准备:远远没有。解析器和类型检查器可能还不错,因为它们被移植了,并且通过了
原始代码中的测试案例。后台有很多粗糙的边缘,我们需要更多的测试案例。 -
下一步:暂时没有新的功能,然后在标准库上进行打磨。
请与我们联系
- 电子邮件:
pb01005051at Gmail. - wechat。
oxfeeefeee