On Mon, Aug 22, 2011 at 9:31 PM, Taylor R Campbell <[email protected]> wrote:
>   Date: Sun, 21 Aug 2011 21:19:55 +0100
>   From: Alexey Radul <[email protected]>
>
>   Expected behavior: Ideally, the compiler would successfully compile
>   the enclosed file; I believe it to be correct -- in particular, the
>   interpreter runs it without incident -- though I would not stake my
>   reputation on the absence of errors in it.  Failing that, however, I
>   would wish the error message to be more informative.  Is this a
>   manifestation of a limitation on the maximum size of basic block that
>   the x86-64 code generator is willing to emit?
>
> It is indeed a manifestation of such a limit.  Changing the error
> message to say that a little more explicitly would be easy, but not
> much more helpful for the user.
>
> I'm looking into changing the actual limit, which looks to be a little
> fiddly.  There may also be other limits lurking throughout the code
> that nobody has documented or analyzed, although probably most of them
> are 32-bit limits rather than 16-bit limits like this one.

Awesome!  I will let you know as soon as I hit them :)

There was one a while back that did have a good error message, and
that was that the code generator (on x86-64, I think) barfed when I
gave it a tail-recursive procedure that accepted 700 parameters and
passed them to itself.  Something about "too many temporaries".  I
didn't worry about it too much, though, because 695 of those
parameters were unused (and aliases of each other).  So I just
implemented the appropriate stage in the prototype and the problem
went away.  But since we're talking about limits, I thought I would
mention it.

~Alexey

_______________________________________________
MIT-Scheme-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/mit-scheme-devel

Reply via email to