Faré wrote:
Robert, what do you think? Should we "just" copy-readtable and copy-pprint-dispatch around each action? Or should we try to share the tables for all files in a system? Should we try to have defsystem save the values of *readtable* and *print-pprint-dispatch*, while load-asd does the creation of fresh tables? Should systems and/or individual components have a more general purpose variables and variable-values slot, which should be passed to progv, and be initialized from an alist?
I do not think that we should address this issue in our current release iteration.
The CL spec does not, IMO, provide strong enough guidance about the use of *READTABLE* and *PRINT-PPRINT-DISPATCH* that we can safely enforce good behavior.
Furthermore, the language does not provide the constructs needed to observe good hygiene, or at least not easily. There's no readtable or pprint-dispatch equivalent to IN-PACKAGE. That's why, for example, Allegro provides *named* readtables (which tcr has tried to provide in a portable library).
Over the years, I have looked at large piles of code that modify the current readtable or pprint-dispatch table, using the available functions without the optional table designators. This is not ideal style, IMO, but I don't feel that it's the job of ASDF to fix it.
This is certainly not uncontroversial enough that we should start pushing out a solution today. We have enough controversy on our plate already! I am unable to keep up the dialog about BUILD-OP (under whatever name) and the default code location. We need to leave this sleeping dog to lie for now.
Best, r