Use shared export definition

This commit is contained in:
retropikzel 2025-04-06 08:21:49 +03:00
parent b8e3c867f4
commit f5ddabf3e8
5 changed files with 23 additions and 414 deletions

View File

@ -446,7 +446,7 @@ correct.
Converts given list into C array of given type.
**pffi-array->list** type list size
**pffi-array->list** type list length
Converts given C array into list of given type and length.

View File

@ -9,32 +9,6 @@
(scheme process-context)
(chibi ast)
(chibi))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
pffi-define-callback
;scheme-procedure-to-pointer
)
(include-shared "pffi/chibi-pffi"))
(chicken-5
(import (scheme base)
@ -46,31 +20,7 @@
(chicken locative)
(chicken syntax)
(chicken memory)
(chicken random))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
pffi-define-callback))
(chicken random)))
(chicken6
(import (scheme base)
(scheme write)
@ -81,30 +31,7 @@
(chicken locative)
(chicken syntax)
(chicken memory)
(chicken random))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
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-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
pffi-define-callback))
(chicken random)))
(cyclone
(import (scheme base)
(scheme write)
@ -112,63 +39,14 @@
(scheme file)
(scheme process-context)
(cyclone foreign)
(scheme cyclone primitives))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
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-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
;pffi-define-callback
))
(scheme cyclone primitives)))
(gambit
(import (scheme base)
(scheme write)
(scheme char)
(scheme file)
(scheme process-context)
(only (gambit) c-declare c-lambda c-define define-macro))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
;pffi-define-callback
))
(only (gambit) c-declare c-lambda c-define define-macro)))
(gauche
(import (scheme base)
(scheme write)
@ -176,62 +54,13 @@
(scheme file)
(scheme process-context)
(gauche base)
(retropikzel pffi gauche))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
;pffi-define-callback
))
(retropikzel pffi gauche)))
(gerbil
(import (scheme base)
(scheme write)
(scheme char)
(scheme file)
(scheme process-context))
(export pffi-init
;pffi-size-of
pffi-type?
;pffi-align-of
;pffi-define-library
;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-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
;pffi-define
;pffi-define-callback
))
(scheme process-context)))
(guile
(import (scheme base)
(scheme write)
@ -240,62 +69,13 @@
(scheme process-context)
(rnrs bytevectors)
(system foreign)
(system foreign-library))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
pffi-define-callback))
(system foreign-library)))
(kawa
(import (scheme base)
(scheme write)
(scheme char)
(scheme file)
(scheme process-context))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
pffi-define-callback
))
(scheme process-context)))
(larceny
(import (scheme base)
(scheme write)
@ -306,63 +86,14 @@
(primitives std-ffi)
(primitives foreign-procedure)
(primitives foreign-file)
(primitives foreign-stdlib)
)
(export pffi-init
;pffi-size-of
pffi-type?
;pffi-align-of
;pffi-define-library
;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-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
;pffi-define
;pffi-define-callback
))
(primitives foreign-stdlib)))
(mosh
(import (scheme base)
(scheme write)
(scheme char)
(scheme file)
(scheme process-context)
(mosh ffi))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
pffi-define-callback))
(mosh ffi)))
(racket
(import (scheme base)
(scheme write)
@ -373,31 +104,7 @@
(ffi winapi)
(compatibility mlist)
(ffi unsafe)
(ffi vector))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
pffi-define-callback))
(ffi vector)))
(sagittarius
(import (scheme base)
(scheme write)
@ -405,124 +112,26 @@
(scheme file)
(scheme process-context)
(sagittarius ffi)
(sagittarius))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
pffi-define-callback))
(sagittarius)))
(skint
(import (scheme base)
(scheme write)
(scheme char)
(scheme file)
(scheme process-context))
(export pffi-init
;pffi-size-of
pffi-type?
;pffi-align-of
;pffi-define-library
;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-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
;pffi-define
;pffi-define-callback
))
(scheme process-context)))
(stklos
(import (scheme base)
(scheme write)
(scheme char)
(scheme file)
(scheme process-context)
(stklos))
(export pffi-init
pffi-size-of
pffi-type?
pffi-align-of
pffi-define-library
pffi-pointer-null
pffi-pointer-null?
pffi-pointer-allocate
pffi-pointer-address
pffi-pointer?
pffi-pointer-free
pffi-pointer-set!
pffi-pointer-get
pffi-string->pointer
pffi-pointer->string
pffi-struct-make
pffi-struct-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
pffi-define
;pffi-define-callback
))
(stklos)))
(tr7
(import (scheme base)
(scheme write)
(scheme char)
(scheme file)
(scheme process-context))
(export pffi-init
;pffi-size-of
pffi-type?
;pffi-align-of
;pffi-define-library
;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-pointer
pffi-struct-offset-get
pffi-struct-get
pffi-struct-set!
pffi-list->array
pffi-array->list
;pffi-define
;pffi-define-callback
))
(scheme process-context)))
(ypsilon
(import (scheme base)
(scheme write)
@ -531,7 +140,8 @@
(scheme process-context)
(ypsilon c-ffi)
(ypsilon c-types)
(only (core) define-macro syntax-case))
(only (core) define-macro syntax-case)))
(else (error "Unsupported implementation")))
(export pffi-init
pffi-size-of
pffi-type?
@ -555,8 +165,7 @@
pffi-list->array
pffi-array->list
pffi-define
pffi-define-callback))
(else (error "Unsupported implementation")))
pffi-define-callback)
(cond-expand
(chibi (include "pffi/chibi.scm"))
(chicken-5 (include "pffi/chicken5.scm"))

View File

@ -58,7 +58,7 @@
(map
(lambda (header)
(string-append "#include <" header ">" (string #\newline)))
header-list)))))
(cdr headers))))))
(define pointer? (c-lambda ((pointer void)) bool "___return(1);"))
(define pffi-pointer?

View File

@ -24,6 +24,8 @@
((eq? type 'float) 4)
((eq? type 'double) 8)
((eq? type 'pointer) 4)
((eq? type 'void) 0)
((eq? type 'callback) 4)
(else (error "Can not get size of unknown type" type)))))
(define c-malloc (foreign-procedure "malloc" '(int) 'void*))

View File

@ -902,8 +902,6 @@
(define check-list1 (list 4 5 6))
(assert equal? (pffi-array->list 'int test-array1 3) check-list1)
;; pffi-struct-dereference
;(print-header "pffi-struct-dereference 1")