#285 Bug when linking a program

HEAD
closed
nobody
asdf (1)
1
2014-09-27
2014-02-26
Anonymous
No

asdf:program-op used to work great, but started failing between the following two commits.

This commit works (modulo the patch for bug 284):
commit e7daee08e8cb7d4b4cea4bc27ce9c7839e236938
Author: Juanjo Garcia-Ripoll jjgarcia@users.sf.net
Date: Wed Oct 9 21:41:57 2013 +0200

This commit fails (even after applying the patch for bug 284):
commit 40b1b33664b8c89f024018b1d6306c7cd357c67d
Merge: db2925d bbe8756
Author: Juanjo Garcia-Ripoll jjgarcia@users.sf.net
Date: Sun Oct 27 23:50:14 2013 +0100

That's 8 commits to bisect, and I bet the culprit is either of the Oct 10 commits.

To test the bug, have a recent git checkout of both asdf, lisp-invocation under a same parent directory, then in the asdf directory, run:
make t l=ecl t=test-program.script
If it's a success, you're good. If it fails because the restart function was replaced by the integer value of a pointer, then you're seeing the bug.

Success looks like this:
;;; Finished compiling /home/tunes/cl/asdf/test/hello.lisp.
;;;
Script succeeded
Script succeeded
Using ecl, test-program.script passed

-#---------------------------------------
Using ecl
Ran 1 tests:
1 passing and 0 failing
all tests apparently successful
-#---------------------------------------

Failure looks like that:
These two expressions fail comparison with EQUAL:
(UIOP/RUN-PROGRAM:RUN-PROGRAM `(,(UIOP/FILESYSTEM:NATIVE-NAMESTRING ASDF-TEST::EXE)) :OUTPUT :LINES) evaluates
to ("No restarts available." "" "Top level in: #<process TOP-LEVEL="">." "> ")
'("hello, world") evaluates to ("hello, world")
Script failed
Using ecl, test-program.script failed
you can retry compilation with:
./test/run-tests.sh ecl test-program.script
or more interactively (and maybe with rlwrap or in emacs), start with:
(cd test ; ecl -norc -load sys:cmp )
then copy/paste:
'(#.(load "script-support.lisp") #.(asdf-test::da) #.(load-asdf) #.(frob-packages) #.(asdf::with-asdf-cache () (load "test-program.script")))

-#---------------------------------------
Using ecl
Ran 1 tests:
0 passing and 1 failing
failing test(s): test-program.script
-#---------------------------------------

To view full results and failures, try the following command:
less -p ABORTED build/results/ecl-test.text
make: *** [test-lisp] Error 1

Failure to have lisp-invocation installed looks deceptively like success:
Couldn't find lisp-invocation. Skipping the rest the test.
Using ecl, test-program.script passed

-#---------------------------------------
Using ecl
Ran 1 tests:
1 passing and 0 failing
all tests apparently successful
-#---------------------------------------

Discussion

  • More bisecting: it's one of the two Oct 10 patches indeed: the test fails with db2925daf6a3883f509e15579f0c2c9bc2138c41.

    The same pair of commits may be the cause of other reported VALUES bug.

    I've narrowed down the bug, but I am not proficient to fix, nor do I have time to become. Good luck!

     

  • Anonymous
    2014-09-26

    It looks like this may have been the same bug as #286, and fixed at the same time in 7262dd7b0e4113fd5b7deefd121020a96760dd5d.

     
  • Yes, it's the same bug as #286 and #275 and I did a before/after test to check that it was indeed by Stas' "Fix VALUES declaration processing.", 3f0ce7f7d40a2d2a8eed77e9fc5b588922c335b5. Thanks, Stassats!

    All ASDF tests now work fine at HEAD 85165d989a563abdf0e31e14ece2e97b5d821187.

     


Anonymous


Cancel   Add attachments