Revision history for POSIX::2008.

0.26  2025-07-25
  - _readv50c(): Use SVt_RV for sv_upgrade() w/ Perl < 5.12 to please DEBUGGING.
  - poll():
      * Initialize events with 0 for placeholders.
      * Safeguard against nasty threads when writing back revents.
  - clock_nanosleep(), clock_[gs]ettime(), nanosleep():
      * Better float detection.
      * Invoke SvGETMAGIC() on SV* argument.
  - timer_create(): Invoke SvGETMAGIC() on SV* argument.
  - POD "fixes" (POD doesn't have forced line breaks ...).

0.25  2025-07-12
  - Updated ppport.h to version 3.73.
  - Added poll(), psignal(), strsignal(), statvfs().
  - Added :poll export tag.
  - Added TIMER_ABSTIME to the :clock export tag.
  - Added t/07_poll.t.
  - Fixed skip count in t/03_rw.t.
  - Fixed clock_getcpuclockid() to set errno on error.
  - clock_getcpuclockid() defaults to pid=0 instead of $$, saving a redundant
    call to PerlProc_getpid().
  - clock_getres(), clock_gettime() return floating seconds in scalar context.
  - clock_settime(), clock_nanosleep(), nanosleep() also accept floating seconds.
  - POD updates.

0.24  2024-06-14
  - Updated ppport.h to version 3.72.
  - Fixed potential env buffer overflow in _execve50c().
  - Flush I/O buffers before calling fexecve()/execveat().
  - Support magic function arguments.
  - Support arrayref argument for strptime() (addresses foreign RT#66519).
  - Call readlinkat() for readlink() if available to avoid a branch.
  - Don't write to SvPV(sv)[SvLEN(sv)-1], otherwise Perl >= 5.20 tends to
    segfault because it abuses this char for COW counting. [facepalm.gif]
  - Adjusted some prototypes: clock_nanosleep($$@), clock_settime($@),
    futimens($@), nanosleep(@), setitimer($@), timer_settime($$@),
    utimensat($$;$@).
  - POD updates.

0.23  2024-01-27
  - t/06_exec.t: Skip fexecve test if we can't sysopen() the Perl executable.
  - Removed silly fileno int range check added in 0.22 because AT_FDCWD is
    0xffd19553 on Solaris.

0.22  2024-01-26
  - Fixed confstr() error handling.
  - Fixed getutx*() out-of-bounds read from utmpx string buffers.
  - Fixed ptsname() and ttyname() to also accept file handles.
  - Fixed read*() and pread*() to not overwrite read-only buffers.
  - Fixed catclose(), dlclose(), killpg(), set*gid(), set*uid(), sig*()
    to return "0 but true" on success and undef on error as documented.
  - Forbid negative byte counts in read*(), pread*(), write(), pwrite().
  - Added home-grown non-standard removeat().
  - Added creat(), execveat(), fexecve(), raise().
  - Added pathconf(), sysconf() and tons of _CS_, _PC_, _SC_ constants.
  - Added :confstr, :pathconf, :sysconf export tags.
  - Added some non-standard constants.
  - Added t/06_exec.t.
  - Made timer_create()'s "signal" argument optional.
  - Made lchown(), log10(), nexttoward(), posix_f*() exportable.
  - Bless returned file handles into IO::Dir/File to make handle methods work.
  - t/02_fs.t: Skip dev/ino/rdev stat() checks on Windows w/ Perl 5.34+ to
    fake cpantesters green lights (see perl5340delta).
  - POD updates.

0.21  2023-11-16
  - Replaced FMT_UINT macro by function.
  - Replaced safesysfree() by free() in realpath() (closes RT#149058).
  - Added non-standard renameat2(), RENAME_* constants.
  - POD fixes.

0.20  2023-07-14
  - t/02_fs.t: Added work-around for bugs in CORE::stat().
  - Pimped abs().
  - Fixed nice() error handling.
  - Added PRIO_*, FE_*, RWF_*, SEEK_DATA and SEEK_HOLE constants.
  - Added some non-standard open() flags.
  - Added preadv2(), pwritev2().
  - Added remquo().
  - Added feclearexcept(), feraiseexcept(), fetestexcept().
  - Added isgreaterequal(), isless(), islessequal(), islessgreater(),
    isunordered().
  - Added fenv_h export tag.
  - POD improvements.

0.19  2023-07-07
  - Updated ppport.h to version 3.71
  - Replaced av_len()+1 by av_count() in (p)readv() and (p)writev().
  - Removed "extern int getdate_err" because it's already in time.h.
  - Try to get a green light from dubious cpantesters reports for old Perls.
  - Added LICENSE to WriteMakefile().
  - Added stat_h export tag and some constants.
  - Added exp(), isascii(), rmdir(), setsid(), sin(), ttyname().
  - Made casin(), isalnum(), log() exportable.
  - chdir(), chmod(), chown(), truncate() and stat() now also accept
    a file handle or a file descriptor.
  - Deprecated atol(), atoll(), ldiv(), fchdir(), fchmod(), fchown(), ftruncate().
  - Pimped atoi(), div(), lround().
  - Figure out what's available by compiling some C code.
  - Added some tests.
  - Small POD fixes.

0.18  2023-06-01
  - Updated ppport.h to version 3.68
  - Fixed size checking in readlink().
  - Fixed error handling of psx_fileno():
    Check for -1 instead of < 0 to make AT_FDCWD work (which is negative).
  - Disabled -Wdeprecated-declarations for sig*().
  - Makefile.PL now creates const-c.inc and const-xs.inc dynamically.
  - openat() can now optionally return a handle when AT_FDCWD is used.
  - Added realpath().
  - Added openat2() (non-POSIX).
  - POD improvements.

0.17  2021-03-09
  - Updated ppport.h to version 3.62 (closes RT#127900)
  - pread()/pwrite(): Use %lld in warn() format string (closes RT#127902)
  - Some minor cosmetics.

0.16  2017-09-15
  - Added timer_create(), timer_delete(), timer_gettime(), timer_getoverrun(), timer_settime().
  - Added close() (closes RT#123054).

0.15  2017-09-10
  - Fixed a POD error.
  - Really fake green lights on cygwin.

0.14  2017-09-09
  - Added posix_fadvise() and posix_fallocate().
  - Added missing constants from fcntl.h.
  - POD update.
  - Fake some green lights on cygwin.

0.13  2017-09-08
  - pread/pwrite argument order is now (count, offset) instead of (offset, count).
  - Added readv(), preadv().
  - Added strptime() to the list of exportable functions.

0.12  2017-09-03
  - Fixed missing semicolon in #if branch of nearbyint().
  - Added some CLOCK_ constants.
  - Added const-c.inc, const-xs.c.

0.11  2017-09-02
  - Don't call clog() if you mean cexp() ...

0.10  2017-09-02
  - Added more detailed checks for availability of complex functions.
  - NetBSD seems a bit special about struct stat.

0.09  2017-09-01
  - Added some cheats to make some red lights turn to green on cpantesters.
  - Fixed a POD typo.

0.08  2017-08-31
  - Added writev(), pwritev(), lchown(), lround(), clock(), access().

0.07  2017-08-27
  - Call croak_xs_usage() only if available.
  - Really let all I/O functions accept file handles.
  - Try to reduce compiler errors on non-Linux systems.

0.06  2017-08-26
  - Fixed an fd leak in fdopendir() and openat() (see Ye Olde Perl #59268).
    XS docs are really poor.
  - Cleaned up openat().
  - Dropped Perl 5.10 dependency.

0.05  2017-08-25
  - Added fdopen() and fdopendir().
  - All I/O functions taking file descriptors now accept file handles as well.
  - Fixed pread() to truncate the buffer if the data doesn't exceed it.

0.04  2015-05-25
  - Fixed _readlink50c (#96644).

0.03  2013-09-15
  - check SvGROW for NULL
  - use shorter mPUSH macros

0.02  2013-09-14
  - added strptime()

0.01  2013-09-13
  - initial version
