Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#226 closed enhancement (fixed)

Generate list of symbols for autoloading at build-time

Reported by: ehuelsmann Owned by: ehuelsmann
Priority: major Milestone:
Component: build Version:
Keywords: Cc:
Parent Tickets:

Description

Currently, our list of symbols to be set up for auto-loading is
a manual maintenance effort which makes ABCL fragile with respect
to refactoring.

My idea would be to have an auto-collected list, with two (hand-coded) lists: one to include additional symbols and the other to exclude symbols (e.g. to reduce the size of the symbol list).

Change History (8)

comment:1 Changed 9 years ago by ehuelsmann

Resolution: fixed
Status: newclosed

(In [14035]) Fix #226 (Invocation of an undefined function in a fresh ABCL crashes):
make sure the PRINT-OBJECT generic function exists
before defining methods on it.

comment:2 Changed 9 years ago by ehuelsmann

Resolution: fixed
Status: closedreopened

r14035 solves #227, not this one.

comment:3 Changed 9 years ago by ehuelsmann

(In [14036]) Re #226: Automatically generate autoloads.

This commit adds the auto generation code and infrastructure. Next steps
include clean up of autoloads.lisp, deciding how to handle symbols in
multiple files and SETF functions/expanders.

comment:4 Changed 9 years ago by ehuelsmann

(In [14100]) Re #226: Clean symbols from manually maintained autoloads.lisp

which are also automatically detected by the automatic autoloader.

comment:5 Changed 9 years ago by ehuelsmann

Next step:

Move EXPORT forms to the respective source files
defining the function and macro bindings.

comment:6 Changed 9 years ago by ehuelsmann

We're nearly there: I noticed we don't detect structure slot accessors when
compiling the macro expansion of a defstruct, due to its use of SETF SYMBOL-FUNCTION.

Expanding to FSET and detecting that at compile-time would solve it.

comment:7 Changed 9 years ago by ehuelsmann

Resolution: fixed
Status: reopenedclosed

(In [14126]) Closes #226: All exports and all but one autoload have been removed
from autoloads.lisp due to automatic loading. Documentation inside
autoloads.lisp has also been updated.

comment:8 Changed 9 years ago by ehuelsmann

FSET detection can always be added later. For now, I'm assuming structures will be created before being accessed, meaning I'll rely on timely initialized accessors for now.

Note: See TracTickets for help on using tickets.