I don't understand your question. 1- SLIME has its own compilation and cache machinery, independent from ASDF. 2- The source-registry, recommended way of using ASDF (for speed, use the cl-source-registry-cache), has both :directory and :tree
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Keynesians: why bring prosperity to other countries through war's devastation? Let's bring back the troops and have them bomb OUR cities! On Tue, Oct 20, 2015 at 8:05 AM, Daniel Kochmański <dan...@turtleware.eu> wrote: > update: > > adding explicit > > (pushnew (namestring (merge-pathnames #P"slime-2.14/" *ecl-home*)) > asdf:*central-registry*) > > solved the problem. Is it a desired feature that asdf can "reach" asd > file from some subdirectory but can't load such a system? > > Regards, > Daniel > > Daniel Kochmański writes: > >> Hello, >> >> I'm currently working on ECL port for the android. I've managed to make >> it more or less usable, but I've encountered some problem with the cache >> directory translation in ASDF. Not sure how to solve it. >> >> Everything from the application has to be put in it's directory (in this >> case its /data/data/org.lisp.ecl/) under directories app_resources/, >> cache/ etc. >> >> >> To achieve it I set necessary directories from the initializatio script >> with: >> >> sprintf(tmp, "(setq *default-pathname-defaults* #p\"%s/\")", home); >> si_safe_eval(3, c_string_to_object(tmp), Cnil, OBJNULL); >> si_select_package(ecl_make_simple_base_string("CL-USER", 7)); >> si_safe_eval(3, c_string_to_object("(load \"init\")"), Cnil, OBJNULL); >> >> Where home points to /data/data/org.lisp.ecl/app_resources/ >> >> Also related part of the init.lisp file: >> -- CUT HERE -- >> (format t "Setting environment variables~%") >> (setq *default-directory* >> *default-pathname-defaults*) >> (defvar *ecl-home* *default-directory*) >> (ext:setenv "HOME" (namestring *ecl-home*)) >> (ext:setenv "USER-CACHE" >> (namestring (merge-pathnames #P"../cache/" *ecl-home*))) >> (setf asdf:*user-cache* >> (merge-pathnames #P"../cache/" *default-pathname-defaults*)) >> >> (format t "Loading the modules~%") >> (require :ASDF) >> (require :SOCKETS) >> (require :SERVE-EVENT) >> >> (pushnew (namestring *default-pathname-defaults*) >> asdf:*central-registry*) >> >> ;; (asdf::ensure-output-translations) >> (format t "XXX: DIAG:~% >> (asdf:compute-output-translations) ~A~% >> (ext:getenv \"HOME\" ~A~% >> asdf:*user-cache* ~A~% >> (truename \"SYS:\") ~A~% >> *default-pathname-defaults* ~A~%~%" >> (asdf::compute-output-translations) >> (ext:getenv "HOME") >> asdf:*user-cache* (truename "SYS:") *default-pathname-defaults*) >> >> (format t "Preparing swank~%") >> (handler-case (asdf:oos 'asdf:load-op :swank :verbose t) >> (condition (c) >> (format t "condition ~A happened~%" c) >> (format t "filepath SYS:SLIME-2.14;SWANK.ASD.NEWEST: ~A~%" >> (truename #P"SYS:SLIME-2.14;SWANK.ASD.NEWEST")) >> (force-output) >> (error c))) >> -- CUT HERE -- >> >> But this fails with filesystem error for pathname >> #P"/SLIME-2.14/SWANK-LOADER-tmpWIW7CRE5.FASC" >> >> Related part of the logcat output: >> -- CUT HERE -- >> I/stdout (19157): Setting environment variables >> I/stdout (19157): Loading the modules >> I/stdout (19157): XXX: DIAG: >> I/stdout (19157): (asdf:compute-output-translations) ((SYS:**;*.*.* T) >> I/stdout (19157): >> (/data/data/org.lisp.ecl/cache/**/*.* >> I/stdout (19157): T) >> I/stdout (19157): (T >> I/stdout (19157): >> /data/data/org.lisp.ecl/cache/**/*.*)) >> I/stdout (19157): (ext:getenv "HOME" >> /data/data/org.lisp.ecl/app_resources/ >> I/stdout (19157): asdf:*user-cache* >> /data/data/org.lisp.ecl/app_resources/../cache/ >> I/stdout (19157): (truename "SYS:") >> /data/data/org.lisp.ecl/app_resources/ >> I/stdout (19157): *default-pathname-defaults* >> /data/data/org.lisp.ecl/app_resources/ >> I/stdout (19157): Preparing swank >> I/stdout (19157): condition Filesystem error with pathname >> #P"/SLIME-2.14/SWANK-LOADER-tmpWIW7CRE5.FASC". >> I/stdout (19157): Either >> I/stdout (19157): 1) the file does not exist, or >> I/stdout (19157): 2) we are not allowed to access the file, or >> I/stdout (19157): 3) the pathname points to a broken symbolic link. >> happened >> I/stdout (19157): filepath SYS:SLIME-2.14;SWANK.ASD.NEWEST: >> /data/data/org.lisp.ecl/app_resources/slime-2.14/swank.asd >> I/native-activity(19157): EXIT TOP LEVEL >> -- CUT HERE-- >> >> As you can see caches seem to be set up properly. But ECL tries to load >> the FASC file from the root directory. >> >> Note, that if slime files are put directly in app_resources, not in >> slime-2.14 directory everything loads fine. >> >> I would be greatful for any hints. >> >> Thanks, >> Daniel > > -- > Daniel Kochmański | Poznań, Poland > ;; aka jackdaniel > > "Be the change that you wish to see in the world." - Mahatma Gandhi >