Re: the number of fields campbell@xxxxxx 07 Nov 2004 16:55 UTC

On 7 Nov 2004, soo wrote:

> When I define a record type having more than 21 fields, Scheme48 shows the
> message of "Interrupt: post-gc".  I'd like to know what this results from.

It is because the implementation performs such heavy syntax-rules-based
computation that Scheme48's heap overflows.  You can 'fix' the problem
by increasing the heap, but that will solve it only temporarily.  The
real problem is that this SRFI's reference implementation just does too
much with syntax-rules; even if it doesn't overflow the heap or so
something equally horrid in other Scheme systems, it is _miserably_
sluggish.  I haven't used it much, but I've heard from some people that
it takes up to an hour to expand a single DEFINE-RECORD-TYPE form.  It
would be a *gargantuan* improvement to provide at least two or three
reference implementations: the original one in plain syntax-rules, one
in syntactic closures (as the most simply expressive, I argue, hygienic
macro system -- the best basis for a _reference_ implementation), and
perhaps one or two in any number of the incompatible variants of