[Larceny-users] Larceny basics
Dan Muresan
danmbox at gmail.com
Fri Aug 31 19:38:25 EDT 2007
Hi Felix,
> (The potentially tricky part of the above paragraph is that phrase
> "known to the compiler"; how does one tell Larceny's compiler about
> the special forms one wants the compiler to use? There are different
> methods, but the easiest one for you to adopt is to make sure that
> any such macro definitions are first loaded or defined before you
> compile the file at all.)
That doesn't seem to be much of a limitation -- if I'm compiling a file that needs srfi-2 (i.e. the and-let* macro), it makes sense that I first need to load srfi-2.
> % cat testreqext.sch
> (require-extension (srfi 2))
> % larceny
> Larceny v0.94 "Doomsday Device" (Aug 14 2007 10:56:17,
> precise:Linux:unified)
> larceny.heap, built on Wed Aug 1 12:53:28 EDT 2007
>
> > (compile-file "testreqext.sch" "testreqext-firsttry.fasl") ;; (OOPS!)
>
> > (load "testreqext-firsttry.fasl")
>
>
> Error: Undefined global variable "srfi".
> Entering debugger; type "?" for help.
> debug> q
>
> > (load "defreqext.sch") ; this file has the define-syntax given
> earlier
>
> > (compile-file "testreqext.sch" "testreqext-secondtry.fasl")
>
> > (load "testreqext-secondtry.fasl") ;; this one succeeds!
Again, this doesn't seem a to be a problem to me; in fact I would have been surprised if the first example worked at all.
I must be missing something; are there any other simple examples that highlight the issue? I looked at the Trac page about extending (require), but without an example I'm not sure exactly what you're trying to say.
Best,
Dan
More information about the Larceny-users
mailing list