<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div style="-webkit-text-size-adjust: auto; ">Congratulations!  You've met the autoloader, now level up...</div><div style="-webkit-text-size-adjust: auto; "><br></div><div style="-webkit-text-size-adjust: auto; ">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.</div><div style="-webkit-text-size-adjust: auto; "><br></div><div style="-webkit-text-size-adjust: auto; ">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.</div><div style="-webkit-text-size-adjust: auto; "><br></div><div style="-webkit-text-size-adjust: auto; ">Using these functions we may define </div><div><div><span style="-webkit-text-size-adjust: auto;"><br></span></div><div><span style="-webkit-text-size-adjust: auto;">    (defun maybe-resolve-symbol-plist (symbol)</span></div><div><span style="-webkit-text-size-adjust: auto;">      (when (autoloadp symbol)</span></div><div><span style="-webkit-text-size-adjust: auto;">        (resolve symbol))</span></div><div><span style="-webkit-text-size-adjust: auto;">     (symbol-plist symbol))</span></div><div><span style="-webkit-text-size-adjust: auto;"><br></span></div><div><span style="-webkit-text-size-adjust: auto;">which you can then use in your code to change the source locations.</span></div><div><span style="-webkit-text-size-adjust: auto;"><br></span></div><div><span style="-webkit-text-size-adjust: auto;">yers,</span></div><div><span style="-webkit-text-size-adjust: auto;">Mark </span></div><br><div style="-webkit-text-size-adjust: auto; ">--</div><span style="-webkit-text-size-adjust: auto;">A: Because it messes up the order in which people normally read text.</span><div style="-webkit-text-size-adjust: auto; ">Q: Why is top-posting such a bad idea?</div><div style="-webkit-text-size-adjust: auto; ">A: Top-posting.</div><div style="-webkit-text-size-adjust: auto; ">Q: What is the most annoying thing in email?</div></div><div style="-webkit-text-size-adjust: auto; "><br>On Feb 23, 2013, at 7:25 AM, Xiaofeng Yang <<a href="mailto:n.akr.akiiya@gmail.com">n.akr.akiiya@gmail.com</a>> wrote:<br><br></div><blockquote type="cite" style="-webkit-text-size-adjust: auto; "><div><div dir="ltr"><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">Thanks.<br><br></div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">More details, I found that after the REPL started:<br>

; SLIME 2011-10-19<br>CL-USER> (symbol-plist 'disassemble)<br>NIL<br>CL-USER> (disassemble 'disassemble)<br>; Compiled from "disassemble.lisp"<br></div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">

... very long output<br></div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">NIL<br>CL-USER> (symbol-plist 'disassemble)<br>(SYSTEM::%SOURCE (#P"L:/abcl-src-1.1.1/src/org/armedbear/lisp/disassemble.lisp" . 1693)) <br>

<br></div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">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?<br>

<br><br></div></div><div class="gmail_extra"><br clear="all"><div>     Best regards,<br>Xiaofeng Yang</div>
<br><br><div class="gmail_quote">2013/2/23 Mark Evenson <span dir="ltr"><<a href="mailto:evenson@panix.com" target="_blank">evenson@panix.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5">On 2/22/13 4:01 PM, Xiaofeng Yang wrote:<br>
> Hi, all<br>
><br>
> I built ABCL 1.1.1 using Ant. After I built it, I found that the source<br>
> locations of all the symbols are absolute path. For exmaple:<br>
> [1] CL-USER(1): (symbol-plist 'defun)<br>
> (SYSTEM::%SOURCE<br>
> (#P"L:/abcl-src-1.1.1/src/org/armedbear/lisp/precompiler.lisp" . 44441)<br>
> PRECOMPILER::PRECOMPILE-HANDLER PRECOMPILER::PRECOMPILE-DEFUN)<br>
><br>
> I tried  using '--nosystem', setting (LOGICAL-PATHNAME-TRANSLATIONS<br>
> "sys") by myself, and even deleting system.lisp from the jar. But the<br>
> source location didn't change.<br>
><br>
> How can I build ABCL 1.1.1 without recording the absolute path of the<br>
> source ? Or, making the source location changable so that I can locate<br>
> it even if I change the path of the source code ? I think I can do it<br>
> manually by i.g.<br>
> (dolist (pkg (list-all-packages))<br>
>   (do-symbols (sym pkg)<br>
>              if there exists system::%source in symbol-plist, replace it)).<br>
> Is there any other way to do this ?<br>
<br>
</div></div>Currently, there is no way of building to not recording the physical<br>
pathname, but there should be.  The values stored in the symbol plists<br>
should use the SYS:SRC logical pathname.  I've recorded this as ticket<br>
[#301][].<br>
<br>
<br>
[#301]: <a href="http://trac.common-lisp.net/armedbear/ticket/301" target="_blank">http://trac.common-lisp.net/armedbear/ticket/301</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
<br>
"A screaming comes across the sky.  It has happened before, but there is<br>
nothing to compare it to now."<br>
<br>
<br>
</font></span></blockquote></div><br></div>
</div></blockquote></body></html>