[Top][All Lists]

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

Re: [Chicken-users] Porting modules to Chicken from other Schemes?

From: Ivan Raikov
Subject: Re: [Chicken-users] Porting modules to Chicken from other Schemes?
Date: Sat, 10 Sep 2011 14:09:22 +0900
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)


   It depends on whether the module uses features specific to the other
Scheme implementation. I find that the biggest impediments to porting to
Chicken are non-hygienic macros, object oriented systems (often
implemented as non-hygienic macros :-), and elaborate FFI constructs,
which unfortunately vary widely between implementations.

  For example, there is a really nice Scheme package for solving partial
differential equations, written by Brad Lucier, which very unfortunately
uses an object-oriented package called Meroon. While there was a port of
Meroon for Chicken 3, it was very very old, and is insanely hard to port
it to Chicken 4. Likewise, there are nice language extensions for Racket
that depend on some very advanced macrology that could in theory be
ported to Chicken, but again would require a lot of work and

   I have been getting in the habit of scanning the repositories of
other Schemes and other functional languages, and porting packages that
I think I might use in my work, or would be generally useful for
Chicken. Although I would not call this an "organized effort" I am
willing to help others with porting work, so let me know if you have
specific packages in mind. 

   I find it easiest to port libraries written in Standard ML or
non-object-oriented Ocaml. Because the ML languages have a very small
core and no macros, programs written in them use a small set of
functional idioms that are straightforwardly mapped to Scheme. Sadly,
Standard ML no longer has a user community to speak of, but Ocaml has
been picking up lately, and there have been some interesting new
projects at the Ocaml Forge.

  I also like to peruse the Haskell Hackage database, which is currently
the largest active package repository for a functional language. I find
it that it is not hard to port Haskell libraries that are written in the
subset of Haskell that overlaps with ML. However, Haskell and GHC have
some very advanced type extensions that could make it hard or impossible
to port a package. But generally the Haskell libraries are of very high
quality, so at least their source is instructive to read.


John Gabriele <address@hidden> writes:

> Hi,
> How much work is generally required to port modules from other Schemes
> to Chicken?
> Are there any organized efforts to gather free software modules from
> elsewhere, port them to Chicken, and add them to the egg repository
> (similar to how, say, Debian packages software into .deb packages)?
> Thanks,
> ---John

reply via email to

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