I have a candidate mmap implementation for guile (3.0.8) in

        github.com/mwette/guile-contrib/patch/3.0.8/mmap-api.patch

It probably needs some review and update.  Maybe windows mmap-file would be 
nice.
I'm not sure I updated the configure correctly but --disable-mmap-api should 
remove.
It exposes features 'mmap-api and 'mmap-file.

scheme@(guile-user)> ,d mmap
- Scheme Procedure: mmap addr len [prot [flags [fd [offset]]]]
     See the man page.  Returns a bytevector.  Note that the region
     returned by mmap will NOT be searched by the garbage collector for
     pointers.  See also mmap/search.  Defaults are:

     prot
          (logior PROT_READ PROT_WRITE)

     flags
          (logior MAP_ANON MAP_PRIVATE)

     fd
          -1

     offset
          0

scheme@(guile-user)> ,d mmap/search
- Scheme Procedure: mmap/search addr len [prot [flags [fd [offset]]]]
     See the unix man page for mmap.  Returns a bytevector.  Note that
     the region allocated will be searched by the garbage collector for
     pointers.  Defaults:

     prot
          (logior PROT_READ PROT_WRITE)

     flags
          (logior MAP_ANON MAP_PRIVATE)

     fd
          -1

     offset
          0

scheme@(guile-user)> ,d mmap-file
- Scheme Procedure: mmap-file file [prot]
     This procedure accepts a file in the form of filename, file-port or
     fd.  It returns a bytevector.  It must not contain scheme allocated
     objects as it will not be searched for pointers.  Default PROT is
     `"r"'.


Reply via email to