rpgoldman at sift.net
Mon Sep 12 22:37:11 UTC 2016
On 9/12/16 Sep 12 -4:33 PM, Robert Goldman wrote:
> I ran the tests again on all three platforms.
> Allegro, ccl, ECL-bytecodes, and SBCL all fail test-force.
> ECL-bytecodes also fails test-run-program.
> These seem to be failing here:
> (DBG "Check that require-system of touched .asd will reload the asdf.")
> (DBG "(That's what it does now, but if it could be fixed that'd be nice.)")
> (unset-asdf-cache-entry '(locate-system "test-asdf"))
> (unset-asdf-cache-entry '(find-system "test-asdf"))
> (unset-asdf-cache-entry '(find-system "test-asdf/force"))
> (touch-file "test-asdf.asd" :timestamp (+ 10000 (get-file-stamp file1)))
> (require-system 'test-asdf/force)
> (assert-equal (asymval :*times-loaded* :test-asdf-system) 2)
> Looks like *TIMES-LOADED* is evaluating to 1 instead of 2.
> Anyone know why this would have changed?
Looking further, it seems like getting the proper results here relies on
TOUCH-FILE (script-support.lisp) which, in turn, relies on being able to
invoke "touch" through a shell. So I wonder not so much why this is
broken, as why it ever worked. Possibly because I have always run the
tests with Cygwin installed.
According to this:
it looks like on Windows if we need to set the new time to a particular
time, we should use PowerShell, but if we only want to set to the
*current* time, we can do it with windows Copy. But... that won't
satisfy the ASSERT-EQUAL in TOUCH-FILE.
Fare -- should we be replacing this, on windows, with the windows-native
"copy"? Or is there some reason why we must have the ability to set the
exact time, instead of simply increasing it to be greater than it was in
More information about the asdf-devel