2010-09-16 23 views
22

Newbie Domanda Lisp comune qui.Stato di reset in Common Lisp

C'è un modo per ripristinare lo stato dell'ambiente? Cosa intendo, esiste un comando che riporta il REPL nello stesso stato in cui era stato eseguito dopo l'avvio, cioè, senza connessione di tutte le variabili, funzioni, ecc. O se non è nello standard Common Lisp, c'è qualche estensione in SBCL (l'implementazione che utilizzo) per farlo?

(EDIT: so che di melma, M-x melma-restart-inferiore-lisp lo fa, ma mi chiedo se c'è un modo senza riavviare il processo)

+0

Non una risposta, quindi mi sto mettendo in un commento: Non so esattamente perché stai chiedendo a questa domanda, ma si potrebbe essere interessati a fare un core dump di un'immagine Lisp in uno stato "pulito" (io, personalmente, vorrei caricare almeno Quicklisp prima, ma dipende da voi) e poi caricarlo; puoi farlo in SBCL con ['sb-ext: save-lisp-and-die'] (http://www.sbcl.org/manual/#Function-sb_002dext_003asave_002dlisp_002dand_002ddie) – fouric

risposta

22

Non in generale, n. Occasionalmente voglio fare qualcosa del genere, quindi il mio flusso di lavoro è generalmente quello di creare un nuovo pacchetto per contenere qualsiasi progetto che sto iniziando, quindi quando voglio ripristinare le cose uso DELETE-PACKAGE. Non lavoro mai nel pacchetto CL-USER, dal momento che diverse implementazioni hanno cose diverse inserite in esso.

-1

Usa Cc Mo, come indicato nel menù di REPL Cancella buffer

+3

Questo elimina l'output, mentre l'OP chiesto un modo per reimpostare lo stato, come simboli non interattivi, ecc. – danlei