【发布时间】:2022-10-23 17:39:00
【问题描述】:
我相信苹果已经禁止在 ARM64 架构上同时写入和执行内存,请参阅:
见mmap() RWX page on MacOS (ARM64 architecture)?
这使得移植像 jonesforth 这样的实现变得困难,它将生成的代码和生成它的代码(如 jonesforth.f 中的内置汇编程序)保持在同一段中。
我想我可以做一些事情,比如将用户空间从开始映射到这里作为'r-x',从这里到结束作为'rw-'。然后我必须在编译新单词时不断地重新映射内存,而我不能去修复以前的单词(我相信 SCODE 会利用它)。
您对如何处理此类限制有任何建议吗?
我想我应该研究在 M1 Mac 上运行的其他第四种实现。
【问题讨论】:
标签: forth