Domanda

Sono relativamente nuovo a Lisp (So solo le basi) e attualmente sto cercando di eseguire un programma di composizione algoritmica creato da David Cope. Funziona in MCL 5.0, e io continuo a ricevere il seguente errore:

  

Errore in gioco processo: overflow di stack sulla pila di valore.   Globalmente aumento spazio di stack, aumentare *minimum-stack-overflow-size*

Qualcuno sa che la funzione che userei per aumentare la dimensione di overflow dello stack e come avrei calcolare la dimensione migliore stack overflow per il mio computer? Io corro MCL su un vecchio Powerbook con 512 MB di RAM.

Grazie per il vostro tempo,

Eddie

È stato utile?

Soluzione

Sembra dire che è sufficiente modificare la speciale *minimum-stack-overflow-size* variabile. Quando si è al REPL (CL-USER> pronta o simili), ispezionare questa variabile valutando il suo nome:

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

Poi, impostarlo su un valore più grande (l'1234567 è solo un segnaposto) con setf:

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

Tuttavia, questo potrebbe non essere il vero problema. Non so MCL bene, ma potrebbe essere necessario (declaim (optimize (speed 3) (safety 0))) o simili per consentire l'eliminazione chiamata coda, se il programma che si desidera eseguire utilizza una funzione ricorsiva di coda che dipende tale ottimizzazione.

Altri suggerimenti

In origine opzioni di memoria sono stati modificati con ResEdit.

Si può anche usare la funzione SAVE-applicazione e l'uso dei: memoria opzioni di parole chiave per specificare diversi valori. Questo è descritto nel manuale di riferimento MCL. Questa funzione consente di risparmiare una nuova applicazione MCL. In genere si parte vaniglia MCL, imposta le varie opzioni, carichi alcune librerie e quindi salva una nuova applicazione. Questa nuova applicazione viene quindi utilizzato durante lo sviluppo.

La dimensione dello stack necessaria dipende dal programma che si desidera eseguire.

Se un overflow dello stack si verifica, in MCL è possibile continuare con uno stack più grande in molti casi. Basta scegliere l'opzione di riavvio destra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top