<div dir="ltr"><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">Hi, Mark. I had updated my JDK to 1.7.0_15, then recompiled ABCL 1.1.1 using JDK 1.7.0_15 and ran it using JDK 1.7.0_15. But, there are the same problems. Even the symbols are the same as what I mentioned before. <br>

</div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">I collected the symbols that cannot be resolved. I hope it useful.<br>(defparameter *cannot-resolve* '("CLASS-DIRECT-SLOTS" "COMPUTE-CLASS-DIRECT-SLOTS" "MAKE-FORWARD-REFERENCED-CLASS" "%SET-STREAM-EXTERNAL-FORMAT" "%IMPORT" "%DELETE-PACKAGE"))<br>

</div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small"><br></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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div dir="auto"><div>JDK 7 before 1.7.0_04 had some funkiness with loading things, which I never fully investigated.  Please try to update to 1.7.0_15 to see if you have the same problems.<div class="im"><br><br><div>--</div>

A: Because it messes up the order in which people normally read text.<div>Q: Why is top-posting such a bad idea?</div><div>A: Top-posting.</div><div>Q: What is the most annoying thing in email?</div></div></div><div><div class="h5">

<div><br>On Feb 23, 2013, at 8:39 AM, Xiaofeng Yang <<a href="mailto:n.akr.akiiya@gmail.com" target="_blank">n.akr.akiiya@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><div style="font-family:courier new,monospace;font-size:small">

Thanks in advanced, Mark. Now it works for some symbols (e.g. DISASSEMBLE).<br><br></div><div style="font-family:courier new,monospace;font-size:small">

But, every time I performed this on all symbols, it threw exceptions and crashed.<br><br>D:\mefcl-0.2\abcl>java -jar dist\abcl.jar org.armedbear.lisp.Main --load "mefcl-init.lisp"<br>Armed Bear Common Lisp 1.1.1<br>



Java 1.7.0_02 Oracle Corporation<br>Java HotSpot(TM) Client VM<br>Low-level initialization completed in 0.305 seconds.<br>Startup completed in 4.078 seconds.<br>Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/quicklisp/ to ASDF.<br>



Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/mvn/ to ASDF.<br>Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/jss/ to ASDF.<br>Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/jfli/ to ASDF.<br>


Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/asdf-jar/ to ASDF.<br>
Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/asdf-install/ to ASDF.<br>Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/abcl-asdf/ to ASDF.<br>Unable to autoload CLASS-DIRECT-SLOTS<br>Exception in thread "interpreter" org.armedbear.lisp.IntegrityError<br>



        at org.armedbear.lisp.Autoload.load(Autoload.java:156)<br>        at org.armedbear.lisp.Autoload$pf_resolve.execute(Autoload.java:339)<br>        at org.armedbear.lisp.LispThread.execute(LispThread.java:640)<br>        at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553)<br>



        at org.armedbear.lisp.Lisp.eval(Lisp.java:518)<br>        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>        at org.armedbear.lisp.Primitives$sf_when.execute(Primitives.java:844)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:508)<br>



        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>        at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:508)<br>        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>



        at org.armedbear.lisp.Closure.execute(Closure.java:220)<br>        at org.armedbear.lisp.Closure.execute(Closure.java:154)<br>        at org.armedbear.lisp.LispThread.execute(LispThread.java:653)<br>        at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560)<br>



        at org.armedbear.lisp.Lisp.eval(Lisp.java:518)<br>        at org.armedbear.lisp.Lisp.processTagBody(Lisp.java:824)<br>        at org.armedbear.lisp.Primitives$sf_tagbody.execute(Primitives.java:3684)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:508)<br>



        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>        at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:508)<br>        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>



        at org.armedbear.lisp.Closure.execute(Closure.java:220)<br>        at org.armedbear.lisp.Closure.execute(Closure.java:148)<br>        at org.armedbear.lisp.LispThread.execute(LispThread.java:640)<br>        at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961)<br>



        at org.armedbear.lisp.LispThread.execute(LispThread.java:653)<br>        at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:518)<br>        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>



        at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:508)<br>        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>        at org.armedbear.lisp.Closure.execute(Closure.java:220)<br>



        at org.armedbear.lisp.Closure.execute(Closure.java:148)<br>        at org.armedbear.lisp.LispThread.execute(LispThread.java:640)<br>        at org.armedbear.lisp.Lisp.evalCall(Lisp.java:553)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:518)<br>



        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>        at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362)<br>        at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290)<br>



        at org.armedbear.lisp.Lisp.eval(Lisp.java:508)<br>        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>        at org.armedbear.lisp.Closure.execute(Closure.java:220)<br>        at org.armedbear.lisp.Closure.execute(Closure.java:148)<br>



        at org.armedbear.lisp.LispThread.execute(LispThread.java:640)<br>        at org.armedbear.lisp.Primitives$pf_mapc.execute(Primitives.java:2961)<br>        at org.armedbear.lisp.LispThread.execute(LispThread.java:653)<br>



        at org.armedbear.lisp.Lisp.evalCall(Lisp.java:560)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:518)<br>        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>        at org.armedbear.lisp.SpecialOperators._flet(SpecialOperators.java:362)<br>



        at org.armedbear.lisp.SpecialOperators$sf_flet.execute(SpecialOperators.java:290)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:508)<br>        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>        at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3737)<br>



        at org.armedbear.lisp.Lisp.eval(Lisp.java:508)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:511)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:516)<br>        at org.armedbear.lisp.Lisp.progn(Lisp.java:687)<br>



        at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169)<br>        at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101)<br>        at org.armedbear.lisp.Lisp.eval(Lisp.java:508)<br>



        at org.armedbear.lisp.Load.loadStream(Load.java:606)<br>        at org.armedbear.lisp.Load.loadFileFromStream(Load.java:574)<br>        at org.armedbear.lisp.Load.load(Load.java:206)<br>        at org.armedbear.lisp.Load.load(Load.java:128)<br>



        at org.armedbear.lisp.Interpreter.postprocessCommandLineArguments(Interpreter.java:333)<br>        at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:110)<br>        at org.armedbear.lisp.Main$1.run(Main.java:46)<br>



</div><div style="font-family:courier new,monospace;font-size:small">        at java.lang.Thread.run(Thread.java:722)<br></div><div style="font-family:courier new,monospace;font-size:small">

<br></div><div style="font-family:courier new,monospace;font-size:small">When I loaded `mefcl-init.lisp'(just the code I wrote before to change the source location) after the REPL started, it crashed without stack trace printed.<br>



<br>D:\mefcl-0.2\abcl>java -jar dist\abcl.jar org.armedbear.lisp.Main<br>Armed Bear Common Lisp 1.1.1<br>Java 1.7.0_02 Oracle Corporation<br>Java HotSpot(TM) Client VM<br>Low-level initialization completed in 0.309 seconds.<br>



Startup completed in 4.086 seconds.<br>Type ":help" for a list of available commands.<br>CL-USER(1): (load "mefcl-init.lisp")<br>Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/quicklisp/ to ASDF.<br>



Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/mvn/ to ASDF.<br>Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/jss/ to ASDF.<br>Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/jfli/ to ASDF.<br>


Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/asdf-jar/ to ASDF.<br>
Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/asdf-install/ to ASDF.<br>Added jar:file:D:/mefcl-0.2/abcl/dist/abcl-contrib.jar!/abcl-asdf/ to ASDF.<br>Unable to autoload CLASS-DIRECT-SLOTS<br><br>So I tried to restart ABCL and resolve CLASS-DIRECT-SLOTS manually.<br>



CL-USER(1): (autoload 'class-direct-slots)<br>T<br>CL-USER(2): (resolve 'class-direct-slots)<br>#<THREAD "interpreter" {EF89C6}>: Debugger invoked on condition of type ERROR<br>  Failed to find loadable system file 'class-direct-slots' in boot classpath.<br>



Restarts:<br>  0: TOP-LEVEL Return to top level.<br><br></div><div style="font-family:courier new,monospace;font-size:small">Did I miss something ? Or say, how to solve this problem ?<br></div><div style="font-family:courier new,monospace;font-size:small">



<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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



<div dir="auto"><div>Congratulations!  You've met the autoloader, now level up...</div><div><br></div><div>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><br></div><div>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><br></div><div>Using these functions we may define </div><div><div><span><br></span></div><div><span>    (defun maybe-resolve-symbol-plist (symbol)</span></div><div><span>      (when (autoloadp symbol)</span></div><div>



<span>        (resolve symbol))</span></div><div><span>     (symbol-plist symbol))</span></div><div><span><br></span></div><div><span>which you can then use in your code to change the source locations.</span></div><div><span><br>



</span></div><div><span>yers,</span></div><div><span>Mark </span></div><br><div>--</div><span>A: Because it messes up the order in which people normally read text.</span><div>Q: Why is top-posting such a bad idea?</div><div>



A: Top-posting.</div><div>Q: What is the most annoying thing in email?</div></div><div><div><div><br>On Feb 23, 2013, at 7:25 AM, Xiaofeng Yang <<a href="mailto:n.akr.akiiya@gmail.com" target="_blank">n.akr.akiiya@gmail.com</a>> wrote:<br>



<br></div><blockquote type="cite"><div><div dir="ltr"><div style="font-family:courier new,monospace;font-size:small">Thanks.<br><br></div><div 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 style="font-family:courier new,monospace;font-size:small">





... very long output<br></div><div 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 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:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div><div>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><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></div></div></div></blockquote></div><br></div>
</div></blockquote></div></div></div></blockquote></div><br></div></div>