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