On Mon, Nov 3, 2014 at 11:31 PM, Robert P. Goldman <rpgoldman@sift.info> wrote:
Jean-Claude Beaudoin wrote:
>
> On Mon, Nov 3, 2014 at 4:16 PM, Robert P. Goldman <rpgoldman@sift.info
> <mailto:rpgoldman@sift.info>> wrote:
>
>
>     This morning I pulled an update from the mkcl git repo, rebuilt on my
>     Linux Mint machine, and retested with the latest ASDF.  All the tests
>     that completed seemed to complete successfully, but test-program.script
>     hung, instead of completing.
>
>     ...
>
>     The block of the test that fails is "test program-op", "test image-op"
>     seems to complete successfully.
>
>     This seems odd to me, since the result of the image test is a standalone
>     program: it doesn't need to be loaded into mkcl:
>
>     ...
>
>     So seems like the program-op should be able to do exactly what the
>     image-op does, and work correctly.
>
>
> I just tried to have as clean a run at it as I can reasonably have it.
> So, from a freshly created directory, I did:
>
> git clone git://common-lisp.net/projects/mkcl/mkcl.git
> <http://common-lisp.net/projects/mkcl/mkcl.git>
>
> then built it with: (cd mkcl; configure; cd src; make install-local)

Hm.  I did a slightly different set of steps:

cd mkcl
./configure
make
sudo make install

but these look like they should be equivalent (since I didn't set MKCL).


It should be OK, it is just less self-contained in its effects.
 


> Followed by:
>
> git clone git://common-lisp.net/projects/asdf/asdf.git
>
> cd asdf; make t l=mkcl
>
> This resulted in:
>
> -#---------------------------------------
> Using /home/jean-claude/tmp/ASDF/mkcl/src/bin/mkcl
> Ran 56 tests:
>   55 passing and 1 failing
> failing test(s):  test-undeferred-warnings.script
> -#---------------------------------------
>
> To view full results and failures, try the following command:
>      less -p ABORTED build/results/mkcl-test.text
> make: *** [test-lisp] Error 1
> jean-claude@mars>
>
> The last line just here above is my normal prompt, so no hang.
> As you see I do not reproduce the problem you mentioned.
>
> BTW, what happens in test-undeferred-warnings seems to be a syntax issue but I am still unclear about it.

What happens here is that there is a function with undeclared local
variables, but ASDF is not getting a warning from COMPILE-FILE, so it
mistakenly believes the build is successful.

I don't think I wrote this test properly, though.  In a message crossing
with this one, Faré has limited its applicability, but I'm not sure I
understand the change. Surely that system should not build successfully?


I did a minor modification to test-undeferred-warnings.script and it passes now.
Here is what "git diff" says:

diff --git a/test/test-undeferred-warnings.script b/test/test-undeferred-warnings.script
index 810bcd2..bf1cfdb 100644
--- a/test/test-undeferred-warnings.script
+++ b/test/test-undeferred-warnings.script
@@ -10,12 +10,12 @@
 (def-test-system :undefined-variables
   :components ((:file "fun-with-undefined-locals")))
 
-(errors #+(or allegro clozure) compile-file-error
+(errors #+(or allegro clozure mkcl) compile-file-error
         #+(or cmu scl) null
         #+sbcl compile-failed-error
         (let ((*compile-file-warnings-behaviour* :error))
           (load-system :undefined-variables)))
-(errors #+(or allegro clozure) compile-file-error
+(errors #+(or allegro clozure mkcl) compile-file-error
         #+(or cmu scl) null
         #+sbcl compile-failed-error
         (let ((*compile-file-warnings-behaviour* :warning))


Maybe a #-(or <all-of-the-above>) should be added after the set of #+ to make sure that macro "errors" always gets the right number of arguments.

Cheers,

JCB