YAML:来自地狱的配置文件?

2025-09-23

本文作者痛斥YAML配置文件的复杂性,认为其所谓的“人友好”实则隐藏着诸多陷阱。文章以多个示例详细解释了YAML不同版本间的差异、难以预测的解析结果以及潜在的安全风险,例如sexagesimal数字、标签、布尔值解析等问题。作者建议使用更简单易用的 TOML 或通过生成 JSON 来规避 YAML 的风险,并推荐了 Nix 和 Python 等更强大的替代方案。

阅读更多
开发

RCL 配置语言的设计抉择:浮点数的挑战

2025-03-04

作者在构建新的配置语言RCL时,面临着如何处理浮点数的难题。RCL作为JSON的超集,需要兼顾JSON语义、类型系统以及代码可读性等因素。文章详细探讨了整数类型与浮点数类型之间的权衡,例如是否需要区分整数和浮点数类型,以及如何处理数值相等性与类型转换等问题。最终,作者选择采用单一数值类型“Number”,以简化语言设计并提升用户体验,并在RCL 0.8.0版本中实现了这一方案。

阅读更多
开发

RCL类型系统解析,第二部分:类型系统

2024-07-18

本文详细介绍了配置语言RCL的类型系统。RCL类型系统基于格理论,支持子类型关系,相同的值可以有多种类型。类型推断是自底向上、前向进行的,并采用了一种广义的子类型检查来处理渐进类型。文章还讨论了RCL类型系统与其他配置语言的区别,以及其在处理记录类型和大型代码库方面的局限性。

阅读更多
未分类 RCL