[Larceny-users] library form for gl.scm

William D Clinger will at ccs.neu.edu
Thu Feb 5 10:28:02 EST 2009


Ed wrote:
> Larceny v0.97b1 (beta test) (Aug 25 2008 07:06:36, precise:Linux:unified)
> ERROR detected during macro expansion:
> Definition out of context
> (define GL_FALSE 0)
> larceny.heap, built on Mon Aug 25 07:08:14 EDT 2008
>
> Any suggestions?

In the body of an R6RS library, all definitions must precede
any expressions that appear at the top level of the body.
The code at http://proteus.freeshell.org/_gl-larceny-a.scm
begins with

    (foreign-file "/usr/X11R7/lib/libGL.so.1")

When your code is inserted into a library, you end up with
definitions following an expression, which implementations
of the R6RS are required to reject.  (See R6RS section 5.5.)
The workaround is to replace that expression by something
like

    (define ignored1
      (foreign-file "/usr/X11R7/lib/libGL.so.1"))

We are sorry for the inconvenience.  Maybe this	will change
in an R7RS.

Will



More information about the Larceny-users mailing list