From: Gary K. <gw...@me...> - 2008-10-08 14:12:25
|
I just finished a rough cut of an ASDF overall that makes three largish changes: 1. delays the parsing of system components until needed by traverse. In particular, this means that the :components clause of defsystem form happens after that system's dependencies have been loaded rather than when the ASD file itself is loaded. 2. rewrites traverse as a set of methods that immediately call perform (rather than building up a list of perform actions that are then called in operate). 3. does away with :do-first and moves what it did into :in-order-to The main motivation for change #1 is to be able to define new operations and source file classes in a system's dependencies and have them used in that systems definitions; the main motivation#2 was #1: it does no good to delay parsing of the defsystem form if traverse has to complete the parse before anything else happens!. As for #3, while doing three things at once is just very human (and besides, it made #2 easier). I've got several hours of work left cleaning up loose ends and moving restarts and with-compilation-units around into better places. What I'd appreciate is any high-level feedback about the idea of these changes and whether or not I've missed some horrible interaction that nullifies the whole direction. I hope to post the suggested changes later in the week. Until then, happy coding. -- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM |