Opened 12 years ago
Last modified 12 years ago
#343 new defect
interactively evaluated or compiled functions don't get arglist saved
| Reported by: | Alan Ruttenberg | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | interpreter | Version: | |
| Keywords: | Cc: | ||
| Parent Tickets: |
Description
Index: precompiler.lisp
===================================================================
--- precompiler.lisp (revision 14581)
+++ precompiler.lisp (working copy)
@@ -1184,6 +1184,7 @@
(setf lambda-expression (precompiler:precompile-form lambda-expression nil)))
`(prog1
(%defun ',name ,lambda-expression)
+ (%set-arglist (symbol-function ',name) ,(format nil "~{~a~ ~}" (third lambda-expression)))
,@(when doc
`((%set-documentation ',name 'function ,doc)))))))))
Change History (3)
comment:1 Changed 12 years ago by
comment:2 Changed 12 years ago by
With that patch I cannot seemingly get ABCL to start after compiling from scratch:
Low-level initialization completed in 0.798 seconds. org.armedbear.lisp.IntegrityError at org.armedbear.lisp.Primitives$pf_error.execute(Primitives.java:1577) at org.armedbear.lisp.Primitive.execute(Primitive.java:113) at org.armedbear.lisp.Symbol.execute(Symbol.java:803) at org.armedbear.lisp.Lisp.error(Lisp.java:383) at org.armedbear.lisp.Load.loadSystemFile(Load.java:304) at org.armedbear.lisp.Load$load_system_file.execute(Load.java:745) at org.armedbear.lisp.LispThread.execute(LispThread.java:814) at org.armedbear.lisp.Lisp.evalCall(Lisp.java:575) at org.armedbear.lisp.Lisp.eval(Lisp.java:540) at org.armedbear.lisp.Load.loadStream(Load.java:611) at org.armedbear.lisp.Load.loadFileFromStream(Load.java:579) at org.armedbear.lisp.Load.loadFileFromStream(Load.java:459) at org.armedbear.lisp.Load.loadSystemFile(Load.java:357) at org.armedbear.lisp.Interpreter.initializeLisp(Interpreter.java:172) at org.armedbear.lisp.Interpreter.createDefaultInstance(Interpreter.java:102) at org.armedbear.lisp.Main$1.run(Main.java:46) at java.lang.Thread.run(Thread.java:744) ERROR placeholder called with arguments: Failed to find loadable system file 'autoloads-gen' in boot classpath. Failed to find loadable system file 'autoloads-gen' in boot classpath.
comment:3 Changed 12 years ago by
That's quite impressive. Guess I'll do some fiddling, though it will be kind of a random search as I have no clue what the interaction could be about.
Maybe exclude the case where it is done while loading. Not sure of right way to test, perhaps
(unless *load-pathname* (%set-arglist (symbol-function ',name) ,(format nil "~{~a~^ ~}" (third lambda-expression))))though source isn't currently recorded either and binding *load-pathname* when evaluating in emacs buffer might be easiest way to patch that.