J'essaye de charger un fichier dans Lisp à partir d'un fichier dans le même répertoire en utilisant un chemin relatif.Charger le fichier avec un chemin relatif
Ma structure de fichier ressemble à ceci:
repo/
subdir/
main.lisp
test.lisp
En main.lisp
j'ai un certain nombre de définitions de fonctions, et test.lisp
je veux tester les fonctions.
J'ai essayé d'utiliser (load "main.lisp")
et (load "main")
à test.lisp
, ainsi qu'un certain nombre de variations sur le chemin (par exemple, y compris ./
avant le nom du fichier), mais les deux fois que je reçois l'erreur suivante (où <filename>
est le nom de fichier transmis à la fonction de la charge):
File-error in function LISP::INTERNAL-LOAD: "<filename>" does not exist.
Est-il possible de charger main.lisp
en utilisant un chemin relatif?
Il est intéressant de noter que je courais CMUCL et l'exécution du code à l'aide SublimeREPL à l'intérieur du texte Sublime 3.
Est-ce que cela ne fonctionne que si contenu dans un fichier en cours de chargement? J'ai essayé d'exécuter ceci par le REPL, mais la valeur de '* load-truename *' était 'nil'. Cependant, cela a fonctionné quand j'ai utilisé '(load" path-to-test.lisp ")'. – maxdeviant
Oui, '* load-truename *' est uniquement lié lors d'une opération 'load'. De même, il existe '* compile-file-pathname *' et '* compile-file-truename *' qui ne sont liés que pendant l'exécution de 'compile-file'. – jlahd