version 1.1, 2002/07/24 08:00:16 |
version 1.2, 2003/06/24 05:11:38 |
|
|
While the GC should work on MacOS X Server, MacOS X and Darwin, I only tested |
See README.darwin for the latest Darwin/MacOSX information. |
it on MacOS X Server. |
|
I've added a PPC assembly version of GC_push_regs(), thus the setjmp() hack is |
|
no longer necessary. Incremental collection is supported via mprotect/signal. |
|
The current solution isn't really optimal because the signal handler must decode |
|
the faulting PPC machine instruction in order to find the correct heap address. |
|
Further, it must poke around in the register state which the kernel saved away |
|
in some obscure register state structure before it calls the signal handler - |
|
needless to say the layout of this structure is no where documented. |
|
Threads and dynamic libraries are not yet supported (adding dynamic library |
|
support via the low-level dyld API shouldn't be that hard). |
|
|
|
The original MacOS X port was brought to you by Andrew Stone. |
|
|
|
|
|
June, 1 2000 |
|
|
|
Dietmar Planitzer |
|
dave.pl@ping.at |
|
|
|
Note from Andrew Begel: |
|
|
|
One more fix to enable gc.a to link successfully into a shared library for |
|
MacOS X. You have to add -fno-common to the CFLAGS in the Makefile. MacOSX |
|
disallows common symbols in anything that eventually finds its way into a |
|
shared library. (I don't completely understand why, but -fno-common seems to |
|
work and doesn't mess up the garbage collector's functionality). |
|