Congratulations! You've met the autoloader, now level up...
In order to reduce initial system boot times (and also to partially optimize for booting over the network), not all functions corresponding to symbols in the base ABCL system are loaded initially. Instead, the symbol function slot contains a stub which when first executed as a function loads the necessary code, which as a side effect also populates the symbol plist.
Users of the implementation may currently interact with this mechanism meaningfullly through the EXT:AUTOLOADP and EXT:RESOLVE functions, which tell you if a symbol needs to be autoloaded and to resolve it, respectively.
Using these functions we may define
(defun maybe-resolve-symbol-plist (symbol) (when (autoloadp symbol) (resolve symbol)) (symbol-plist symbol))
which you can then use in your code to change the source locations.
yers, Mark
-- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad idea? A: Top-posting. Q: What is the most annoying thing in email?
On Feb 23, 2013, at 7:25 AM, Xiaofeng Yang n.akr.akiiya@gmail.com wrote:
Thanks.
More details, I found that after the REPL started: ; SLIME 2011-10-19 CL-USER> (symbol-plist 'disassemble) NIL CL-USER> (disassemble 'disassemble) ; Compiled from "disassemble.lisp" ... very long output NIL CL-USER> (symbol-plist 'disassemble) (SYSTEM::%SOURCE (#P"L:/abcl-src-1.1.1/src/org/armedbear/lisp/disassemble.lisp" . 1693))
After I called DISASSEMBLE, the result of (symbol-plist 'disassemble) was not NIL. How can I make the result of the first (symbol-plist 'disassemble) no NIL?
Best regards,
Xiaofeng Yang
2013/2/23 Mark Evenson evenson@panix.com
On 2/22/13 4:01 PM, Xiaofeng Yang wrote:
Hi, all
I built ABCL 1.1.1 using Ant. After I built it, I found that the source locations of all the symbols are absolute path. For exmaple: [1] CL-USER(1): (symbol-plist 'defun) (SYSTEM::%SOURCE (#P"L:/abcl-src-1.1.1/src/org/armedbear/lisp/precompiler.lisp" . 44441) PRECOMPILER::PRECOMPILE-HANDLER PRECOMPILER::PRECOMPILE-DEFUN)
I tried using '--nosystem', setting (LOGICAL-PATHNAME-TRANSLATIONS "sys") by myself, and even deleting system.lisp from the jar. But the source location didn't change.
How can I build ABCL 1.1.1 without recording the absolute path of the source ? Or, making the source location changable so that I can locate it even if I change the path of the source code ? I think I can do it manually by i.g. (dolist (pkg (list-all-packages)) (do-symbols (sym pkg) if there exists system::%source in symbol-plist, replace it)). Is there any other way to do this ?
Currently, there is no way of building to not recording the physical pathname, but there should be. The values stored in the symbol plists should use the SYS:SRC logical pathname. I've recorded this as ticket [#301][].
--
"A screaming comes across the sky. It has happened before, but there is nothing to compare it to now."
Furthermore, I found that there's not only one symbol cannot be resolve. Some symbols, like, for example, COMPUTE-CLASS-DIRECT-SLOTS, CLASS-DIRECT-SLOTS, MAKE-FORWARD-REFERENCED-CLASS, %SET-STREAM-EXTERNAL-FORMAT, and more, cannot be resolved. These symbols signalled conditions when I resolved them. Each one has its own reason for the signalled condition. And, I tried to catch these conditions using HANDLER-CASE, but it seemed no effects. (when (extensions:autoloadp symbol) (handler-case (extensions:resolve symbol) (condition (c) <-- it seemed no effects (print symbol))))
Best regards, Xiaofeng Yang
2013/2/23 Mark Evenson evenson@panix.com
Congratulations! You've met the autoloader, now level up...
In order to reduce initial system boot times (and also to partially optimize for booting over the network), not all functions corresponding to symbols in the base ABCL system are loaded initially. Instead, the symbol function slot contains a stub which when first executed as a function loads the necessary code, which as a side effect also populates the symbol plist.
Users of the implementation may currently interact with this mechanism meaningfullly through the EXT:AUTOLOADP and EXT:RESOLVE functions, which tell you if a symbol needs to be autoloaded and to resolve it, respectively.
Using these functions we may define
(defun maybe-resolve-symbol-plist (symbol) (when (autoloadp symbol) (resolve symbol)) (symbol-plist symbol))
which you can then use in your code to change the source locations.
yers, Mark
-- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad idea? A: Top-posting. Q: What is the most annoying thing in email?
On Feb 23, 2013, at 7:25 AM, Xiaofeng Yang n.akr.akiiya@gmail.com wrote:
Thanks.
More details, I found that after the REPL started: ; SLIME 2011-10-19 CL-USER> (symbol-plist 'disassemble) NIL CL-USER> (disassemble 'disassemble) ; Compiled from "disassemble.lisp" ... very long output NIL CL-USER> (symbol-plist 'disassemble) (SYSTEM::%SOURCE (#P"L:/abcl-src-1.1.1/src/org/armedbear/lisp/disassemble.lisp" . 1693))
After I called DISASSEMBLE, the result of (symbol-plist 'disassemble) was not NIL. How can I make the result of the first (symbol-plist 'disassemble) no NIL?
Best regards,
Xiaofeng Yang
2013/2/23 Mark Evenson evenson@panix.com
On 2/22/13 4:01 PM, Xiaofeng Yang wrote:
Hi, all
I built ABCL 1.1.1 using Ant. After I built it, I found that the source locations of all the symbols are absolute path. For exmaple: [1] CL-USER(1): (symbol-plist 'defun) (SYSTEM::%SOURCE (#P"L:/abcl-src-1.1.1/src/org/armedbear/lisp/precompiler.lisp" . 44441) PRECOMPILER::PRECOMPILE-HANDLER PRECOMPILER::PRECOMPILE-DEFUN)
I tried using '--nosystem', setting (LOGICAL-PATHNAME-TRANSLATIONS "sys") by myself, and even deleting system.lisp from the jar. But the source location didn't change.
How can I build ABCL 1.1.1 without recording the absolute path of the source ? Or, making the source location changable so that I can locate it even if I change the path of the source code ? I think I can do it manually by i.g. (dolist (pkg (list-all-packages)) (do-symbols (sym pkg) if there exists system::%source in symbol-plist, replace
it)).
Is there any other way to do this ?
Currently, there is no way of building to not recording the physical pathname, but there should be. The values stored in the symbol plists should use the SYS:SRC logical pathname. I've recorded this as ticket [#301][].
--
"A screaming comes across the sky. It has happened before, but there is nothing to compare it to now."
Hi, Mark. Here is a list of all the symbols that cannot be resolved : ("COMPUTE-CLASS-DIRECT-SLOTS" "CLASS-DIRECT-SLOTS" "MAKE-FORWARD-REFERENCED-CLASS" "%SET-STREAM-EXTERNAL-FORMAT" "%IMPORT" "%DELETE-PACKAGE")
Here's the errors and stack trace I collected when resolve these symbols (I posted the errors of CLASS-DIRECT-SLOTS before, so not here). I hope it useful. COMPUTE-CLASS-DIRECT-SLOTS: Unable to autoload COMPUTE-CLASS-DIRECT-SLOTS Exception in thread "interpreter" org.armedbear.lisp.IntegrityError at org.armedbear.lisp.Autoload.load(Autoload.java:156) at org.armedbear.lisp.Autoload$pf_resolve.execute(Autoload.java:339) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_when.execute(Primitives.java:844) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:154) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824) at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.eval(Lisp.java:511) at org.armedbear.lisp.Lisp.eval(Lisp.java:516) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Load.loadStream(Load.java:606) at org.armedbear.lisp.Load.loadFileFromStream(Load.java:574) at org.armedbear.lisp.Load.load(Load.java:206) at org.armedbear.lisp.Load.load(Load.java:128) at org.armedbear.lisp.Interpreter.postprocessCommandLineArguments(Interpreter.java:333) at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:110) at org.armedbear.lisp.Main$1.run(Main.java:46) at java.lang.Thread.run(Thread.java:722)
MAKE-FORWARD-REFERENCED-CLASS: java.lang.ClassNotFoundException: org.armedbear.lisp.ForwardReferencedClass at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) at org.armedbear.lisp.Autoload.effectiveLoad(Autoload.java:104) at org.armedbear.lisp.Autoload.load(Autoload.java:147) at org.armedbear.lisp.Autoload$pf_resolve.execute(Autoload.java:339) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_when.execute(Primitives.java:844) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:154) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824) at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.eval(Lisp.java:511) at org.armedbear.lisp.Lisp.eval(Lisp.java:516) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Load.loadStream(Load.java:606) at org.armedbear.lisp.Load.loadFileFromStream(Load.java:574) at org.armedbear.lisp.Load.load(Load.java:206) at org.armedbear.lisp.Load.load(Load.java:128) at org.armedbear.lisp.Interpreter.postprocessCommandLineArguments(Interpreter.java:333) at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:110) at org.armedbear.lisp.Main$1.run(Main.java:46) at java.lang.Thread.run(Thread.java:722) Unable to autoload MAKE-FORWARD-REFERENCED-CLASS Exception in thread "interpreter" org.armedbear.lisp.IntegrityError at org.armedbear.lisp.Autoload.load(Autoload.java:156) at org.armedbear.lisp.Autoload$pf_resolve.execute(Autoload.java:339) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_when.execute(Primitives.java:844) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:154) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824) at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.eval(Lisp.java:511) at org.armedbear.lisp.Lisp.eval(Lisp.java:516) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Load.loadStream(Load.java:606) at org.armedbear.lisp.Load.loadFileFromStream(Load.java:574) at org.armedbear.lisp.Load.load(Load.java:206) at org.armedbear.lisp.Load.load(Load.java:128) at org.armedbear.lisp.Interpreter.postprocessCommandLineArguments(Interpreter.java:333) at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:110) at org.armedbear.lisp.Main$1.run(Main.java:46) at java.lang.Thread.run(Thread.java:722)
%SET-STREAM-EXTERNAL-FORMAT: Unable to autoload %SET-STREAM-EXTERNAL-FORMAT Exception in thread "interpreter" org.armedbear.lisp.IntegrityError at org.armedbear.lisp.Autoload.load(Autoload.java:156) at org.armedbear.lisp.Autoload$pf_resolve.execute(Autoload.java:339) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Primitives$sf_return_from.execute(Primitives.java:3767) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:142) at org.armedbear.lisp.LispThread.execute(LispThread.java:628) at org.armedbear.lisp.Java$pf_jrun_exception_protected.execute(Java.java:1329) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824) at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_when.execute(Primitives.java:844) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:154) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824) at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.eval(Lisp.java:511) at org.armedbear.lisp.Lisp.eval(Lisp.java:516) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Load.loadStream(Load.java:606) at org.armedbear.lisp.Load.loadFileFromStream(Load.java:574) at org.armedbear.lisp.Load.load(Load.java:206) at org.armedbear.lisp.Load.load(Load.java:128) at org.armedbear.lisp.Interpreter.postprocessCommandLineArguments(Interpreter.java:333) at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:110) at org.armedbear.lisp.Main$1.run(Main.java:46) at java.lang.Thread.run(Thread.java:722)
%IMPORT: Unable to autoload %IMPORT Exception in thread "interpreter" org.armedbear.lisp.IntegrityError at org.armedbear.lisp.Autoload.load(Autoload.java:156) at org.armedbear.lisp.Autoload$pf_resolve.execute(Autoload.java:339) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Primitives$sf_return_from.execute(Primitives.java:3767) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:142) at org.armedbear.lisp.LispThread.execute(LispThread.java:628) at org.armedbear.lisp.Java$pf_jrun_exception_protected.execute(Java.java:1329) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824) at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_when.execute(Primitives.java:844) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:154) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824) at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.eval(Lisp.java:511) at org.armedbear.lisp.Lisp.eval(Lisp.java:516) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Load.loadStream(Load.java:606) at org.armedbear.lisp.Load.loadFileFromStream(Load.java:574) at org.armedbear.lisp.Load.load(Load.java:206) at org.armedbear.lisp.Load.load(Load.java:128) at org.armedbear.lisp.Interpreter.postprocessCommandLineArguments(Interpreter.java:333) at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:110) at org.armedbear.lisp.Main$1.run(Main.java:46) at java.lang.Thread.run(Thread.java:722)
%DELETE-PACKAGE: Unable to autoload %DELETE-PACKAGE Exception in thread "interpreter" org.armedbear.lisp.IntegrityError at org.armedbear.lisp.Autoload.load(Autoload.java:156) at org.armedbear.lisp.Autoload$pf_resolve.execute(Autoload.java:339) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Primitives$sf_return_from.execute(Primitives.java:3767) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:142) at org.armedbear.lisp.LispThread.execute(LispThread.java:628) at org.armedbear.lisp.Java$pf_jrun_exception_protected.execute(Java.java:1329) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824) at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_when.execute(Primitives.java:844) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:154) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824) at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Closure.execute(Closure.java:220) at org.armedbear.lisp.Closure.execute(Closure.java:148) at org.armedbear.lisp.LispThread.execute(LispThread.java:640) at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961) at org.armedbear.lisp.LispThread.execute(LispThread.java:653) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560) at org.armedbear.lisp.Lisp.eval(Lisp.java:518) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362) at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Lisp.eval(Lisp.java:511) at org.armedbear.lisp.Lisp.eval(Lisp.java:516) at org.armedbear.lisp.Lisp.progn(Lisp.java:687) at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169) at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101) at org.armedbear.lisp.Lisp.eval(Lisp.java:508) at org.armedbear.lisp.Load.loadStream(Load.java:606) at org.armedbear.lisp.Load.loadFileFromStream(Load.java:574) at org.armedbear.lisp.Load.load(Load.java:206) at org.armedbear.lisp.Load.load(Load.java:128) at org.armedbear.lisp.Interpreter.postprocessCommandLineArguments(Interpreter.java:333) at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:110) at org.armedbear.lisp.Main$1.run(Main.java:46) at java.lang.Thread.run(Thread.java:722)
Best regards, Xiaofeng Yang
2013/2/23 Mark Evenson evenson@panix.com
Congratulations! You've met the autoloader, now level up...
In order to reduce initial system boot times (and also to partially optimize for booting over the network), not all functions corresponding to symbols in the base ABCL system are loaded initially. Instead, the symbol function slot contains a stub which when first executed as a function loads the necessary code, which as a side effect also populates the symbol plist.
Users of the implementation may currently interact with this mechanism meaningfullly through the EXT:AUTOLOADP and EXT:RESOLVE functions, which tell you if a symbol needs to be autoloaded and to resolve it, respectively.
Using these functions we may define
(defun maybe-resolve-symbol-plist (symbol) (when (autoloadp symbol) (resolve symbol)) (symbol-plist symbol))
which you can then use in your code to change the source locations.
yers, Mark
-- A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad idea? A: Top-posting. Q: What is the most annoying thing in email?
On Feb 23, 2013, at 7:25 AM, Xiaofeng Yang n.akr.akiiya@gmail.com wrote:
Thanks.
More details, I found that after the REPL started: ; SLIME 2011-10-19 CL-USER> (symbol-plist 'disassemble) NIL CL-USER> (disassemble 'disassemble) ; Compiled from "disassemble.lisp" ... very long output NIL CL-USER> (symbol-plist 'disassemble) (SYSTEM::%SOURCE (#P"L:/abcl-src-1.1.1/src/org/armedbear/lisp/disassemble.lisp" . 1693))
After I called DISASSEMBLE, the result of (symbol-plist 'disassemble) was not NIL. How can I make the result of the first (symbol-plist 'disassemble) no NIL?
Best regards,
Xiaofeng Yang
2013/2/23 Mark Evenson evenson@panix.com
On 2/22/13 4:01 PM, Xiaofeng Yang wrote:
Hi, all
I built ABCL 1.1.1 using Ant. After I built it, I found that the source locations of all the symbols are absolute path. For exmaple: [1] CL-USER(1): (symbol-plist 'defun) (SYSTEM::%SOURCE (#P"L:/abcl-src-1.1.1/src/org/armedbear/lisp/precompiler.lisp" . 44441) PRECOMPILER::PRECOMPILE-HANDLER PRECOMPILER::PRECOMPILE-DEFUN)
I tried using '--nosystem', setting (LOGICAL-PATHNAME-TRANSLATIONS "sys") by myself, and even deleting system.lisp from the jar. But the source location didn't change.
How can I build ABCL 1.1.1 without recording the absolute path of the source ? Or, making the source location changable so that I can locate it even if I change the path of the source code ? I think I can do it manually by i.g. (dolist (pkg (list-all-packages)) (do-symbols (sym pkg) if there exists system::%source in symbol-plist, replace
it)).
Is there any other way to do this ?
Currently, there is no way of building to not recording the physical pathname, but there should be. The values stored in the symbol plists should use the SYS:SRC logical pathname. I've recorded this as ticket [#301][].
--
"A screaming comes across the sky. It has happened before, but there is nothing to compare it to now."
armedbear-devel@common-lisp.net