一句话:将 Racket 重建于 Chez Scheme 之上,验证了以其作为目标虚拟机的可行性。
本文报告了将 Racket 语言实现重建在 Chez Scheme 之上的经验。作者面临的核心问题是 Racket 原有实现的可维护性与性能,以及能否以 Chez Scheme 作为宿主虚拟机。方法上,他们在 Chez Scheme 上重新实现 Racket,并对其打少量补丁,同时处理两种实现之间难以预测的差异。评估结果显示:DrRacket 可正常运行,Racket 发行版能够自举,核心测试套件几乎全部通过,可维护性与性能表现良好,但端到端性能仍有改进空间。作者预期 Racket on Chez Scheme 将成为 Racket 的主要实现,并鼓励其他语言实现者考虑将 Chez Scheme 作为目标虚拟机。
We rebuilt Racket on Chez Scheme, and it works well—as long as we're allowed a few patches to Chez Scheme. DrRacket runs, the Racket distribution can build itself, and nearly all of the core Racket test suite passes. Maintainability and performance of the resulting implementation are good, although some work remains to improve end-to-end performance. The least predictable part of our effort was how big the differences between Racket and Chez Scheme would turn out to be and how we would manage those differences. We expect Racket on Chez Scheme to become the main Racket implementation, and we encourage other language implementers to consider Chez Scheme as a target virtual machine.
@article{paperbot594,
title = {Rebuilding racket on chez scheme (experience report)},
author = {Matthew Flatt and Caner Derici and R. Kent Dybvig and Andrew W. Keep and Gustavo E. Massaccesi and Sarah Spall and Sam Tobin-Hochstadt and Jon Zeppieri},
journal = {Proceedings of the ACM on Programming Languages},
volume = {3},
number = {ICFP},
year = {2019},
doi = {10.1145/3341642}
}