QB64 搜索技巧 核手提箱 文字记录 海洋云增白 开源地图 Bliss AI 搜索答案 深海沉船 自由职业 policy 小团队 颈挂空调 Chumby 个人电脑 极端主义 团队 世界 PostgreSQL AI工具 证券 DirectX 防溢 DrawingPics Zulip 儿童读物 化学 连续滚动 代码审查 三菱电机 更多

Hoot 中的 CPS 变换 (wingolog.org)

这篇文章详细介绍了 Hoot Scheme-to-Wasm 编译器如何使用 Continuation-Passing Style (CPS) 变换来实现 push 调用。文章首先解释了 Scheme 中尾调用和非尾调用的区别,以及在 WebAssembly 中实现 push 调用的挑战。然后,文章探讨了三种可能的实现策略:通用切片、插桩切片和 CPS 变换,并解释了 Hoot 选择 CPS 变换的原因。最后,文章讨论了 Hoot 在实现 CPS 变换时遇到的一些挑战和解决方案,例如如何拆分函数、如何保存变量以及如何处理调用约定等。