Pregunta

Soy relativamente nuevo en Lisp (sólo sé lo básico) y actualmente estoy tratando de ejecutar un programa de composición algorítmica creado por David Cope. Se ejecuta en MCL 5.0, y me siguen dando el siguiente error:

  

Error en el proceso de jugar: desbordamiento de pila en la pila de valor.   Globalmente espacio de pila aumento, aumentar *minimum-stack-overflow-size*

¿Alguien sabe cuál es la función que yo usaría para aumentar el tamaño de desbordamiento de pila y cómo iba a calcular el mejor tamaño de desbordamiento de pila para mi equipo? Estoy corriendo MCL en un viejo Powerbook con 512 MB de memoria RAM.

Gracias por su tiempo,

Eddie

¿Fue útil?

Solución

Parece decir que sólo hay que modificar la variable *minimum-stack-overflow-size* especial. Cuando usted está en el REPL (CL-USER> pronta o similar), inspeccione esta variable mediante la evaluación de su nombre:

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

A continuación, se establece en un valor más grande (el 1234567 es sólo un sustituto) con setf:

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

Sin embargo, esto podría no ser el verdadero problema. No sé MCL bien, pero podría ser necesario (declaim (optimize (speed 3) (safety 0))) o similares para permitir la eliminación llamada de cola, si el programa que desea ejecutar una función recursiva usos cola, que depende de dicha optimización.

Otros consejos

Se editaron

Originalmente opciones de memoria con ResEdit.

También se puede utilizar la función SAVE-aplicación y uso de las: memoria de opciones de palabras clave para especificar varios valores. Esto se describe en el manual de referencia MCL. Esta función guarda una nueva aplicación MCL. Por lo general se parte de vainilla MCL, establece varias opciones, cargas algunas bibliotecas y guarda una nueva aplicación. Esta nueva aplicación se utiliza durante el desarrollo.

El tamaño de la pila necesaria depende del programa que desea ejecutar.

Si ocurre un desbordamiento de pila, en el LCM se puede continuar con una pila más grande en muchos casos. Sólo tienes que elegir la opción de reinicio derecha.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top