[gambit-list] How to create small standalone executable with

Marc Feeley feeley at iro.umontreal.ca
Mon Aug 17 11:04:26 EDT 2009


On 17-Aug-09, at 10:17 AM, Taylor R Campbell wrote:

> Procedures such as
> Gambit's ##MAKE-GLOBAL-VAR are not necessary to make Scheme work.

You are correct.  Scheme can be made to work with very little code.   
For example the PICBIT system which implements most of R4RS can fit in  
roughly 20kb of code, and the PICOBIT VM fits in less than 10kb of  
code.  Gambit's design goals do not include "a compact runtime  
system".  Gambit was designed to be portable and efficient, and to  
provide a superior development and production environment for Scheme.

In my message I was explaining that in Lisp-like languages, such as  
Gambit Scheme, where dynamism is pervasive and features are highly  
interdependent, it is hard to implement an effective tree-shaker.

Are you saying that Scheme48 does not adhere to that Lisp philosophy?   
I thought Scheme48 supported "live debugging" and that it was the  
default execution mode.  Does the debugger rely on eval?  What happens  
when an exception is raised at run time?  On my MacBook Pro I checked  
the size of the runtime system of Scheme48 and Gambit and there is in  
fact very little difference (scheme48.image=2.7MB and gsi=3.3MB).   
Also, when executing (let loop () (loop)) the ps program reveals that  
Scheme48 has a RSS of 6.4MB and Gambit has a RSS of 2.4MB.  So at  
execution time, for a small program, Scheme48 seems to take 2.5 times  
as much memory as Gambit.

Marc




More information about the Gambit-list mailing list