我是比较新的Lisp的(我只知道很基本的)和我目前正试图运行由David创建的算法组成方案和对策。它运行在MCL 5.0,并且我不断收到以下错误:

  

错误在过程起作用:对值栈堆栈溢出。   要全局增加堆栈空间,增加*minimum-stack-overflow-size*

有谁知道什么功能,我会用增加堆栈溢出的大小,我将如何计算我的电脑最好的堆栈溢出的大小?我在一个旧的Powerbook运行MCL 512 MB的RAM。

感谢您的时间,

埃迪

有帮助吗?

解决方案

这似乎是说,你只需要修改特殊变量*minimum-stack-overflow-size*。当你在REPL(CL-USER>提示或者类似的),通过评估其名称检查这个变量:

CL-USER> *minimum-stack-overflow-size*

然后,将其设置为一个更大的值(1234567只是一个占位符)与setf

CL-USER> (setf *minimum-stack-overflow-size* 1234567)

然而,这可能不是真正的问题。我不知道MCL很好,但它可能需要(declaim (optimize (speed 3) (safety 0)))或相似,使尾部调用消除,如果程序要运行使用尾递归函数依赖于这样的优化。

其他提示

最初存储器选项用的ResEdit编辑。

人们也可以使用SAVE应用功能,并使用:关键字来指定各种值MEMORY-OPTIONS。这在MCL参考手册中描述。此功能节省了新的MCL的应用程序。通常,一个人开始香草MCL,设置各种选项,加载一些库,然后保存新的应用程序。然后,该新应用程序的开发过程中使用。

在必要的堆栈大小取决于要运行该程序。

如果一个堆栈溢出发生,在MCL您可以继续使用在许多情况下,一个更大的堆栈。只要选择正确的重新启动选项。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top