Opened 14 years ago

Closed 14 years ago

Last modified 14 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 by ehuelsmann, 14 years ago

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 by ehuelsmann, 14 years ago

Resolution: fixed
Status: closedreopened

r14035 solves #227, not this one.

comment:3 by ehuelsmann, 14 years ago

(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 by ehuelsmann, 14 years ago

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

which are also automatically detected by the automatic autoloader.

comment:5 by ehuelsmann, 14 years ago

Next step:

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

comment:6 by ehuelsmann, 14 years ago

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 by ehuelsmann, 14 years ago

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 by ehuelsmann, 14 years ago

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.