[gclist] [ANN] Qish rel. 0.5 (GPL) - runtime & garbage
Fergus Henderson
fjh@cs.mu.OZ.AU
Wed, 4 Dec 2002 13:01:47 +1100
On 02-Dec-2002, Basile STARYNKEVITCH <basile@starynkevitch.net> wrote:
> I just released the release 0.5 -probably a beta quality release- of
> the qish runtime which contains a generational copying garbage
> collector (usable from C, in particular with some generated C code).
>
> See http://starynkevitch.net/Basile/qishintro.html and download
> http://starynkevitch.net/Basile/qish-0.5.tar.gz
>
> It could interest any people implementing a language in need of a
> Garbage Collector. Qish is probably a bit faster than Boehm's GC, but
> it is not multithreaded and requires carefully written (or machine
> generated) C code -respecting detailed (and documented) coding
> conventions.
...
> Comments are welcome.
The C code in Qish does not conform to the C standard.
As a result, Qish is not portable. Also, you need to compile with
`-fvolatile -fvolatile-global', which will reduce performance even
for parts of the code which do not use pointers or GC at all.
You probably also need `-fno-strict-aliasing'.
IMHO this is a pity, since it is not necessary. It is possible to write a
generational copying garbage collector with similar restrictions as Qish
(single-threaded, code using the collector needs to follow certain conventions)
in strictly conforming ANSI/ISO C code, without needing to use `volatile'.
For details, see my recent paper [1].
References
[1] Fergus Henderson,
"Accurate garbage collection in an uncooperative environment".
In Proceedings of the 2002 International Symposium on Memory
Management, Berlin, Germany, June 2002, pages 150-156.
<http://www.cs.mu.oz.au/research/mercury/information/papers.html#high_level_gc>
--
Fergus Henderson <fjh@cs.mu.oz.au> | "I have always known that the pursuit
The University of Melbourne | of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.