Last change
on this file since 3003 was 2, checked in by bird, 22 years ago |
Initial revision
|
-
Property cvs2svn:cvs-rev
set to
1.1
-
Property svn:eol-style
set to
native
-
Property svn:executable
set to
*
|
File size:
1.3 KB
|
Line | |
---|
1 | While the GC should work on MacOS X Server, MacOS X and Darwin, I only tested
|
---|
2 | it on MacOS X Server.
|
---|
3 | I've added a PPC assembly version of GC_push_regs(), thus the setjmp() hack is
|
---|
4 | no longer necessary. Incremental collection is supported via mprotect/signal.
|
---|
5 | The current solution isn't really optimal because the signal handler must decode
|
---|
6 | the faulting PPC machine instruction in order to find the correct heap address.
|
---|
7 | Further, it must poke around in the register state which the kernel saved away
|
---|
8 | in some obscure register state structure before it calls the signal handler -
|
---|
9 | needless to say the layout of this structure is no where documented.
|
---|
10 | Threads and dynamic libraries are not yet supported (adding dynamic library
|
---|
11 | support via the low-level dyld API shouldn't be that hard).
|
---|
12 |
|
---|
13 | The original MacOS X port was brought to you by Andrew Stone.
|
---|
14 |
|
---|
15 |
|
---|
16 | June, 1 2000
|
---|
17 |
|
---|
18 | Dietmar Planitzer
|
---|
19 | dave.pl@ping.at
|
---|
20 |
|
---|
21 | Note from Andrew Begel:
|
---|
22 |
|
---|
23 | One more fix to enable gc.a to link successfully into a shared library for
|
---|
24 | MacOS X. You have to add -fno-common to the CFLAGS in the Makefile. MacOSX
|
---|
25 | disallows common symbols in anything that eventually finds its way into a
|
---|
26 | shared library. (I don't completely understand why, but -fno-common seems to
|
---|
27 | work and doesn't mess up the garbage collector's functionality).
|
---|
Note:
See
TracBrowser
for help on using the repository browser.