#170: Make COMPILE-FILE a multi-pass operation ------------------------+--------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: new Priority: major | Milestone: Component: compiler | Version: Keywords: | ------------------------+--------------------------------------------------- The single-pass implementation of COMPILE-FILE has several drawbacks:
1. Only backward referenced function calls can be inlined (since forward referenced functions are unknown at the time of compilation) 1. It's much harder to build an fasl-literal-object table with objects being referenced multiple times in the fasl; we need this item for compliance with [http://www.lispworks.com/documentation/HyperSpec/Body/03_bdd.htm section 3.2.4.4 of the CLHS]
#170: Make COMPILE-FILE a multi-pass operation ------------------------+--------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: new Priority: major | Milestone: Component: compiler | Version: Keywords: | ------------------------+---------------------------------------------------
Comment(by ehuelsmann):
The compliance mentioned in item (2) requires not only making class generation multi-pass, but additionally to do 'pre-scanning' of the objects to be serialized, in order to initialize the circularity tables for dump-form to generate the structure 'anchors' #n= and #n#.
#170: Make COMPILE-FILE a multi-pass operation ------------------------+--------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: new Priority: major | Milestone: unscheduled Component: compiler | Version: Keywords: | ------------------------+--------------------------------------------------- Changes (by mevenson):
* milestone: => unscheduled
armedbear-ticket@common-lisp.net