[asdf-devel] Backward incompatible improvements
avodonosov at yandex.ru
Sat Mar 29 00:08:16 UTC 2014
16.03.2014, 19:20, "Robert P. Goldman" <rpgoldman at sift.info> wrote about readtable hygiene:
> 2. 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
:mode :safe ; <<-
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 at 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.
More information about the asdf-devel