[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