557 lines
17 KiB
Scheme
557 lines
17 KiB
Scheme
(define-library
|
|
(retropikzel r7rs-pffi)
|
|
(cond-expand
|
|
(chibi
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(chibi ast)
|
|
(chibi))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
pffi-string->pointer
|
|
pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
pffi-struct-dereference
|
|
pffi-define
|
|
pffi-define-callback)
|
|
(include-shared "r7rs-pffi/r7rs-pffi-chibi"))
|
|
(chicken-5
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(chicken foreign)
|
|
(chicken locative)
|
|
(chicken syntax)
|
|
(chicken memory)
|
|
(chicken random))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
pffi-string->pointer
|
|
pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
pffi-struct-dereference
|
|
pffi-define
|
|
pffi-define-callback))
|
|
(chicken6
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(chicken foreign)
|
|
(chicken locative)
|
|
(chicken syntax)
|
|
(chicken memory)
|
|
(chicken random))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
pffi-string->pointer
|
|
pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
pffi-define
|
|
pffi-define-callback))
|
|
(cyclone
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(cyclone foreign)
|
|
(scheme cyclone primitives))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
pffi-string->pointer
|
|
pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
pffi-define
|
|
;pffi-define-callback
|
|
))
|
|
(gambit
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(only (gambit) c-declare c-lambda c-define))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
;pffi-pointer-null
|
|
;pffi-pointer-null?
|
|
;pffi-pointer-allocate
|
|
;pffi-pointer?
|
|
;pffi-pointer-free
|
|
;pffi-pointer-set!
|
|
;pffi-pointer-get
|
|
;pffi-string->pointer
|
|
;pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
;pffi-define
|
|
;pffi-define-callback
|
|
))
|
|
(gauche
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context))
|
|
(export pffi-init
|
|
;pffi-size-of
|
|
pffi-align-of
|
|
;pffi-shared-object-auto-load
|
|
;pffi-shared-object-load
|
|
;pffi-pointer-null
|
|
;pffi-pointer-null?
|
|
;pffi-pointer-allocate
|
|
;pffi-pointer?
|
|
;pffi-pointer-free
|
|
;pffi-pointer-set!
|
|
;pffi-pointer-get
|
|
;pffi-string->pointer
|
|
;pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
;pffi-define
|
|
;pffi-define-callback
|
|
))
|
|
(gerbil
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context))
|
|
(export pffi-init
|
|
;pffi-size-of
|
|
;pffi-align-of
|
|
;pffi-shared-object-auto-load
|
|
;pffi-shared-object-load
|
|
;pffi-pointer-null
|
|
;pffi-pointer-null?
|
|
;pffi-pointer-allocate
|
|
;pffi-pointer?
|
|
;pffi-pointer-free
|
|
;pffi-pointer-set!
|
|
;pffi-pointer-get
|
|
;pffi-string->pointer
|
|
;pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
;pffi-define
|
|
;pffi-define-callback
|
|
))
|
|
(guile
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(rnrs bytevectors)
|
|
(system foreign)
|
|
(system foreign-library))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
pffi-string->pointer
|
|
pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
pffi-struct-dereference
|
|
pffi-define
|
|
pffi-define-callback))
|
|
(kawa
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
pffi-string->pointer
|
|
pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
pffi-struct-dereference
|
|
pffi-define
|
|
pffi-define-callback
|
|
))
|
|
(larceny
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(rename (primitives r5rs:require) (r5rs:require require))
|
|
(primitives std-ffi)
|
|
(primitives foreign-procedure)
|
|
(primitives foreign-file)
|
|
(primitives foreign-stdlib)
|
|
)
|
|
(export pffi-init
|
|
;pffi-size-of
|
|
;pffi-align-of
|
|
;pffi-shared-object-auto-load
|
|
;pffi-shared-object-load
|
|
;pffi-pointer-null
|
|
;pffi-pointer-null?
|
|
;pffi-pointer-allocate
|
|
;pffi-pointer?
|
|
;pffi-pointer-free
|
|
;pffi-pointer-set!
|
|
;pffi-pointer-get
|
|
;pffi-string->pointer
|
|
;pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
;pffi-define
|
|
;pffi-define-callback
|
|
))
|
|
(mosh
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(mosh ffi))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
pffi-string->pointer
|
|
pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
pffi-struct-dereference
|
|
pffi-define
|
|
pffi-define-callback))
|
|
(racket
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(only (racket base) system-type)
|
|
(ffi winapi)
|
|
(compatibility mlist)
|
|
(ffi unsafe)
|
|
(ffi vector))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
pffi-string->pointer
|
|
pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
pffi-struct-dereference
|
|
pffi-define
|
|
pffi-define-callback))
|
|
(sagittarius
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(sagittarius ffi)
|
|
(sagittarius))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
pffi-string->pointer
|
|
pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
pffi-struct-dereference
|
|
pffi-define
|
|
pffi-define-callback))
|
|
(skint
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context))
|
|
(export pffi-init
|
|
;pffi-size-of
|
|
;pffi-align-of
|
|
;pffi-shared-object-auto-load
|
|
;pffi-shared-object-load
|
|
;pffi-pointer-null
|
|
;pffi-pointer-null?
|
|
;pffi-pointer-allocate
|
|
;pffi-pointer?
|
|
;pffi-pointer-free
|
|
;pffi-pointer-set!
|
|
;pffi-pointer-get
|
|
;pffi-string->pointer
|
|
;pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
;pffi-define
|
|
;pffi-define-callback
|
|
))
|
|
(stklos
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context)
|
|
(stklos))
|
|
(export pffi-init
|
|
pffi-size-of
|
|
pffi-align-of
|
|
pffi-shared-object-auto-load
|
|
pffi-shared-object-load
|
|
pffi-pointer-null
|
|
pffi-pointer-null?
|
|
pffi-pointer-allocate
|
|
pffi-pointer?
|
|
pffi-pointer-free
|
|
pffi-pointer-set!
|
|
pffi-pointer-get
|
|
;pffi-string->pointer
|
|
;pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
;pffi-define
|
|
;pffi-define-callback
|
|
))
|
|
(tr7
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context))
|
|
(export pffi-init
|
|
;pffi-size-of
|
|
;pffi-align-of
|
|
;pffi-shared-object-auto-load
|
|
;pffi-shared-object-load
|
|
;pffi-pointer-null
|
|
;pffi-pointer-null?
|
|
;pffi-pointer-allocate
|
|
;pffi-pointer?
|
|
;pffi-pointer-free
|
|
;pffi-pointer-set!
|
|
;pffi-pointer-get
|
|
;pffi-string->pointer
|
|
;pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
;pffi-define
|
|
;pffi-define-callback
|
|
))
|
|
(ypsilon
|
|
(import (scheme base)
|
|
(scheme write)
|
|
(scheme char)
|
|
(scheme file)
|
|
(scheme process-context))
|
|
(export ;pffi-init
|
|
;pffi-size-of
|
|
;pffi-align-of
|
|
;pffi-shared-object-auto-load
|
|
;pffi-shared-object-load
|
|
;pffi-pointer-null
|
|
;pffi-pointer-null?
|
|
;pffi-pointer-allocate
|
|
;pffi-pointer?
|
|
;pffi-pointer-free
|
|
;pffi-pointer-set!
|
|
;pffi-pointer-get
|
|
;pffi-string->pointer
|
|
;pffi-pointer->string
|
|
pffi-struct-make
|
|
pffi-struct-size
|
|
pffi-struct-pointer
|
|
pffi-struct-offset-get
|
|
pffi-struct-get
|
|
pffi-struct-set!
|
|
;pffi-define
|
|
;pffi-define-callback
|
|
))
|
|
(else (error "Unsupported implementation")))
|
|
(cond-expand
|
|
(chibi (include "r7rs-pffi/chibi.scm"))
|
|
(chicken-5 (include "r7rs-pffi/chicken5.scm"))
|
|
(chicken-6 (include "chicken6.scm"))
|
|
(cyclone (include "r7rs-pffi/cyclone.scm"))
|
|
(gambit (include "r7rs-pffi/gambit.scm"))
|
|
(gauche (include "r7rs-pffi/gauche.scm"))
|
|
(gerbil (include "r7rs-pffi/gerbil.scm"))
|
|
(guile (include "r7rs-pffi/guile.scm"))
|
|
(kawa (include "r7rs-pffi/kawa.scm"))
|
|
(larceny (include "r7rs-pffi/larceny.scm"))
|
|
(mosh (include "r7rs-pffi/mosh.scm"))
|
|
(racket (include "r7rs-pffi/racket.scm"))
|
|
(sagittarius (include "r7rs-pffi/sagittarius.scm"))
|
|
(skint (include "r7rs-pffi/skint.scm"))
|
|
(stklos (include "retropikzel/r7rs-pffi/stklos.scm"))
|
|
(tr7 (include "r7rs-pffi/tr7.scm"))
|
|
(ypsilon (include "r7rs-pffi/ypsilon.scm"))
|
|
(else #t))
|
|
(cond-expand
|
|
(stklos (include "retropikzel/r7rs-pffi/struct.scm")) ; FIXME temporarily for stklos 2.10
|
|
(else (include "r7rs-pffi/struct.scm")))
|
|
(cond-expand
|
|
(stklos (include "retropikzel/r7rs-pffi/main.scm")) ; FIXME temporarily for stklos 2.10
|
|
(else (include "r7rs-pffi/main.scm"))))
|