@ •FFI 𝕩

This commit is contained in:
dzaima 2022-08-21 07:49:09 +03:00
parent 4ed814e395
commit 582ff8909b
5 changed files with 17 additions and 3 deletions

View File

@ -702,11 +702,14 @@ B ffiload_c2(B t, B w, B x) {
#endif
if (tRes.resSingle && mutCount!=1) thrF("FFI: Return was \"&\", but found %i mutated variables", mutCount);
char* ws = NULL;
if (w.u != m_c32(0).u) {
w = path_rel(nfn_objU(t), w);
char* ws = toCStr(w);
ws = toCStr(w);
}
void* dl = dlopen(ws, RTLD_NOW);
freeCStr(ws);
if (ws) freeCStr(ws);
dec(w);
if (dl==NULL) thrF("Failed to load: %S", dlerror());

View File

@ -1 +1,2 @@
4
'!'

View File

@ -6,4 +6,5 @@ int main() {
bqn_init();
double res = bqn_toF64(bqn_evalCStr("2+2"));
printf("%g\n", res);
bqn_free(bqn_evalCStr("f←@ •FFI \"a\"\"bqn_makeChar\"\">u64\" ⋄ •Show F 33"));
}

View File

@ -72,6 +72,11 @@ f ↩ "lib.so" •FFI ⟨"u64:i8","pick_u64",">*u64:i8",">𝕨i32"⟩ ⋄ •Sho
f "lib.so" •FFI "u64:i8","pick_u64",">*u64:i8",">𝕨i32" •Show @+3 F "000000001234560011122100abacabad"-@
f "lib.so" •FFI "u64", "pick_u64",">*u64:i8",">𝕨i32" •Show 1 F "000000001234560011122100"-'0'
Section "# self-ffi"
•term.Flush@
f @ •FFI "i32", "putchar", ">i32" F¨ 10˜"text"-@
•term.Flush@
f @ •FFI "a", "bqn_makeChar", ">u64" •Show F 120169
# erroring:

View File

@ -87,3 +87,7 @@ ff7fdfefefdf7bb4 ff7fdfefefdf7bb4 fefffdfff7ffbffb bffff7fffdfffeff
"11122100"
"abacabad"
6618611909121
# self-ffi
text
'𝕩'