@ •FFI 𝕩
This commit is contained in:
parent
4ed814e395
commit
582ff8909b
@ -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);
|
||||
|
||||
w = path_rel(nfn_objU(t), w);
|
||||
char* ws = toCStr(w);
|
||||
char* ws = NULL;
|
||||
if (w.u != m_c32(0).u) {
|
||||
w = path_rel(nfn_objU(t), 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());
|
||||
|
||||
|
||||
@ -1 +1,2 @@
|
||||
4
|
||||
'!'
|
||||
|
||||
@ -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"));
|
||||
}
|
||||
|
||||
@ -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:
|
||||
|
||||
|
||||
@ -87,3 +87,7 @@ ff7fdfefefdf7bb4 ff7fdfefefdf7bb4 fefffdfff7ffbffb bffff7fffdfffeff
|
||||
"11122100"
|
||||
"abacabad"
|
||||
6618611909121
|
||||
|
||||
# self-ffi
|
||||
text
|
||||
'𝕩'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user