bug#27782: mmap for guile

2017-11-25 Thread Matt Wette
here is a start on test-suite/tests/mmap.test

+ mmap.test --- test suite for Guile's mmap functions  -*- scheme -*-
+
+
+(define-module (test-mmap)
+  #:use-module (test-suite lib))
+
+(use-modules (rnrs bytevectors))
+
+(with-test-prefix "mmap"
+
+  (pass-if "basics"
+(let* ((siz #x1)
+  (reg (mmap 0 siz)))
+  (and (eqv? (bytevector-length reg) siz)
+  (begin (bytevector-u8-set! reg 0 99)
+ (eqv? (bytevector-u8-ref reg 0) 99))
+  (begin (bytevector-u8-set! reg (1- siz) 98)
+ (eqv? (bytevector-u8-ref reg (1- siz)) 98))
+  #t)))
+
+  )
+
+ --- last line ---






bug#27782: mmap for guile

2017-11-25 Thread Nala Ginrut
Actually I've been using a FFI version of mmap in my working code, with my
previous patch to Guile it's very easy to handle errno. Just few lines code
is enough to bind mmap.
I am not sure if C version binding is still the best option to maintain.

2017年11月25日 22:42,"Matt Wette" 写道:

> here is a start on test-suite/tests/mmap.test
>
> + mmap.test --- test suite for Guile's mmap functions  -*- scheme -*-
> +
> +
> +(define-module (test-mmap)
> +  #:use-module (test-suite lib))
> +
> +(use-modules (rnrs bytevectors))
> +
> +(with-test-prefix "mmap"
> +
> +  (pass-if "basics"
> +(let* ((siz #x1)
> +  (reg (mmap 0 siz)))
> +  (and (eqv? (bytevector-length reg) siz)
> +  (begin (bytevector-u8-set! reg 0 99)
> + (eqv? (bytevector-u8-ref reg 0) 99))
> +  (begin (bytevector-u8-set! reg (1- siz) 98)
> + (eqv? (bytevector-u8-ref reg (1- siz)) 98))
> +  #t)))
> +
> +  )
> +
> + --- last line ---
>
>
>
>
>