platforms and interoperability and who is this stuff for
Marcus G. Daniels
marcus@cathcart.sysc.pdx.edu
29 Apr 1997 03:49:17 -0700
>>>>> "PV" == Peter VanEynde <s950045@uia.ua.ac.be> writes:
PV> CMUCL uses signals to a great extend: to single-step _itself_, to
PV> provide exception handling, etc. CMUCL _needs_ the registers in
PV> the signal handler, it needs to be able to longjmp out of the
PV> handler back to the toplevel, it needs to be able to mmap an area
PV> larger then physical memory (I've heard of some NT weakness in
PV> that area), etc...
Well, gnu-win32 works for CLISP, and it makes fairly hairy use of
signal/longjmp (I certainly could see how there might be some
gnu-win32 debugging involved, though).
I can report that in a pre-release of beta18 gnu-win32 that mmap is
working. And similiar to what you suggest, for Windows 95 (but not
NT), there are some icky limitations like no MMAP_FIXED. However, the
program below worked on Windows 95 (on a machine with 32 megabytes
physical memory).
#include <sys/mman.h>
main()
{
void *ptr;
ptr = mmap (0x0, 1024 * 1024 * 32, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
printf ("%x\n", ptr);
ptr = mmap (0x0, 1024 * 1024 * 32, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
printf ("%x\n", ptr);
}
Reporting:
82c03000
84c03000