f



Is there any embeddable lisp or scheme?

One that is not using the Boehm GC because this will not work with my
program.
I'm using optimized settings for the Boehm GC in my own program, so no
library is allowed to use it.

Then it must work on Windows, Mac, Linux, BSD's, Solaris. I heared
that guile is still not stable on windows (and i mean windows, not
cygwin or mingw or ....).

It is also necessary that it is licensed as LGPL or better.

0
llothar (601)
2/18/2007 5:55:04 PM
comp.lang.lisp 16861 articles. 5 followers. Post Follow

5 Replies
1115 Views

Similar Articles

[PageSpeed] 46

llothar skrev:
> One that is not using the Boehm GC because this will not work with my
> program.
> I'm using optimized settings for the Boehm GC in my own program, so no
> library is allowed to use it.
> 
> Then it must work on Windows, Mac, Linux, BSD's, Solaris. I heared
> that guile is still not stable on windows (and i mean windows, not
> cygwin or mingw or ....).
> 
> It is also necessary that it is licensed as LGPL or better.

Maybe MzScheme?

   <http://www.plt-scheme.org/software/mzscheme/>

(Note: The default garbage collector is now a precise
        collector called 3m - the old default collector
        was Boehm's)

-- 
Jens Axel S�gaard
0
usenet8944 (1130)
2/18/2007 6:15:31 PM
On Sun, 18 Feb 2007 18:55:04 +0100, llothar <llothar@web.de> wrote:

> One that is not using the Boehm GC because this will not work with my
> program.
> I'm using optimized settings for the Boehm GC in my own program, so no
> library is allowed to use it.
>
> Then it must work on Windows, Mac, Linux, BSD's, Solaris. I heared
> that guile is still not stable on windows (and i mean windows, not
> cygwin or mingw or ....).
>
> It is also necessary that it is licensed as LGPL or better.
>

ECL
http://ecls.sourceforge.net/


-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
0
2/18/2007 8:33:57 PM
On Feb 18, 6:55 pm, "llothar" <llot...@web.de> wrote:
> One that is not using the Boehm GC because this will not work with my
> program. I'm using optimized settings for the Boehm GC in my own program,
> so no library is allowed to use it.

ECL uses that garbage collector, though it comes with another, slower
one, that might fit your needs. But as a long time user of the Boehm-
Weiser GC, I am curious what you do with your program that prevents it
working with other programs. In any case, you might want to look at
ECL. It is very easy to change the way it works with the GC.

Juanjo

0
2/18/2007 9:43:24 PM
>
> ECL uses that garbage collector, though it comes with another, slower
> one, that might fit your needs. But as a long time user of the Boehm-
> Weiser GC, I am curious what you do with your program that prevents it
> working with other programs. In any case, you might want to look at
> ECL. It is very easy to change the way it works with the GC.

The problem is that i specify my whole root set because my data
segment is huge (wrapped scripts, data fields etc) and therefore i got
a lot of wrong pointer hits. I'm using the special malloc for strings
now and set all data to NULL when it is no longer available (in all
places where it is easy to do so).

The explicit root specifications are a problem because global ECL data
wouldn't be gc protected.

I will check it out because i like lisp much much more then scheme.

0
llothar (601)
2/18/2007 11:08:43 PM
On Feb 19, 12:08 am, "llothar" <llot...@web.de> wrote:
> >ECLuses that garbage collector, though it comes with another, slower
> > one, that might fit your needs. But as a long time user of the Boehm-
> > Weiser GC, I am curious what you do with your program that prevents it
> > working with other programs. In any case, you might want to look at
> >ECL. It is very easy to change the way it works with the GC.
>
> The problem is that i specify my whole root set because my data
> segment is huge (wrapped scripts, data fields etc) and therefore i got
> a lot of wrong pointer hits. I'm using the special malloc for strings
> now and set all data to NULL when it is no longer available (in all
> places where it is easy to do so).

ECL does the same thing: automatic detection of data segments, global
variables, etc, is by default disabled. ECL knows where data lies and
instructs the garbage collector about it. Let me explain it with
greater detail.

The Boehm garbage collector calls a user supplied routine which is
responsible for telling it what the root set is. This routine is
stored in a pointer to function which normally is just NULL, because
most people rely on the garbage collector to identify the reachable
objects. ECL does install its own routine which simply instructs the
garbage collector to scan two C structures which is all the root set.
This structure contains a list of packages, which in turn point to
symbols, etc, etc.

As I said, you might want to look at ECL. If your program/library
works similarly, you simply have to instruct it to call the ECL root
set detector when garbage collecting.

Regards,

Juanjo

0
2/19/2007 8:50:38 AM
Reply: