16.03.2014, 19:20, "Robert P. Goldman" rpgoldman@sift.info wrote about readtable hygiene:
- The proposed change should be modified to operate only in a "strict
mode", allowing existing legal CL code to continue to work. I propose that individual systems be allowed to proclaim that they should be operated on in strict mode
The same approach may be used for deferred warnings check. And for other improvements.
If ASDF develops better mode of operation, which is incompatible with old mode, no need to break old systems.
I've been thinking about new form:
(asdf3:defystem ...) or (asdf:defystem3 ...).
Systems defined like that benefit from new features. Old asdf:defsystem remains working as before (and may even be deprecated).
Another alternative is a slot in system definition, like
(asdf:defystem :mode :safe ; <<- :version "0.1.0" :serial t ...)
The disadvantages of a :mode :safe is that it's more typing, and people can overlook/forget about it.
If new mode is an improved one, it should be easily accessible.
29.03.2014, 02:39, "Daniel Herring" dherring@tentpost.com:
Would it be possible to have a special header in asdf files indicate that the contained system(s) should be loaded using the new syntax mechanism?
[...]
;; asdf:config '(asdf:+clean-readtable+)
No, it's inconvenient, why use special parser if we can just directly specify what we want in a lisp expression.
Details may wary. For example, Robert says:
.. individual systems be allowed to proclaim that they should be operated on in strict mode, or cannot be used in strict mode.
To me the proclamation "cannot be used in strict mode" looks redundant.
The main important idea - new features may be provided separately, without breaking old code, spending efforts on fixing old libraries, chasing their authors and asking for their attention to commit the changes; and other disturbances in CL ecosystem.
It's a simpler and cheaper way.
Best regards, - Anton