|
Last change
on this file since 3740 was 2, checked in by bird, 23 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.