Sto provando a caricare un file in Lisp da un file nella stessa directory utilizzando un percorso relativo.Carica file con un percorso relativo
mia struttura dei file simile a questo:
repo/
subdir/
main.lisp
test.lisp
In main.lisp
Ho un certo numero di definizioni di funzioni, e in test.lisp
voglio testare le funzioni.
Ho provato con (load "main.lisp")
e (load "main")
in test.lisp
, così come una serie di variazioni sul percorso (cioè, tra ./
prima del nome), ma entrambe le volte ottengo il seguente errore (dove <filename>
è il nome del file passato al funzione di caricamento):
File-error in function LISP::INTERNAL-LOAD: "<filename>" does not exist.
E 'possibile caricare main.lisp
utilizzando un percorso relativo?
Può valere la pena di notare che io sono in esecuzione CMUCL e l'esecuzione del codice utilizzando SublimeREPL all'interno del Sublime Text 3.
sarà questo solo lavoro quando contenuta in un file viene caricato? Ho provato a farlo tramite REPL, ma il valore di * * load-truename * 'era' nil'. Tuttavia, ha funzionato quando ho usato '(carica" path-to-test.lisp ")'. – maxdeviant
Sì, '* load-truename *' è associato solo durante un'operazione 'load'. Allo stesso modo, ci sono '* compile-file-pathname *' e '* compile-file-truename *' che sono vincolati solo durante l'esecuzione di 'compile-file'. – jlahd