Ich versuche, eine Datei in Lisp aus einer Datei im selben Verzeichnis mit einem relativen Pfad zu laden.Datei mit einem relativen Pfad laden
Meine Dateistruktur sieht wie folgt aus:
repo/
subdir/
main.lisp
test.lisp
In main.lisp
Ich habe eine Reihe von Funktionsdefinitionen und in test.lisp
möchte ich die Funktionen testen.
Ich habe versucht, (load "main.lisp")
und (load "main")
in test.lisp
verwenden, sowie eine Reihe von Variationen auf dem Pfad (dh einschließlich ./
vor dem Dateinamen), aber beide Male habe ich die folgende Fehlermeldung erhalten (wo <filename>
der Dateiname an die übergebene Ladefunktion):
File-error in function LISP::INTERNAL-LOAD: "<filename>" does not exist.
Ist es möglich, main.lisp
mit einem relativen Pfad zu laden?
Es kann sich lohnen, unter Hinweis darauf, dass ich CMUCL leite und die Ausführung von Code mit SublimeREPL innerhalb von Sublime Text 3.
wird dies nur funktionieren, wenn sie in einer Datei geladen enthalten? Ich habe versucht, dies über die REPL auszuführen, aber der Wert von '* load-truename *' war 'nil'. Es hat jedoch funktioniert, wenn ich '(load" path-to-test.lisp ")' verwendet habe. – maxdeviant
Ja, '* load-truename *' ist nur während einer 'load' Operation gebunden. Ebenso gibt es '* compile-file-pathname *' und '* compile-file-truename *', die nur während der Ausführung von 'compile-file' gebunden werden. – jlahd