Are FORCE and FORCE-NOT semantics right?

Bug #1184002 reported by Robert P. Goldman
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
ASDF
Fix Released
Medium
Faré

Bug Description

The manual specifies that FORCE takes precedence over FORCE-NOT, and a half-baked test by me seems to indicate that this is right.

Is this The Right Thing? I would imagine a common case is that someone wishes to rebuild all of the dependencies of some system, with some chosen exceptions. This is what suggested the issue to me, because I wanted to rebuild a system of mine on SBCL. My system depends transitively on SB-GROVEL, which is a built-in, and cannot be rebuilt by a normal user, since it's installed in /usr/local.

So it seemed like (asdf:load-system "foo" :force t :force-not (list "sb-grovel")) would be just the ticket. Unfortunately, if the manual is correct (and behavior of SBCL 1.1.7+ from git suggests it is), this cannot be done.

Is there any reason why the precedence shouldn't be FORCE-NOT overriding FORCE? I.e., build blocking being winning over building?

Revision history for this message
Faré (fahree) wrote :

Note: closed duplicate bug #1227261

Revision history for this message
Faré (fahree) wrote :

You are right indeed: both the case you cite (amendment to :force :all) and the case by Erik Pearson that prompted the feature (don't recompile systems in the dumped image) are about knowing a list of systems for which you trust the current image more than the filesystem and/or filesystem access is going to be painfully slow, at which point the force-not should take precedence over force.

My apologies for not thinking this matter through before.

Revision history for this message
Faré (fahree) wrote :

A persistent default to :force-not, and/or a list of systems that is merged to it or a hash-table consulted in addition to it, might also provide a real solution to this formerly erroneously(?) closed bug, a case similar to that of Erik Pearson:
  https://bugs.launchpad.net/asdf/+bug/604728

Revision history for this message
Faré (fahree) wrote :

OK, fix committed in 3.1.0.89, including a new variable *immutable-systems*. Enjoy!

Changed in asdf:
assignee: nobody → Faré (fahree)
importance: Undecided → Medium
milestone: none → version4
status: New → Fix Committed
Changed in asdf:
milestone: version4 → asdf3-1
Changed in asdf:
status: Fix Committed → Fix Released
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.