I started drafting a change to support W^X, which would let MIT Scheme
run natively on Apple Silicon, as well as avoid hacks like paxctl to
disable W^X protections on modern x86 systems.

The quick summary of the approach is to move compiled code blocks,
once constructed, into separately mmapped regions with PROT_EXEC but
not PROT_WRITE permission; the garbage collector manages these regions
with a simple mark & sweep process interleaved in the stop & copy
approach used for the main heap.

I haven't finished it, but if anyone's interested in taking it up, I
sketched some details of the approach in the commit message on the WIP
change I just pushed to the new wx branch here:

https://git.savannah.gnu.org/cgit/mit-scheme.git/commit/?h=wx&id=0a6ca0e12df7f722783e1d1a4235af8bad5b8166

Reply via email to