chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What are the long-term goals for R7RS in Chicken?


From: Marc Feeley
Subject: Re: What are the long-term goals for R7RS in Chicken?
Date: Mon, 19 Jul 2021 07:54:26 -0400

> On Jul 18, 2021, at 2:19 PM, Lassi Kortela <lassi@lassi.io> wrote:
> 
>> Note that include-files and loaded libraries are two different things,
>> also in CHICKEN, libraries are usually compiled, so the .sld convention
>> is only partially useful.
> 
> The convention (observed at least by Chibi, Gambit, and Gauche) is that each 
> .sld file contains one define-library form.
> 
> Gambit can compile something like hello.sld:
> 
> (define-library (hello)
>  (import (scheme base))
>  (begin (write-string "Hello world\n")))
> 
> into an object file hello.o1 via "gsc hello.sld". The gsi interpreter can 
> load either the original hello.sld or the compiled hello.o1. (I'm not sure 
> why it appends a running number to the ".o" suffix.) The same arrangement 
> would probably work for Chicken.

The Gambit compiler produces a .oN file, a “dynamically loadable object file” 
that is normally a shared-object file, i.e. .so or .dll .  The N is a stamp so 
the first time you compile foo.scm you get foo.o1, the second time foo.o2, etc. 
 This is to avoid the restriction on some operating systems (namely Windows) 
that a given shared-object file can’t be loaded more than once even if the 
content has changed.  Using a fixed file name would prevent calling 
(compile-file “foo.scm”) + (load “foo”) repeatedly from the REPL.

Marc



reply via email to

[Prev in Thread] Current Thread [Next in Thread]