[Openmcl-devel] What is the new context argument in all the compiler functions?

Gary Byers gb at clozure.com
Mon Apr 23 11:55:04 PDT 2012

The "context" argument is used in the frontend to provide coarse-grained
information about how the value(s) returned by forms are used.  Among
other things, it helps the frontend to recognize when self-calls are
likely to be tail-recursive, and knowing (with some confidence) that
a function tail-calls itself can affect how the function's compiled.
There are some other more obscure ways in which this information's
currently used and some other ways in which it could be.

I'm spmewhat dismayed that changes like this don't happen more often
than they do.  There are lots of reasons for that, but worrying about
whether someone will be "somwhat dismayed" when private internal interfaces
change isn't and can't be one of them.

On Sun, 22 Apr 2012, Ron Garret wrote:

> I was surprised (and somewhat dismayed) to see the interface to a bunch of nx1 compiler functions has changed in a non-backwards-compatible way by adding a CONTEXT argument at the beginning of the argument list.  What was the reason for this?  What does CONTEXT do?
> Thanks,
> rg
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list