2017-02-14 4 views
1

Hier ist mein Workflow: Ich habe eine laufende REPL in meinem Emacs und ich erstelle ein neues System. Wenn ich versuche, das System mit (asdf:test-system :system) zu testen, erhalte ich einen Component :SYSTEM not found Fehler. Natürlich, wenn ich das Lisp-Bild neu starte, wird die Komponente gefunden.Liste der Komponenten neu laden

Meine Frage ist: Kann ich ASDF signalisieren, dass im Verzeichnis ~/common-lisp/ ein neues System vorhanden ist?

Ich stelle mir den Befehl ich suche so etwas wie wäre: (asdf:reload-systems)

Antwort

2

Löschen der Konfiguration funktioniert, wenn Systeme geladen werden. Hoffentlich funktioniert das auch für sie zu testen:

* (asdf:load-system :test) 

debugger invoked on a ASDF/FIND-SYSTEM:MISSING-COMPONENT in thread 
#<THREAD "main thread" RUNNING {1001E0E533}>: 
    Component :TEST not found 

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL. 

restarts (invokable by number or by possibly-abbreviated name): 
    0: [RETRY      ] Retry ASDF operation. 
    1: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the 
            configuration. 
    2: [ABORT      ] Exit debugger, returning to top level. 

((:METHOD ASDF/OPERATE:OPERATE (SYMBOL T)) ASDF/LISP-ACTION:LOAD-OP :TEST) [fast-method] 
0] 

Mit Neustart # 1 es hier macht zu arbeiten. Aber man kann es auch selbst tun:

* (asdf:clear-configuration) 

NIL 
* (asdf:load-system :test) 

T 
* 

Beachten Sie, dass die ~/common-lisp/ Pfad standardmäßig unterstützt wird nur von ASDF 3.1.2, müssen Sie möglicherweise prüfen, welche Version bei Ihnen.

Für Details see the documentation.

+0

Getestet sowohl den Neustart und die 'Clear-Konfiguration'-Funktion und es funktioniert. Vielen Dank. Ich bin mir nicht sicher, warum der Neustart beim ersten Mal nicht funktionierte. – tsikov

+0

@tsikov Wenn das erneut passiert, überprüfen Sie, ob etwas ungewöhnlich ist. Z.B. manchmal mache ich Änderungen in Emacs, aber vergessen Sie, einen Puffer zu speichern. – coredump