/sml-ev

kqueue (*BSD) and epoll (Linux) library for Standard ML (MLton and Poly/ML)

Primary LanguageStandard ML

sml-ev - kqueue (*BSD) and epoll (Linux) library for Standard ML (MLton and Poly/ML).

 ev-{kqueue,epoll}-{poly,mlton}.sml - base library
 ev-with-timer.sml                  - added evTimer* functions

Execute "make poly" or "make mlton" command to build "t.sml" test.
Firstly, you need to edit "t.mlp" (Poly/ML) or "t.mlb" (MLton) for Linux: replace kqueue on epoll.

Before running a test you should launch simple tcp servers on 8081 and 8082 ports, for example:
echo pong | nc -l 8081 (*BSD) or echo pong | nc -l -p 8081 (Linux)

To build timer's test (t-timer.sml) execute "make timer-poly" or "make timer-mlton".


N.B.
About *BSD.
It works on FreeBSD 12 as it is.
Use ev-kqueue-mlton-old.sml and ev-kqueue-poly-old.sml for FreeBSD 11, NetBSD and OpenBSD.


About ARM and ARM64 of MLton version.
It tested on ARM FreeBSD 12 (Nanopi NEO board) and ARM64 FreeBSD 12 (qemu).
Linux MLton version do not tested but should work on ARM and ARM64.