On 7/10/12 8:41 AM, Daniel Colascione wrote: > On 7/10/12 1:13 AM, Corinna Vinschen wrote: >> On Jul 9 21:59, Daniel Colascione wrote: >>> On 7/9/12 2:26 PM, Daniel Colascione wrote: >>>> [snip] >>> >>> It turns out that clisp crashes only when I've rebased DLLs into the >>> high portion of the 4GB WOW64 address space. >> >> Where did you rebase them to? You know that on WOW64 and with the >> bigaddr flag on, the application heap is located at 0x80000000 by >> default, right? Perhaps some of your DLLs just collide with that? > > I'm using a starting base address of 0xC8000000; I haven't had > problems with any other program. It turns out that clisp uses bit 31 of each pointer for its gc mark bit. No wonder the thing blows in bigaddr-aware mode. clisp _does_ work, however, when compiled with -DWIDE. In this mode, clisp uses two words for each lisp value --- one for the pointer and one for the metadata. Also, clisp has a LINUX_NOEXEC_HEAPCODES mode that also works, and without bloating memory use, but that requires that no real virtual address be in the range [0xC0000000, 0xDFFFFFFF].