Thanks for sorting out that I need to run without ".zo" files to
provoke the crash!

Your program exposed two different bugs in the JIT, both with the same
symptom --- overflowing an internal stack --- and both in the
"surprising that we didn't hit these before" category.

The first bug was in a slow path for `apply`. When the number of items
in the list provided as the last argument to `apply` is too many to fit
on the stack, then a slow path is taken. But the slow path still pushed
each argument to `apply` onto the stack, which can still run out of
space (especially if several extra arguments are provided to `apply`
before the final list argument, although I think that was not the case
heere).

The second bug was in the way that `case-lambda` is JITted. Individual
cases are JITted lazily, and the minimal stack space needed for each
case was not correctly propagated by the to overall `case-lambda`
representation.

I've pushed repairs for those bugs.

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to