Discussion:
libfixposix
Bruno Haible
2017-02-18 16:25:49 UTC
Permalink
Hi,

libfixposix, like gnulib, attempts to bridge over portability problems
and adds utility data structures.
https://github.com/sionescu/libfixposix/tree/master/src/lib

Things it has but gnulib doesn't have:
- <sys/signalfd.h> emulation
- sendfile
- <syslog.h>
- O_CLOEXEC support for sockets (?)
- A bitset data structure.

Bruno
Stelian Ionescu
2017-02-18 17:15:22 UTC
Permalink
Post by Bruno Haible
Hi,
libfixposix, like gnulib, attempts to bridge over portability problems
and adds utility data structures.
https://github.com/sionescu/libfixposix/tree/master/src/lib
- <sys/signalfd.h> emulation
- sendfile
- <syslog.h>
- O_CLOEXEC support for sockets (?)
- A bitset data structure.
It also has a process spawning facility, loosely inspired by posix_spawn.
The goals of libfixposix and gnulib might seem superficially similar, but they're a bit different:

1) I've written it as support for a CommonLisp project(https://github.com/sionescu/iolib), and since in Lisp we load shared libraries through dlopen() and bind to the symbols through dlsym(), libfixposix must be a shared library and it exposes function wrappers for many C macros, e.g. CMSG_FIRSTHDR & co.

2) In some cases, like for lfp_spawn(), I want to supersede POSIX functionality not bridge over differences. At some point I started reimplementing getaddrinfo() & friends because the differences between GNU Glibc, FreeBSD, and OSX were driving me mad, but then I just wrote it in Lisp

3) In the Lisp community (L)GPLv[23] are generally considered unacceptable so I settled on the Boost Public Licence
--
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.
Paul Eggert
2017-02-18 21:48:49 UTC
Permalink
That's funny, as just yesterday I assigned to my O.S. students the following
reading:

Atlidakis V, Andrus J, Geambasu R, Mitropoulos D, Nieh J. POSIX has become
outdated. ;login:. 2016;41(3):6–11.
http://www.cs.columbia.edu/~vatlidak/resources/POSIXmagazine.pdf

Loading...