paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Rebuilding racket on chez scheme (experience report)

在 Chez Scheme 上重建 Racket(经验报告)
ICFP 3(ICFP)2019匹配度 1/10 · 这篇论文是关于将 Racket 移植到 Chez Scheme 的语言实现经验报告,属于编译与运行时系统方向,但用户画像聚焦于静态分析、LLM/Agent 与程序分析的交叉、浮点程序分析及贝叶斯程序分析,与该论文没有直接关联。引用 7 inbox
Matthew Flatt, Caner Derici, R. Kent Dybvig, Andrew W. Keep, Gustavo E. Massaccesi, Sarah Spall, Sam Tobin-Hochstadt, Jon Zeppieri
crossref: 2026-09-10

AI 速览

一句话:将 Racket 重建于 Chez Scheme 之上,验证了以其作为目标虚拟机的可行性。

本文报告了将 Racket 语言实现重建在 Chez Scheme 之上的经验。作者面临的核心问题是 Racket 原有实现的可维护性与性能,以及能否以 Chez Scheme 作为宿主虚拟机。方法上,他们在 Chez Scheme 上重新实现 Racket,并对其打少量补丁,同时处理两种实现之间难以预测的差异。评估结果显示:DrRacket 可正常运行,Racket 发行版能够自举,核心测试套件几乎全部通过,可维护性与性能表现良好,但端到端性能仍有改进空间。作者预期 Racket on Chez Scheme 将成为 Racket 的主要实现,并鼓励其他语言实现者考虑将 Chez Scheme 作为目标虚拟机。

问题
Racket 原有实现的可维护性与性能有待提升,且需评估以 Chez Scheme 作为宿主虚拟机的可行性。
方法
在 Chez Scheme 上重建 Racket,对 Chez Scheme 打少量必要补丁,并管理 Racket 与 Chez Scheme 之间的实现差异,使发行版可自举。
评估
通过 DrRacket 运行、Racket 发行版自举以及核心测试套件通过率进行功能验证,并评估实现的可维护性与端到端性能。
原文摘要(Abstract)

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.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@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}
}