On 6/28/10 Jun 28 -12:48 AM, Vsevolod Dyomkin wrote:
Hi!
[...snip...]
A final note about versioning: I needed to use pre-reading of ASD files in order to know their versions without arising version conflicts. This works, except for the fact, that READ-EVAL is turned off in the process, so such version specifiers as:
- :version #.*hunchentoot-version*
- :version #.(with-open-file (vers (merge-pathnames "version.lisp-expr"
*load-truename*)) (read vers)) do not produce expected results and are treated as empty versions. There will be a need to make a note about that to library developers.
This is a substantial revision of the contract between the ASDF system author and ASDF, and I suggest that we *NOT* make this change in this local context.
There has been a substantial amount of discussion on moving ASDF system definitions to a more declarative representation, particularly one that could be safely processed by READ, without EVAL. Both Juanjo and James Anderson, IIRC, have pressed for a change in this direction for reasons other than fixing versioning.
As part of this discussion, there have been mentions of specific revisions to DEFSYSTEM intended to make it safely readable without sacrificing too much of ASDF's expressive power.
I would like to suggest that we have an online discussion (and, ideally some kind of hybrid on- off-line discussion possibly affiliated with ILC) of this matter among ALL the people interested in seeing ASDF move to a readable (as opposed to only a LOADable) form of system definition, rather than rush into it in this way.
ASDF is a critical piece of the CL world's development infrastructure, and large-scale modifications such as this one cannot be made hastily.
Best, Robert