Updated readme

This commit is contained in:
retropikzel 2024-05-18 16:51:23 +03:00
parent af1d808ea5
commit 66b68e6a23
3 changed files with 61 additions and 22 deletions

View File

@ -8,9 +8,9 @@ For bugs you can use the
- [Sagittarius](https://bitbucket.org/ktakashi/sagittarius-scheme/wiki/Home)
- [Guile](https://www.gnu.org/software/guile/)
- [Kawa](https://www.gnu.org/software/kawa/index.html)
- Needs atleast java 21
- Needs jvm flags
- java --add-exports java.base/jdk.internal.foreign.abi=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign.layout=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign=ALL-UNNAMED --enable-native-access=ALL-UNNAMED --enable-preview -jar kawa.jar FILENAME.scm
- Needs atleast java 21
- Needs jvm flags
- java --add-exports java.base/jdk.internal.foreign.abi=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign.layout=ALL-UNNAMED --add-exports java.base/jdk.internal.foreign=ALL-UNNAMED --enable-native-access=ALL-UNNAMED --enable-preview -jar kawa.jar FILENAME.scm
- [Racket](https://racket-lang.org/)
- [Chicken](https://www.call-cc.org/)
@ -23,19 +23,19 @@ For bugs you can use the
## Support waiting for the implementation
- [LIPS](https://lips.js.org/)
- Waiting for implementation to have cond-expand and library support
- Will only work on nodejs
- Waiting for implementation to have cond-expand and library support
- Will only work on nodejs
## Not supported
- [Chibi](https://synthcode.com/scheme/chibi)
- FFI requires C code
- FFI requires C code
- [MIT-Scheme](https://www.gnu.org/software/mit-scheme/)
- FF requires C code
- FF requires C code
- [tr7](https://gitlab.com/jobol/tr7)
- FFI requires C code
- FFI requires C code
- [Gauche](https://practical-scheme.net/gauche/)
- FFI requires C code
- FFI requires C code
## Hacking
@ -46,7 +46,35 @@ main.sld is the real main which is copied to main.scm
On some implementations these are procedures, on some macros.
### pffi-shared-object-auto-load
### Types
Types are given as symbols, for example 'int8 or 'pointer.
- int8
- uint8
- int16
- uint16
- int32
- uint32
- int64
- uint64
- char
- unsigned-char
- short
- unsigned-short
- int
- unsigned-int
- long
- unsigned-long
- float
- double
- string
- pointer
### Procedures or macros
#### pffi-shared-object-auto-load
Arguments:
@ -55,25 +83,37 @@ Arguments:
- addition-paths (list (string)...)
- Any additional paths you want to search for the library
Returns:
Returns:
- (object) Shared object, the type depends on the implementation
- (object) Shared object, the type depends on the implementation
### pffi-shared-object-load
#### pffi-shared-object-load
It is recommended to use the pffi-shared-object-auto-load instead of this
directly.
It is recommended to use the pffi-shared-object-auto-load instead of this
directly.
Arguments:
Arguments:
- headers (list (string) ...) Headers that need to be included
- Example (list "curl/curl.h")
- Example (list "curl/curl.h")
- path (string) The full path to the shared object you want to load, including any "lib" infront and .so/.dll at the end
- Example "libcurl.so"
- Example "libcurl.so"
Returns:
Returns:
- (object) Shared object, the type depends on the implementation
- (object) Shared object, the type depends on the implementation
#### pffi-define
Defines new foreign procedure.
Arguments:
- scheme-name () The name of the procedure used on scheme side
- shared-object (object) The shared object
- Use pffi-shared-object-auto-load and pffi-shared-object-load to get this
- c-name (symbol) The name of the C function
- return-type (symbol) The return type of the C function
- arguments-types (list (symbol) ...) The C function argument types

View File

@ -106,8 +106,6 @@
uint32
int64
uint64
intptr
uintptr
char
unsigned-char
short
@ -118,6 +116,7 @@
unsigned-long
float
double
string
pointer))
(define string-split