No Description

221V f9ce5a390a zig -O 1 week ago
README.md f9ce5a390a zig -O 1 week ago
niftest.erl bad26f4f6b upd erl func wrap 1 week ago
niftest.zig bad26f4f6b upd erl func wrap 1 week ago

README.md

erlang + Zig NIF example

erl 25
zig 0.13.0
(l)ubuntu 22.04 lts



// zig build-lib -dynamic niftest.zig -I $ERL_ROOT/usr/include --library c -femit-bin=niftest.so
$ zig build-lib -dynamic niftest.zig -I $HOME/.kerl/erlangs/25.3/usr/include --library c -O ReleaseFast -femit-bin=niftest.so
$ erl
Erlang/OTP 25 [erts-13.2] [source] [64-bit] [smp:20:20] [ds:20:20:10] [async-threads:1] [jit:ns]

Eshell V13.2  (abort with ^G)
1> c(niftest).
{ok,niftest}
2> niftest:hello().
"Hello world!"
3> niftest:factorial(5).
120
4> niftest:factorial(20).
2432902008176640000
5> niftest:factorial(34).
295232799039604140847618609643520000000
6> niftest:factorial(35).
{error,"input too large, max is 34"}
7> niftest:factorial(-5).
{error,badarg}
8> q().
ok



https://www.erlang.org/docs/25/man/erl_nif.html

https://www.erlang.org/doc/system/nif.html
https://www.erlang.org/doc/system/debugging.html