On Sun, Mar 16, 2014 at 11:18 AM, Robert P. Goldman <rpgold...@sift.info> wrote: > PROPOSED NEXT STEPS: > > 1. A clear proposal for this modification be made. Right now the > details of the proposed modification are wrapped in a fairly opaque > discussion. The discussion is framed in terms that are either too vague > "Make the CL syntax predictable" or too specific -- very particular > proposals about how variables will be bound. By now the discussion is > also "protected by volume" against people who want to join the > discussion, but weren't parts of it from the beginning. > I opened this bug with links to the current discussion on gmane: https://bugs.launchpad.net/asdf/+bug/1293325
> 2. The proposed change should be modified to operate only in a "strict > mode", allowing existing legal CL code to continue to work. > Agreed, and until the dust settles, "strict mode" cannot be the default. I'd argue it should become the default eventually (i.e. next year). > I propose > that individual systems be allowed to proclaim that they should be > operated on in strict mode, or cannot be used in strict mode. > > "strict mode" would be available as a local declaration: a system could > specify that it should be compiled and loaded with readtable hygiene, > and that would *always* happen when it is operated on. > > The library user would also be allowed to specify a global strict mode > setting, and this setting would be applied in some way like the > following (this is a tentative proposal): > > a. systems that do not specify strict or non-strict mode would be > compiled in strict mode if the user so specifies. This would lead to > errors in some cases, but they would be errors that the user wants to see. > > b. If the caller specifies strict mode, it will be an error to depend > on systems that want to be compiled in non-strict mode. This would > achieve the safety that you wish to see. > Unhappily, strict mode is a global flag: the question is "which readtable is this system going to be read with?". The only reasonable answer is: the readtable it was meant to be read with, which the author knows, and should be the standard readtable by default, unless explicitly overridden by the author. The backward-compatible (if it's not backward, it's not compatible) is "whichever readtable was active at the time", with sometimes comical consequences, especially when the user was using a non-standard one at the REPL. > 3. Getting this right will require much testing and experimentation. > It will not appear in the next ASDF release. > Indeed, this is not 3.1.1 material at all. Hopefully, disabled by default, for 3.1.2, and enabled in a year in 3.2.1 — or whatever you call the next releases. —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org I hold that America, Champion of the World is a betrayal of its humble beginnings as One Nation Underdog.