Rename pffi-shared-object-auto-load to pffi-load and dont export pffi-shared-object-load
This commit is contained in:
parent
701eb74203
commit
66e4812f11
87
README.md
87
README.md
|
|
@ -43,8 +43,7 @@ conforming to some specification.
|
|||
- [pffi-init](#pffi-init)
|
||||
- [pffi-size-of](#pffi-size-of)
|
||||
- [pffi-align-of](#pffi-align-of)
|
||||
- [pffi-shared-object-auto-load](#pffi-shared-object-auto-load)
|
||||
- [pffi-shared-object-load](#pffi-shared-object-load)
|
||||
- [pffi-load](#pffi-load)
|
||||
- [pffi-pointer-null](#pffi-pointer-null)
|
||||
- [pffi-pointer-null?](#pffi-pointer-null?)
|
||||
- [pffi-pointer-allocate](#pffi-pointer-allocate)
|
||||
|
|
@ -114,31 +113,31 @@ For roadmap to 1.0.0 see [issues](https://todo.sr.ht/~retropikzel/r7rs-pffi?sear
|
|||
### Beta
|
||||
<a name="beta"></a>
|
||||
|
||||
| | pffi-init | pffi-size-of | pffi-shared-object-auto-load | pffi-shared-object-load | 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-define | pffi-define-callback |
|
||||
|--------------|:---------:|:------------:|:----------------------------:|:-----------------------:|:-----------------:|:------------------:|:---------------------:|:--------------------:|:-------------:|:-----------------:|:-----------------:|:----------------:|:--------------------:|:--------------------:|:----------------:|:-------------------:|:----------------------:|:---------------:|:----------------:|:-----------:|:--------------------:|
|
||||
| Chibi | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |
|
||||
| Chicken-5 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Gauche | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |
|
||||
| Guile | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Kawa | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Racket | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Saggittarius | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| | pffi-init | pffi-size-of | pffi-load | 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-define | pffi-define-callback |
|
||||
|--------------|:---------:|:------------:|:---------:|:-----------------:|:------------------:|:---------------------:|:--------------------:|:-------------:|:-----------------:|:-----------------:|:----------------:|:--------------------:|:--------------------:|:----------------:|:-------------------:|:----------------------:|:---------------:|:----------------:|:-----------:|:--------------------:|
|
||||
| Chibi | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |
|
||||
| Chicken-5 | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Gauche | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | |
|
||||
| Guile | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Kawa | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Racket | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Saggittarius | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
|
||||
|
||||
### Alpha
|
||||
<a name="alpha"></a>
|
||||
|
||||
| | pffi-init | pffi-size-of | pffi-shared-object-auto-load | pffi-shared-object-load | 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-define | pffi-define-callback |
|
||||
|--------------|:---------:|:------------:|:----------------------------:|:-----------------------:|:-----------------:|:------------------:|:---------------------:|:--------------------:|:-------------:|:-----------------:|:-----------------:|:----------------:|:--------------------:|:--------------------:|:----------------:|:-------------------:|:----------------------:|:---------------:|:----------------:|:-----------:|:--------------------:|
|
||||
| Cyclone | X | X | X | X | X | X | X | | X | X | X | X | X | X | X | X | X | X | X | X | |
|
||||
| Gambit | X | X | | | | | | X | | | | | | | X | X | X | X | X | | |
|
||||
| Gerbil | X | | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
| Larceny | X | | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
| Mosh | X | X | X | X | X | X | X | | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Skint | X | | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
| Stklos | X | X | X | X | X | X | X | | X | X | | | | | X | X | X | X | X | | |
|
||||
| tr7 | | | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
| Ypsilon | | | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
| | pffi-init | pffi-size-of | pffi-load | 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-define | pffi-define-callback |
|
||||
|--------------|:---------:|:------------:|:---------:|:-----------------:|:------------------:|:---------------------:|:--------------------:|:-------------:|:-----------------:|:-----------------:|:----------------:|:--------------------:|:--------------------:|:----------------:|:-------------------:|:----------------------:|:---------------:|:----------------:|:-----------:|:--------------------:|
|
||||
| Cyclone | X | X | X | X | X | X | | X | X | X | X | X | X | X | X | X | X | X | X | |
|
||||
| Gambit | X | X | | | | | X | | | | | | | X | X | X | X | X | | |
|
||||
| Gerbil | X | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
| Larceny | X | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
| Mosh | X | X | X | X | X | X | | X | X | X | X | X | X | X | X | X | X | X | X | X |
|
||||
| Skint | X | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
| Stklos | X | X | X | X | X | X | | X | X | | | | | X | X | X | X | X | | |
|
||||
| tr7 | | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
| Ypsilon | | | | | | | | | | | | | | X | X | X | X | X | | |
|
||||
|
||||
### Not started
|
||||
<a name="not-started"></a>
|
||||
|
|
@ -267,9 +266,9 @@ Returns the size of the pffi-struct, pffi-enum or pffi-type.
|
|||
|
||||
Returns the align of the type.
|
||||
|
||||
#### pffi-shared-object-auto-load <a name="pffi-shared-object-auto-load"></a>
|
||||
#### pffi-load <a name="pffi-load"></a>
|
||||
|
||||
**pffi-shared-object-auto-load** headers shared-object-name [options] -> object
|
||||
**pffi-load** headers shared-object-name [options] -> object
|
||||
|
||||
Load given shared object automatically searching many predefined paths.
|
||||
|
||||
|
|
@ -291,33 +290,11 @@ Example:
|
|||
|
||||
(define libc-stdlib
|
||||
(cond-expand
|
||||
(windows (pffi-shared-object-auto-load (list "stdlib.h") "ucrtbase"))
|
||||
(else (pffi-shared-object-auto-load (list "stdlib.h")
|
||||
"c"
|
||||
'(additional-versions . ("6"))
|
||||
'(additional-search-paths . ("."))))))
|
||||
|
||||
|
||||
#### pffi-shared-object-load <a name="pffi-shared-object-load"></a>
|
||||
|
||||
**pffi-shared-object-load** headers path [options]
|
||||
|
||||
It is recommended to use the pffi-shared-object-auto-load instead of this
|
||||
directly.
|
||||
|
||||
Headers is a list of strings needed to be included, for example
|
||||
|
||||
(list "curl/curl.h")
|
||||
|
||||
Path is the full path of the shared object without any "lib" prefix or ".so/.dll" suffix. For example:
|
||||
|
||||
"curl"
|
||||
|
||||
|
||||
Options:
|
||||
|
||||
- additional-versions
|
||||
- List of different versions of library to try, for example (list ".0" ".1")
|
||||
(windows (pffi-load (list "stdlib.h") "ucrtbase"))
|
||||
(else (pffi-load (list "stdlib.h")
|
||||
"c"
|
||||
'(additional-versions . ("6"))
|
||||
'(additional-search-paths . ("."))))))
|
||||
|
||||
#### pffi-pointer-null <a name="pffi-pointer-null"></a>
|
||||
|
||||
|
|
@ -438,8 +415,8 @@ Defines a new foreign function to be used from Scheme code. For example:
|
|||
|
||||
(define libc-stdlib
|
||||
(cond-expand
|
||||
(windows (pffi-shared-object-auto-load (list "stdlib.h") (list) "ucrtbase" (list "")))
|
||||
(else (pffi-shared-object-auto-load (list "stdlib.h") (list) "c" (list "" "6")))))
|
||||
(windows (pffi-load (list "stdlib.h") (list) "ucrtbase" (list "")))
|
||||
(else (pffi-load (list "stdlib.h") (list) "c" (list "" "6")))))
|
||||
(pffi-define c-puts libc-stdlib 'puts 'int (list 'pointer))
|
||||
(c-puts "Message brought to you by FFI!")
|
||||
|
||||
|
|
@ -452,8 +429,8 @@ Defines a new Sceme function to be used as callback to C code. For example:
|
|||
; Load the shared library
|
||||
(define libc-stdlib
|
||||
(cond-expand
|
||||
(windows (pffi-shared-object-auto-load (list "stdlib.h") (list) "ucrtbase" (list "")))
|
||||
(else (pffi-shared-object-auto-load (list "stdlib.h") (list) "c" (list "" "6")))))
|
||||
(windows (pffi-load (list "stdlib.h") (list) "ucrtbase" (list "")))
|
||||
(else (pffi-load (list "stdlib.h") (list) "c" (list "" "6")))))
|
||||
|
||||
; Define C function that takes a callback
|
||||
(pffi-define qsort libc-stdlib 'qsort 'void (list 'pointer 'int 'int 'callback))
|
||||
|
|
|
|||
|
|
@ -13,8 +13,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -50,8 +49,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -84,8 +82,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -114,8 +111,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -144,8 +140,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
;pffi-pointer-null
|
||||
;pffi-pointer-null?
|
||||
;pffi-pointer-allocate
|
||||
|
|
@ -175,8 +170,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -205,8 +199,7 @@
|
|||
;pffi-size-of
|
||||
pffi-type?
|
||||
;pffi-align-of
|
||||
;pffi-shared-object-auto-load
|
||||
;pffi-shared-object-load
|
||||
;pffi-load
|
||||
;pffi-pointer-null
|
||||
;pffi-pointer-null?
|
||||
;pffi-pointer-allocate
|
||||
|
|
@ -237,8 +230,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -266,8 +258,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -302,8 +293,7 @@
|
|||
;pffi-size-of
|
||||
pffi-type?
|
||||
;pffi-align-of
|
||||
;pffi-shared-object-auto-load
|
||||
;pffi-shared-object-load
|
||||
;pffi-load
|
||||
;pffi-pointer-null
|
||||
;pffi-pointer-null?
|
||||
;pffi-pointer-allocate
|
||||
|
|
@ -332,8 +322,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -366,8 +355,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -397,8 +385,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -426,8 +413,7 @@
|
|||
;pffi-size-of
|
||||
pffi-type?
|
||||
;pffi-align-of
|
||||
;pffi-shared-object-auto-load
|
||||
;pffi-shared-object-load
|
||||
;pffi-load
|
||||
;pffi-pointer-null
|
||||
;pffi-pointer-null?
|
||||
;pffi-pointer-allocate
|
||||
|
|
@ -456,8 +442,7 @@
|
|||
pffi-size-of
|
||||
pffi-type?
|
||||
pffi-align-of
|
||||
pffi-shared-object-auto-load
|
||||
pffi-shared-object-load
|
||||
pffi-load
|
||||
pffi-pointer-null
|
||||
pffi-pointer-null?
|
||||
pffi-pointer-allocate
|
||||
|
|
@ -486,7 +471,7 @@
|
|||
;pffi-size-of
|
||||
pffi-type?
|
||||
;pffi-align-of
|
||||
;pffi-shared-object-auto-load
|
||||
;pffi-load
|
||||
;pffi-shared-object-load
|
||||
;pffi-pointer-null
|
||||
;pffi-pointer-null?
|
||||
|
|
@ -515,8 +500,7 @@
|
|||
;pffi-size-of
|
||||
pffi-type?
|
||||
;pffi-align-of
|
||||
;pffi-shared-object-auto-load
|
||||
;pffi-shared-object-load
|
||||
;pffi-load
|
||||
;pffi-pointer-null
|
||||
;pffi-pointer-null?
|
||||
;pffi-pointer-allocate
|
||||
|
|
|
|||
|
|
@ -90,16 +90,16 @@
|
|||
(cond-expand
|
||||
(gambit
|
||||
(define-macro
|
||||
(pffi-shared-object-auto-load headers object-name options)
|
||||
(pffi-load headers object-name options)
|
||||
`(pffi-shared-object-load ,(car headers))))
|
||||
|
||||
((or chicken cyclone)
|
||||
(define-syntax pffi-shared-object-auto-load
|
||||
(define-syntax pffi-load
|
||||
(syntax-rules ()
|
||||
((_ headers object-name . options)
|
||||
(pffi-shared-object-load headers)))))
|
||||
(else
|
||||
(define pffi-shared-object-auto-load
|
||||
(define pffi-load
|
||||
(lambda (headers object-name . options)
|
||||
(let* ((additional-paths (if (assoc 'additional-paths options)
|
||||
(cdr (assoc 'additional-paths options))
|
||||
|
|
|
|||
|
|
@ -386,27 +386,27 @@
|
|||
(assert equal? (number? align-pointer) #t)
|
||||
(assert = align-pointer 8)))
|
||||
|
||||
;; pffi-shared-object-auto-load
|
||||
;; pffi-load
|
||||
|
||||
(print-header 'pffi-shared-object-auto-load)
|
||||
|
||||
(define libc-stdlib
|
||||
(cond-expand
|
||||
(windows (pffi-shared-object-auto-load (list "stdlib.h") "ucrtbase"))
|
||||
(else (pffi-shared-object-auto-load (list "stdlib.h")
|
||||
"c"
|
||||
'(additional-versions . ("0" "6"))))))
|
||||
(windows (pffi-load (list "stdlib.h") "ucrtbase"))
|
||||
(else (pffi-load (list "stdlib.h")
|
||||
"c"
|
||||
'(additional-versions . ("0" "6"))))))
|
||||
|
||||
(debug libc-stdlib)
|
||||
|
||||
(define c-testlib
|
||||
(cond-expand
|
||||
(windows (pffi-shared-object-auto-load (list "libtest.h")
|
||||
"test"
|
||||
'(additional-paths . ("."))))
|
||||
(else (pffi-shared-object-auto-load (list "libtest.h")
|
||||
"test"
|
||||
'(additional-paths . ("."))))))
|
||||
(windows (pffi-load (list "libtest.h")
|
||||
"test"
|
||||
'(additional-paths . ("."))))
|
||||
(else (pffi-load (list "libtest.h")
|
||||
"test"
|
||||
'(additional-paths . ("."))))))
|
||||
|
||||
(debug c-testlib)
|
||||
|
||||
|
|
@ -661,10 +661,10 @@
|
|||
(define libc-stdio
|
||||
(cond-expand
|
||||
; FIXME Check that windows so file is correct
|
||||
(windows (pffi-shared-object-auto-load (list "stdio.h") "ucrtbase"))
|
||||
(else (pffi-shared-object-auto-load (list "stdio.h")
|
||||
"c"
|
||||
'(additional-versions . ("0" "6"))))))
|
||||
(windows (pffi-load (list "stdio.h") "ucrtbase"))
|
||||
(else (pffi-load (list "stdio.h")
|
||||
"c"
|
||||
'(additional-versions . ("0" "6"))))))
|
||||
|
||||
(pffi-define c-fopen libc-stdio 'fopen 'pointer (list 'pointer 'pointer))
|
||||
(define output-file (c-fopen (pffi-string->pointer "testfile.test")
|
||||
|
|
|
|||
Loading…
Reference in New Issue