Skip to content
/ sml-ev Public
forked from kni/sml-ev

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

License

Notifications You must be signed in to change notification settings

narslan/sml-ev

This branch is up to date with kni/sml-ev:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ffa9144 · May 15, 2024

History

29 Commits
Jun 5, 2022
Jun 6, 2022
Oct 9, 2023
Oct 9, 2023
Mar 3, 2020
May 15, 2024
Mar 2, 2020
Mar 3, 2020
Mar 2, 2020
Jun 6, 2022
Oct 9, 2023
Jun 6, 2022
Oct 30, 2023
Jun 6, 2022
Feb 18, 2020
Sep 14, 2016
Feb 18, 2020
Jun 6, 2022
Dec 26, 2018
Feb 18, 2020
Jun 6, 2022
Nov 16, 2016

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

Releases

No releases published

Packages

No packages published

Languages

  • Standard ML 99.0%
  • Makefile 1.0%