Opened 7 years ago

Last modified 7 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 7 years ago by Alan Ruttenberg

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.

comment:2 Changed 7 years ago by Mark Evenson

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 7 years ago by Alan Ruttenberg

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.

Note: See TracTickets for help on using tickets.