[EMAIL PROTECTED] (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



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

Reply via email to