为什么PyPy 1.7不能实现“无堆栈”堆栈?

时间:2012-01-22 22:10:07

标签: continuations pypy python-stackless tail-call-optimization stackless

包含stackless的PyPy 1.7的默认构建,不提供无递归深度限制(直接)运行的能力。

为什么吗

Previus构建的PyPy,无堆栈支持函数调用和尾递归的延续风格。

我不是在询问涉及协同程序的解决方案,而是在寻找集成stackelss的问题。

1 个答案:

答案 0 :(得分:2)

原因是新的continulet在os级别堆栈上工作,这是有限的 (但是它们 比翻译过程中的旧无堆叠变换更简单)

目前正在进行的continulet jit正在进行中,该实验的堆栈是gc-managed blocks

如果成功的话,stackless的“无限”堆栈将以仅分配新堆栈块的形式返回,直到你用完记忆