On 9/12/16 Sep 12 -9:26 PM, Robert Goldman wrote:
On 9/12/16 Sep 12 -8:54 PM, Faré wrote:
PS: as for touch-file, it only modifies the asdf-cache by default; it won't hit the filesystem unless you explicitly use :in-filesystem t.
OK, I was confused by the extremely odd conditional in the middle of that function:
See the following:
(unless in-filesystem (error "Y U NO use stamp cache?"))
(line 323 of script-support.lisp)
This is pretty odd, because it's only reachable if.... (NOT IN-FILESYSTEM).
I'm going to kill that UNLESS. I'll put it back if it's useful.
Actually, the more I look at this, the more odd it seems.
We don't simply use the cache if IN-FILESYSTEM is NIL -- we do it only if IN-FILESYSTEM is NIL and *ASDF-CACHE* is bound (and we check the latter first).
Can't we just branch on IN-FILESYSTEM, and error out if (NOT IN-FILESYSTEM) and *ASDF-CACHE* is NIL? In that case, the programmer has said: "I want to use the cache," and we are quietly ignoring the request and using the filesystem. I'd rather we blow up when we flout the programmer's directive, instead of trying to DWIM it in a weird way.
Is that an acceptable mod? I'm going to push a candidate patch.
Cheers, r