Revision history for Perl extension IO::FD.
v0.3.1 2023-05-24
[tests]
-
Fix failing send file test on OpenBSD. No sendfile to test!
v0.3.0 2023-05-24
[features]
-
Added pread and pwrite
-
Added mkfifo and mkfifoat
-
Added open (not sysopen) and openat
[improvements]
-
Fcntl call to set O_CLOEXEC in open/openat/sysopen*/mkfifo* is only
applied if the mode parameter DIDN'T specify O_CLOEXEC, AND if the fd is
greater than $^F. Saves a useless syscall to set the value twice when
manually specified during opens.
[tests]
-
pread and pwrite tests added
-
mkfifo, mktemp and mkstemp tests added
-
mkfifoat tests added
-
open and openat tests added
[documentation]
-
added POD (minimal) for new features
-
Fixed typos and grammar errors
[other]
-
Code split across multiple files.
-
Conditional building to better handle missing functions on NetBSD
(sendfile) and earily versions of macOS (mkfifoat)
v0.2.0 2023-01-06
[features]
-
Added accept4 function. Native on linux, emulates on darwin and bsd
-
Added IO::FD::SOCK_NONBLOCK and IO::FD::SOCK_CLOEXEC constants for
darwin emulation of accept4 flags.
-
Added sendfile
[changes]
-
All functions returning a new fd to an existing variable now check the
variable can be modified. If it cannot a exception is thrown. This is
more ie built in Perl behaviour.
-
All functions taking an fd now check it is an IV and and warns, returns
undef and $! is set to EBADF. This is more like built in Perl behaviour.
-
All functions (minus accept4) returning an new fd set CLOEXEC flag if its
larger than $^F behaving more like standard Perl. accept4 uses an
explicit flag to manually set and is not set automatically
-
Function accept_multiple now implemented via accep4 on linux with
SOCK_NONBLOCK set
-
Added explicit $^F=1000 to IO::FD and core Perl benchmarking code
[bug fixes]
-
Fixed multiple argument handling issues of input fds which would lead to
0 values
[tests]
-
Added better tests for accepting sockets
-
Added sendfile test
-
Added test for bad file descriptors and readonly return variables
[documentation]
-
Documented changes regarding $^F
-
Documented new functions
-
Reformatted changes file
v0.1.4 2022-12-17
[bug fixes]
-
Fixed undefined fd sysread/syswrite bug
An undefined fd value passed to sysread* or syswrite* would be be converted
to 0, which normally is a valid fd (STDIN).
-
Change sysread* and syswrite* functions to expect an SV instead of an int
and test for undefined fd and return undefined.
v0.1.3 2022-11-15
[features]
-
Added accept_multiple routine
[bug fixes]
-
Fixed IPv6 address corruption bug.
Not enough space was allocated for IPv6 addresses. Now using struct
sockaddr_storage instead of struct sockaddr for sizing.
-
Fixed sockaddr allocation
Routines returning packed sockaddr structures now have SvCUR
forced to length of INET/INET6/UNIX sockaddr types. This stops
Socket::unpack_sockaddr_in6 for example complaining the length
of the SV is too long for the address family.
[documentation]
-
Documented accept_multiple and small POD typo fixes.
[tests]
-
Fixed potential blocking hang in pipe test.
It attempted to read more data than was written
-
Disabled stat testing. IO::FD::stat is currently broken, to be fixed...
v0.1.2 2022-10-23
[features]
-
Added shutdown to IO::FD and IO::FD::DWIM
[bug fixes]
-
Fixed failing peername test due to 'Temporary failure in name resolution'
-
Fixed up XS returns
[tests]
-
Removed kqueue/kevent test as it is experimental and broken
v0.1.1 2022-10-09
[bug fixes]
-
Added thread context macros to fix failing build on threaded Perl
-
Fixed IO::FD::recv bug, not updating current length of PV
-
IO::FD::recv now returns single element, like Perl
-
Added test for IO::FD::send and IO::FD::recv
-
Fixed IO:FD::readline to actually work as documented.
[changes]
-
IO::FD::mkstemp returns undef for second item.
This is a stop gap until a cross platform 'fd=>path' is implemented
-
IO::FD::mktemp and IO::FD::mkstemp now requires 6 'X' characters for better compatibility (linux)
-
IO::FD::readline now dies if called expecting a line split read. Works for $/=undef or $/=\integer only
[tests]
-
Added tests for IO::FD::readline
-
Renamed some tests and other test cleanup
v0.1.0 2022-08-05
-
original version; created by h2xs 1.23 with options
-
-name IO::FD