[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Test-suite update
From: |
Neil Jerram |
Subject: |
Re: [PATCH] Test-suite update |
Date: |
Fri, 23 Sep 2005 19:57:40 +0100 |
User-agent: |
Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) |
address@hidden (Ludovic Courtès) writes:
> When running `elisp.test' untouched. Here's what I get:
>
> $ guile -L .. -l tests/elisp.test
> [...]
> PASS: scheme: value preservation: cdr
> PASS: scheme: value preservation: vector-ref
> ERROR: Stack overflow
I can't reproduce this, but I wonder if the processing is genuinely on
the border line of the allowed stack depth. Does it help if you add
this to elisp.test just before the problem:
(debug-set! stack (* (cadr (memq 'stack (debug-options))) 2))
Also, can you confirm whether you see this problem with current CVS,
i.e. without your patch?
> Adding `format' expressions shows that this seems to occur when evaluating:
>
> (if (defined? '%nil)
> (use-modules (lang elisp interface)))
>
> However, it works when run like this:
>
> $ guile -L ..
> guile> (load "tests/elisp.test")
> PASS: scheme: nil value is a boolean: boolean?
> [...]
> PASS: elisp: (defvar x 4)
> PASS: elisp: x
> guile>
On the other hand, if it is a genuine stack depth problem, I'd expect
this one to fail also, since the stack depth of the code for
(top-repl) is a lot more than that of the code that script.c generates
for a -l arg.
> So I tried the following:
>
> $ guile -L .. -c '(begin (set! %load-hook (lambda (f) (format #t "loading
> ~a...~%" f))) (load "tests/elisp.test"))'
> loading tests/elisp.test...
> [...]
> PASS: scheme: value preservation: vector-ref
> loading ../lang/elisp/interface.scm...
> [...]
> PASS: elisp: (defvar x 4)
> PASS: elisp: x
>
> And here everything works fine.
>
> Any idea of the difference between `-l' and `load'? Looking at
> `script.c', that seems equivalent.
Yes. This seems pretty odd.
Neil
Re: [PATCH] Test-suite update, Kevin Ryde, 2005/09/22