Sortix
Sortix Download Manual Development Source Code News Blog More

os-test > include > stdlib

Legend

Outcomes
Good Good Missing optional Outside libc
Partial Extension Previous posix
Neutral None
Bad Compile error Incompatible Missing header Undeclared Undefined reference Unknown type

Good. A cell is good if the declaration is present in the header and can be linked with libc. This outcome means the test succeeded with the appropriate -D_POSIX_C_SOURCE=202405 or -D_XOPEN_SOURCE=800 feature macros and the standard libraries libc, libpthread, libm, librt, and libxnet.

Missing optional. A cell is missing_optional if the test could not be compiled, but the declaration is optional in POSIX and need not be provided.

Outside libc. A cell is outside_libc if the test could be compiled, but had to be linked with another standard library than the ones prescribed by POSIX: libc, libpthread, libm, librt, and libxnet. This may not conform to POSIX depending on the linking options provided by getconf(1)/confstr(3).

Extension. A cell is extension if the test could not be compiled with the _POSIX_C_SOURCE and _XOPEN_SOURCE feature macros, but it could instead be compiled with other system-specific feature macros that provide the entire API. This outcome means the system header feature macro logic does not support the latest POSIX.1-2024 standard and only receives partial credit. This outcome typically indicates a declaration new to POSIX.1-2024.

Previous posix. A cell is previous_posix if the test could not be compiled with the -D_POSIX_C_SOURCE=202405 or -D_XOPEN_SOURCE=800 feature macros from the POSIX.1-2024 standard, but the test could instead be compiled with the older -D_POSIX_C_SOURCE=200809L or -D_XOPEN_SOURCE=700 feature macros from the older POSIX.1-2008 standard. This outcome means the system header feature macro logic does not support the latest POSIX.1-2024 standard and only receives partial credit. In particular, the header did not check if the value was higher than the supported value, but instead hard-coded the supported values, and failed to be forward compatible with new standard versions.

None. A cell is none if there is no test data result for that operating system.

Compile error. A cell is compile_error if the test could not be compiled and the error message was not recognized as a more precise error test outcome.

Incompatible. A cell is incompatible if the declaration existed in the header, but had a signature that is incompatible with the standardized declaration. This outcome typically indicates a type error in the declaration. Addressing the issue may require an incompatible ABI change or special compatibility logic.

Missing header. A cell is missing_header if the header did not exist.

Undeclared. A cell is undeclared if the header did not contain the declaration.

Undefined reference. A cell is undefined if the test could be compiled, but could not be linked with the standard library.

Unknown type. A cell is unknown_type if the test could not be compiled and failed because a required type was not declared. In some cases, functions fail because the header omitted a required type for a function and instead declared the function in an alternate fashion with an incompatible alias for the type.

§. The § link on the left of each row links to that row.

stdlib

aix
AIX 3 00F9C1964C00
dragonfly
DragonFly 6.4-RELEASE x86_64
freebsd
FreeBSD 14.3-RELEASE-p2 amd64
haiku
Haiku 1 x86_64
hurd
GNU 0.9 i686-AT386
linux
Linux 6.12.38+deb13-amd64 x86_64
macos
Darwin 24.3.0 arm64
minix
Minix 3.4.0 i386
musl
Linux 6.12.34-0-lts x86_64
netbsd
NetBSD 10.1 amd64
omnios
SunOS 5.11 i86pc
openbsd
OpenBSD 7.7 amd64
solaris
SunOS 5.11 sun4v
sortix
Sortix 1.1.0-dev x86_64
§ EXIT_FAILURE aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ EXIT_SUCCESS aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ MB_CUR_MAX aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ NULL aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ O_APPEND aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ O_CLOEXEC aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ O_CLOFORK aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ O_SYNC aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ RAND_MAX aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ WCOREDUMP aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ WEXITSTATUS aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ WIFEXITED aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ WIFSIGNALED aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ WIFSTOPPED aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ WNOHANG aix: good dragonfly: undeclared freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: undeclared musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ WSTOPSIG aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ WTERMSIG aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ WUNTRACED aix: good dragonfly: undeclared freebsd: undeclared haiku: good hurd: good linux: good macos: good minix: undeclared musl: good netbsd: undeclared omnios: good openbsd: undeclared solaris: previous_posix sortix: good
§ _Exit aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ abort aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ abs aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ aligned_alloc aix: good dragonfly: extension freebsd: good haiku: good hurd: good linux: good macos: good minix: undeclared musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: undeclared
§ at_quick_exit aix: good dragonfly: extension freebsd: good haiku: undeclared hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: good sortix: undeclared
§ atexit aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ atof aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ atoi aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ atol aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ atoll aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ bsearch aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ calloc aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ div aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ div_t aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ exit aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ free aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ getenv aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ getsubopt aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: undeclared musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ labs aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ ldiv aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ ldiv_t aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ llabs aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ lldiv aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ lldiv_t aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ malloc aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ mblen aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ mbstowcs aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ mbtowc aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ mkdtemp aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: undeclared minix: extension musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: good
§ mkostemp aix: undeclared dragonfly: extension freebsd: extension haiku: good hurd: extension linux: extension macos: undeclared minix: extension musl: good netbsd: extension omnios: good openbsd: good solaris: extension sortix: good
§ mkstemp aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: extension musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: good
§ qsort aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ qsort_r aix: undeclared dragonfly: undeclared freebsd: extension haiku: good hurd: extension linux: extension macos: undeclared minix: undeclared musl: extension netbsd: undeclared omnios: good openbsd: undeclared solaris: extension sortix: good
§ quick_exit aix: good dragonfly: extension freebsd: good haiku: undeclared hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: undeclared solaris: good sortix: undeclared
§ rand aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ realloc aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ reallocarray aix: undeclared dragonfly: extension freebsd: extension haiku: good hurd: extension linux: extension macos: undeclared minix: undeclared musl: extension netbsd: good omnios: good openbsd: good solaris: extension sortix: good
§ realpath aix: good dragonfly: extension freebsd: good haiku: good hurd: extension linux: extension macos: good minix: extension musl: extension netbsd: extension omnios: good openbsd: good solaris: previous_posix sortix: good
§ secure_getenv aix: undeclared dragonfly: undeclared freebsd: extension haiku: undeclared hurd: extension linux: extension macos: undeclared minix: undeclared musl: extension netbsd: undeclared omnios: good openbsd: undeclared solaris: extension sortix: good
§ setenv aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: good
§ size_t aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ srand aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ strtod aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ strtof aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ strtol aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ strtold aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ strtoll aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ strtoul aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ strtoull aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ system aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ unsetenv aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: good
§ wchar_t aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ wcstombs aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
§ wctomb aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: good sortix: good
Optional: ADV
Advisory Information
§ posix_memalign aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
Optional: OB XSI
Obsolescent and X/Open System Interfaces
§ setkey aix: good dragonfly: incompatible freebsd: undeclared haiku: good hurd: undeclared linux: undeclared macos: good minix: incompatible musl: good netbsd: incompatible omnios: good openbsd: undeclared solaris: previous_posix sortix: undeclared
Optional: SIO
Synchronized Input and Output
§ O_DSYNC aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ O_RSYNC aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
Optional: XSI
X/Open System Interfaces
§ O_NOCTTY aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ O_RDWR aix: undeclared dragonfly: undeclared freebsd: undeclared haiku: undeclared hurd: undeclared linux: undeclared macos: undeclared minix: undeclared musl: undeclared netbsd: undeclared omnios: undeclared openbsd: undeclared solaris: undeclared sortix: undeclared
§ a64l aix: previous_posix dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ drand48 aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ erand48 aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ grantpt aix: previous_posix dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: good
§ initstate aix: previous_posix dragonfly: incompatible freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ jrand48 aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ l64a aix: previous_posix dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ lcong48 aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ lrand48 aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ mrand48 aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ nrand48 aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ posix_openpt aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: good
§ ptsname aix: previous_posix dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: good
§ ptsname_r aix: undeclared dragonfly: undeclared freebsd: extension haiku: good hurd: extension linux: extension macos: extension minix: extension musl: extension netbsd: extension omnios: good openbsd: undeclared solaris: undeclared sortix: good
§ putenv aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ random aix: previous_posix dragonfly: good freebsd: good haiku: incompatible hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ seed48 aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ setstate aix: previous_posix dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: incompatible minix: good musl: good netbsd: good omnios: incompatible openbsd: good solaris: previous_posix sortix: undeclared
§ srand48 aix: good dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ srandom aix: previous_posix dragonfly: incompatible freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: undeclared
§ unlockpt aix: previous_posix dragonfly: good freebsd: good haiku: good hurd: good linux: good macos: good minix: good musl: good netbsd: good omnios: good openbsd: good solaris: previous_posix sortix: good
Copyright 2011-2025 Jonas 'Sortie' Termansen and contributors.
Sortix's source code is free software under the ISC license.
#sortix on irc.sortix.org
@sortix_org