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

Bug #541562 reported by Juanjo Garcia-Ripoll
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ASDF
Confirmed
Wishlist
Unassigned

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

Revision history for this message
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
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.