Enforce or verify that *.asd files are "pure"

Bug #541562 reported by Juanjo Garcia-Ripoll on 2010-03-18
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

My suggestion is a gradual move towards enforcing that *.asd files become mere descriptions of the system and that side effects needed for building and loading are listed in the system itself.

- System definitions should be read and recorded by ASDF in pure form, that is as S expressions, with a hash that maps system names to s-expressions.
- Instead of using LOAD we use a LOOP and READ. If a form which is not a DEFSYSTEM is found, we have two options: if we enforce strict mode, an error is signaled, otherwise the form is evaluated after emitting a warning.
- Warnings could also be emitted when a DEFSYSTEM clause does not match the name of the file, or when more than one such clauses is found.
- The system definition should be scanned for a class name and for a keyword option, :asdf-support If the :asdf-support option is found, it should name a file with side effects that are needed for the ASDF definition to be used. The file should be loaded using LOAD.
- The original S expression is now parsed and the system definition is created.

The warning could be really self-explanatory, stating the following:
- Dependencies that are needed for processing the system definition must be listed in :asdf-support
- Dependencies that are needed for load/compile-op should be listed in :depends-on

Robert P. Goldman (rpgoldman) wrote :

I pushed this to "Wishlist" for importance; figure we can put there a bunch of things we'd like to see sometime.

Changed in asdf:
importance: Undecided → Wishlist
Changed in asdf:
milestone: none → version3
Faré (fahree) wrote :

That's a deep issue that won't get fixed in ASDF3. Moving to ASDF4.

Changed in asdf:
milestone: version3 → version4
status: New → Confirmed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers