Yeah, it looks to me like that code would resolve this issue.
What I don't understand, however, is why the pre-init-catch-tag, which
that patch added, didn't resolve the issue. Is this a difference
between catch tags and prompts?
Noah
On Thu, Oct 14, 2010 at 7:36 PM, Mike Gran spk...@yahoo.com wrote:
From: Noah Lavine noah.b.lav...@gmail.com
Hello,
I got into a situation just now when Guile was generating an error
very early in the boot process (it was loading some objcode from
scm_init_eval_in_scheme(), I think, although I haven't looked enough
to be sure). The fun part is, instead of printing an error message, it
got into an infinite recursion that eventually ended in a memory
fault.
The reason is that scm_error_scm in error.c calls scm_ithrow (error.c:315),
which finds its way through scm_throw and some VM calls to
pre_init_throw (throw.c:495)
which in turn gets it to scm_at_abort, which goes to scm_c_abort,
which finally calls scm_misc_error (control.c:210) because it can't
find a prompt on the dynamic stack because the error is too early,
which leads back to scm_error_scm again.
Hi Noah,
FWIW, I also noticed the infinite recusion problem in bug #30162.
http://savannah.gnu.org/bugs/?30162
At the time, I thought that the following revision might be the one
that caused the problem.
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=c6a32a2cd59190dcf17c7fb3022588f56079a03e
-Mike