Request to register new user
fullname: Martin D Kealey
userid: KURAHAUPO
mail: CENSORED
homepage:
why:
I've written a module Linux::Syscalls that provide access to Linux
system calls that aren't covered by the POSIX module. So far it
covers: - anything to do with files and filenames (mostly the
syscalls with the "at" suffix, like fstatat()); - anything that
manipulates nanosecond-precision file timestamps (utimens(),
gettimeofday(), time()); this includes re-implementing Time::HiRes
functions to avoid truncating timestamps to microsecond precision; -
processes (waitid(), killpg()); - filesystem layout (using the
FIE-map ioctl).
I've also written some helper modules that might be useful
stand-alone, including Time::Nanosecond, and a git pre-commit
checking framework.
Time::Nanoseconds is a reasonably complete, usable fixed-precision
time library: - epoch-second value semantics, so they're safe to use
anywhere a number would be used; - constructors that accept
integer-epoch-seconds, float-epoch-seconds, struct timeval, & struct
timespec; - two independent implementations (int vector & wide int);
- augment standard functions (localtime, gmtime, & strftime); -
operator overloads so values behave like normal epoch-second
numbers; - values are marked with their precision.
Linux::Syscalls is a work in progress. Currently supported
architectures are x86_64, i386, and mipsel; I'm open to adding
others as necessary (and I'll probably clean up the
multi-architecture framework as I figure out how to support it
better). Many lesser-used systemcalls are yet to be implemented, so
I'm at the point where feedback from users would help improve it.
Time to publish!
These have all been intentionally written as pure Perl rather than
XS, because my primary target has been embedded Linux systems (such
as EdgeOS routers) where one doesn't necessarily have a
cross-compiler (and Perl can be 15 years out of date). I also doubt
it's worth the effort: most syscalls are slow enough that a binary
XS module wouldn't achieve a large speed-up factor.
https://github.com/kurahaupo/linux-syscalls-perl/
The following links are only valid for PAUSE maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_user&USERID=60000000_000c3ef89a358688&SUBMIT_pause99_add_user_sub=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_user&USERID=60000000_000c3ef89a358688&SUBMIT_pause99_add_user_Definitely=1