
Plush语言作者为其搭建标准库并改进REPL与错误处理
来源标题:Creating a Standard Library for the Plush Language
Plush语言作者正在为其构建标准库,让各项目能共享通用模块。此前Plush只支持相对导入,作者只能把共享模块临时放在examples/和benchmarks/目录中。作者还新增了基础REPL并修复了包括解析器在内的多处问题,改进了错误提示与处理。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
自上一篇博客文章以来,我一直在做各种工作,让 Plush 更接近人们心目中“真正”的编程语言。作为其中的一部分,我给 Plush 添加了一个基础的 REPL,并修复了大量小问题,包括一些解析器 bug。我还改进了错误消息和整体的错误处理。不过最大的变化是我开始着手构建一个标准库。
Plush 支持模块和导入已经一年多了,但直到最近,这门语言只支持相对导入。随着你在不同项目之间复用的依赖需要反复复制粘贴,这种限制很快就显现出来了。我最终在 examples/ 文件夹里放了一组临时拼凑的共享模块,另外在 benchmarks/ 目录里还有一些额外的库。不过我一直觉得,把这些共享模块变成一个每个 Plush 程序都能使用的共享库会更好。
不过标准库的问题在于,理想情况下它们应该拥有稳定的 API。这意味着如果我想把一些临时拼凑的共享模块变成正式的标准库,就需要逐一审查并清理它们。我从升级随机数生成器开始,把 LCG 换成了 Xoshiro128++ 随机数生成器。Plush 现在有了一个更好的 random 库,其中有一个 RNG 基类,定义了许多便捷方法。这个设计允许你实例化多个 RNG,每个都有自己的状态。
from random import Xoshiro128; let rng = Xoshiro128(1234); let v = rng.int(-5, 5); let n = rng.normal(7.0, 1.0);
Plush 的许多开发工作都是由我觉得有趣的东西驱动的,因此标准库的大部分内容都围绕 2D/3D 游戏和图像处理,以及构建简单客户端-服务器应用所需的东西。话虽如此,Plush 现在已经有了一个不错的小型库集合:
args:命令行参数/选项解析
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。