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"'.