Skip to content
/ sml-ev Public

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

License

Notifications You must be signed in to change notification settings

kni/sml-ev

Repository files navigation

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

 ev-{kqueue,epoll}-{poly,mlton}.sml - base library
 ev-poll.sml                        - OS.IO.poll from The Standard ML Basis 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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published