chicken-hackers
[Top][All Lists]
Advanced

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

Re: [Chicken-hackers] Eggs for Chicken 5


From: Sven Hartrumpf
Subject: Re: [Chicken-hackers] Eggs for Chicken 5
Date: Fri, 23 Mar 2018 16:00:36 +0100 (CET)

John wrote, 2018-03-22 12:22:
> On Thu, Mar 22, 2018 at 12:11 PM, Sven> wrote:
> 
>> I use a Chicken-compiled alexpander to get rid of syntax-rules when
>> compiling
>> some Scheme projects (with non-Chicken compilers).

> I'm interested in this.  Which compilers do you use that don't have
> syntax-rules?

Short answer:
Gambit's define-syntax implementation is incompatible with keywords in 
arguments.

Long answer:
It is somewhat tricky.
For performance reasons, I use Bigloo with only one source file per program;
these are automatically concatenated from many source files.

Unfortunately, for some of my Scheme projects the reachability analysis
of Bigloo detects many false positives. This can slow down the compilation
by a factor of 10 or so because too many unused functions are compiled.
So, I searched for an ideal reachability analysis and it turned out
that Marc Feeley on his way to release Gambit 4.8.9 just implemented this.
(Thanks again to Marc and the chicken community as this solution was kicked off 
by
a discussion on the Chicken mailing list!)
To make the source (which contains keywords and define-syntax) Gambit-friendly,
I preprocess the source with alexpander.scm compiled by Chicken.

In the end, I am happily using three Scheme compilers (Chicken, Gambit, Bigloo)
as one virtual compiler
1. that compiles fast
2. that compiles only reachable functions, and
3. whose resulting binaries run fast :-)
In a sense, this tells you a lot about advantages (and disadvantages)
of the current Scheme world.

Ciao
Sven



reply via email to

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