This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
POSIX.pod: Document [C99] notation
[perl5.git] / ext / POSIX / lib / POSIX.pod
index 1030540..6265a45 100644 (file)
@@ -21,19 +21,10 @@ The POSIX module permits you to access all (or nearly all) the standard
 POSIX 1003.1 identifiers.  Many of these identifiers have been given Perl-ish
 interfaces.
 
-I<Everything is exported by default> with the exception of any POSIX
-functions with the same name as a built-in Perl function, such as
-C<abs>, C<alarm>, C<rmdir>, C<write>, etc.., which will be exported
-only if you ask for them explicitly.  This is an unfortunate backwards
-compatibility feature.  You can stop the exporting by saying S<C<use
-POSIX ()>> and then use the fully qualified names (I<e.g.>, C<POSIX::SEEK_END>),
-or by giving an explicit import list.  If you do neither, and opt for the
-default, S<C<use POSIX;>> has to import I<553 symbols>.
-
 This document gives a condensed list of the features available in the POSIX
 module.  Consult your operating system's manpages for general information on
 most features.  Consult L<perlfunc> for functions which are noted as being
-identical to Perl's builtin functions.
+identical or almost identical to Perl's builtin functions.
 
 The first section describes POSIX functions from the 1003.1 specification.
 The second section describes some classes for signal objects, TTY objects,
@@ -41,34 +32,22 @@ and other miscellaneous objects.  The remaining sections list various
 constants and macros in an organization which roughly follows IEEE Std
 1003.1b-1993.
 
-=head1 C99 "math" interfaces
-
-Mathematic functions and constants from the C99 standard are available
-on many platforms.  In the below functions list they are marked [C99].
-
-The mathematical constants include:
-
-  M_SQRT2    # the square root of two
-  M_E        # the Euler's (or Napier's) constant
-  M_PI       # the Pi
-
-and other related/similar ones
-
-  M_SQRT1_2  # sqrt(1/2)
-  M_LN10 M_LN2 M_LOG10E M_LOG2E
-  M_1_PI M_2_PI M_2_SQRTPI M_PI_2 M_PI_4  # 1/Pi, ..., Pi/4
-
-and the
-
-  INFINITY
-  NAN
-
-The last two are also available as just Inf and NaN.
-
-The Bessel functions (j0, j1, jn, y0, y1, yn) are also available.
+The notation C<[C99]> indicates functions that were added in the ISO/IEC
+9899:1999 version of the C language standard.  Some may not be available
+on your system if it adheres to an earlier standard.  Attempts to use
+any missing one will result in a fatal runtime error message.
 
 =head1 CAVEATS
 
+I<Everything is exported by default> (with a handful of exceptions).
+This is an unfortunate backwards compatibility feature and its use is
+B<strongly L<discouraged|perlpolicy/discouraged>>.
+You should either prevent the exporting (by saying S<C<use POSIX ();>>,
+as usual) and then use fully qualified names (e.g. C<POSIX::SEEK_END>),
+or give an explicit import list.
+If you do neither and opt for the default (as in S<C<use POSIX;>>), you
+will import I<hundreds and hundreds> of symbols into your namespace.
+
 A few functions are not implemented because they are C specific.  If you
 attempt to call these, they will print a message telling you that they
 aren't implemented, and suggest using the Perl equivalent, should one
@@ -107,8 +86,13 @@ if the handler does not return normally (it e.g.  does a C<longjmp>).
 
 =item C<abs>
 
-This is identical to Perl's builtin C<abs()> function, returning
-the absolute value of its numerical argument.
+This is identical to Perl's builtin C<abs()> function, returning the absolute
+value of its numerical argument (except that C<POSIX::abs()> must be provided
+an explicit value (rather than relying on an implicit C<$_>):
+
+    $absolute_value = POSIX::abs(42);   # good
+
+    $absolute_value = POSIX::abs();     # throws exception
 
 =item C<access>
 
@@ -130,14 +114,19 @@ the arcus cosine of its numerical argument.  See also L<Math::Trig>.
 
 =item C<acosh>
 
-This is identical to the C function C<acos()>, returning the
+This is identical to the C function C<acosh()>, returning the
 hyperbolic arcus cosine of its numerical argument [C99].  See also
-L<Math::Trig>.
+L<Math::Trig>.  Added in Perl v5.22.
 
 =item C<alarm>
 
-This is identical to Perl's builtin C<alarm()> function,
-either for arming or disarming the C<SIGARLM> timer.
+This is identical to Perl's builtin C<alarm()> function, either for arming or
+disarming the C<SIGARLM> timer, except that C<POSIX::alarm()> must be provided
+an explicit value (rather than relying on an implicit C<$_>):
+
+    POSIX::alarm(3)     # good
+
+    POSIX::alarm()      # throws exception
 
 =item C<asctime>
 
@@ -155,6 +144,10 @@ The C<$mon> is zero-based: January equals C<0>.  The C<$year> is
 1900-based: 2001 equals C<101>.  C<$wday> and C<$yday> default to zero
 (and are usually ignored anyway), and C<$isdst> defaults to -1.
 
+Note the result is always in English.  Use C<L</strftime>> instead to
+get a result suitable for the current locale.  That function's C<%c>
+format yields the locale's preferred representation.
+
 =item C<asin>
 
 This is identical to the C function C<asin()>, returning
@@ -162,9 +155,9 @@ the arcus sine of its numerical argument.  See also L<Math::Trig>.
 
 =item C<asinh>
 
-This is identical to the C function C<asin()>, returning the
+This is identical to the C function C<asinh()>, returning the
 hyperbolic arcus sine of its numerical argument [C99].  See also
-L<Math::Trig>.
+L<Math::Trig>.  Added in Perl v5.22.
 
 =item C<assert>
 
@@ -178,9 +171,9 @@ arcus tangent of its numerical argument.  See also L<Math::Trig>.
 
 =item C<atanh>
 
-This is identical to the C function C<atan()>, returning the
+This is identical to the C function C<atanh()>, returning the
 hyperbolic arcus tangent of its numerical argument [C99].  See also
-L<Math::Trig>.
+L<Math::Trig>.  Added in Perl v5.22.
 
 =item C<atan2>
 
@@ -190,22 +183,22 @@ coordinate and the I<x> coordinate.  See also L<Math::Trig>.
 
 =item C<atexit>
 
-C<atexit()> is C-specific: use C<END {}> instead, see L<perlmod>.
+Not implemented.  C<atexit()> is C-specific: use C<END {}> instead, see L<perlmod>.
 
 =item C<atof>
 
-C<atof()> is C-specific.  Perl converts strings to numbers transparently.
+Not implemented.  C<atof()> is C-specific.  Perl converts strings to numbers transparently.
 If you need to force a scalar to a number, add a zero to it.
 
 =item C<atoi>
 
-C<atoi()> is C-specific.  Perl converts strings to numbers transparently.
+Not implemented.  C<atoi()> is C-specific.  Perl converts strings to numbers transparently.
 If you need to force a scalar to a number, add a zero to it.
 If you need to have just the integer part, see L<perlfunc/int>.
 
 =item C<atol>
 
-C<atol()> is C-specific.  Perl converts strings to numbers transparently.
+Not implemented.  C<atol()> is C-specific.  Perl converts strings to numbers transparently.
 If you need to force a scalar to a number, add a zero to it.
 If you need to have just the integer part, see L<perlfunc/int>.
 
@@ -216,11 +209,11 @@ see L<Search::Dict>.
 
 =item C<calloc>
 
-C<calloc()> is C-specific.  Perl does memory management transparently.
+Not implemented.  C<calloc()> is C-specific.  Perl does memory management transparently.
 
 =item C<cbrt>
 
-The cube root [C99].
+The cube root [C99].  Added in Perl v5.22.
 
 =item C<ceil>
 
@@ -229,13 +222,30 @@ integer value greater than or equal to the given numerical argument.
 
 =item C<chdir>
 
-This is identical to Perl's builtin C<chdir()> function, allowing
-one to change the working (default) directory, see L<perlfunc/chdir>.
+This is identical to Perl's builtin C<chdir()> function, allowing one to
+change the working (default) directory -- see L<perlfunc/chdir> -- with the
+exception that C<POSIX::chdir()> must be provided an explicit value (rather
+than relying on an implicit C<$_>):
+
+    $rv = POSIX::chdir('path/to/dir');      # good
+
+    $rv = POSIX::chdir();                   # throws exception
 
 =item C<chmod>
 
 This is identical to Perl's builtin C<chmod()> function, allowing
-one to change file and directory permissions, see L<perlfunc/chmod>.
+one to change file and directory permissions -- see L<perlfunc/chmod> -- with
+the exception that C<POSIX::chmod()> can only change one file at a time
+(rather than a list of files):
+
+    $c = chmod 0664, $file1, $file2;          # good
+
+    $c = POSIX::chmod 0664, $file1;           # throws exception
+
+    $c = POSIX::chmod 0664, $file1, $file2;   # throws exception
+
+As with the built-in C<chmod()>, C<$file> may be a filename or a file
+handle.
 
 =item C<chown>
 
@@ -244,7 +254,7 @@ to change file and directory owners and groups, see L<perlfunc/chown>.
 
 =item C<clearerr>
 
-Use the method C<IO::Handle::clearerr()> instead, to reset the error
+Not implemented.  Use the method C<IO::Handle::clearerr()> instead, to reset the error
 state (if any) and EOF state (if any) of the given stream.
 
 =item C<clock>
@@ -282,7 +292,9 @@ the hyperbolic cosine of its numeric argument.  See also L<Math::Trig>.
 
 =item C<copysign>
 
-Returns the x but with the sign of y [C99].
+Returns C<x> but with the sign of C<y> [C99].  Added in Perl v5.22.
+
+ $x_with_sign_of_y = POSIX::copysign($x, $y);
 
 See also L</signbit>.
 
@@ -307,12 +319,15 @@ Generates the path name for the controlling terminal.
 This is identical to the C function C<ctime()> and equivalent
 to C<asctime(localtime(...))>, see L</asctime> and L</localtime>.
 
-=item C<cuserid>
+=item C<cuserid> [POSIX.1-1988]
 
 Get the login name of the owner of the current process.
 
        $name = POSIX::cuserid();
 
+Note: this function has not been specified by POSIX since 1990 and is included
+only for backwards compatibility. New code should use L<C<getlogin()>|perlfunc/getlogin> instead.
+
 =item C<difftime>
 
 This is identical to the C function C<difftime()>, for returning
@@ -321,7 +336,7 @@ by C<time()>), see L</time>.
 
 =item C<div>
 
-C<div()> is C-specific, use L<perlfunc/int> on the usual C</> division and
+Not implemented.  C<div()> is C-specific, use L<perlfunc/int> on the usual C</> division and
 the modulus C<%>.
 
 =item C<dup>
@@ -346,11 +361,11 @@ Returns C<undef> on failure.
 
 =item C<erf>
 
-The error function [C99].
+The error function [C99].  Added in Perl v5.22.
 
 =item C<erfc>
 
-The complementary error function [C99].
+The complementary error function [C99].  Added in Perl v5.22.
 
 =item C<errno>
 
@@ -362,27 +377,27 @@ This identical to the numerical values of the C<$!>, see L<perlvar/$ERRNO>.
 
 =item C<execl>
 
-C<execl()> is C-specific, see L<perlfunc/exec>.
+Not implemented.  C<execl()> is C-specific, see L<perlfunc/exec>.
 
 =item C<execle>
 
-C<execle()> is C-specific, see L<perlfunc/exec>.
+Not implemented.  C<execle()> is C-specific, see L<perlfunc/exec>.
 
 =item C<execlp>
 
-C<execlp()> is C-specific, see L<perlfunc/exec>.
+Not implemented.  C<execlp()> is C-specific, see L<perlfunc/exec>.
 
 =item C<execv>
 
-C<execv()> is C-specific, see L<perlfunc/exec>.
+Not implemented.  C<execv()> is C-specific, see L<perlfunc/exec>.
 
 =item C<execve>
 
-C<execve()> is C-specific, see L<perlfunc/exec>.
+Not implemented.  C<execve()> is C-specific, see L<perlfunc/exec>.
 
 =item C<execvp>
 
-C<execvp()> is C-specific, see L<perlfunc/exec>.
+Not implemented.  C<execvp()> is C-specific, see L<perlfunc/exec>.
 
 =item C<exit>
 
@@ -398,6 +413,7 @@ see L<perlfunc/exp>.
 =item C<expm1>
 
 Equivalent to C<exp(x) - 1>, but more precise for small argument values [C99].
+Added in Perl v5.22.
 
 See also L</log1p>.
 
@@ -408,7 +424,7 @@ the absolute value of the numerical argument, see L<perlfunc/abs>.
 
 =item C<fclose>
 
-Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
+Not implemented.  Use method C<IO::Handle::close()> instead, or see L<perlfunc/close>.
 
 =item C<fcntl>
 
@@ -417,37 +433,37 @@ see L<perlfunc/fcntl>.
 
 =item C<fdopen>
 
-Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
+Not implemented.  Use method C<IO::Handle::new_from_fd()> instead, or see L<perlfunc/open>.
 
 =item C<feof>
 
-Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
+Not implemented.  Use method C<IO::Handle::eof()> instead, or see L<perlfunc/eof>.
 
 =item C<ferror>
 
-Use method C<IO::Handle::error()> instead.
+Not implemented.  Use method C<IO::Handle::error()> instead.
 
 =item C<fflush>
 
-Use method C<IO::Handle::flush()> instead.
+Not implemented.  Use method C<IO::Handle::flush()> instead.
 See also C<L<perlvar/$OUTPUT_AUTOFLUSH>>.
 
 =item C<fgetc>
 
-Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
+Not implemented.  Use method C<IO::Handle::getc()> instead, or see L<perlfunc/read>.
 
 =item C<fgetpos>
 
-Use method C<IO::Seekable::getpos()> instead, or see L<perlfunc/seek>.
+Not implemented.  Use method C<IO::Seekable::getpos()> instead, or see L<perlfunc/seek>.
 
 =item C<fgets>
 
-Use method C<IO::Handle::gets()> instead.  Similar to E<lt>E<gt>, also known
+Not implemented.  Use method C<IO::Handle::gets()> instead.  Similar to E<lt>E<gt>, also known
 as L<perlfunc/readline>.
 
 =item C<fileno>
 
-Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
+Not implemented.  Use method C<IO::Handle::fileno()> instead, or see L<perlfunc/fileno>.
 
 =item C<floor>
 
@@ -456,32 +472,43 @@ integer value less than or equal to the numerical argument.
 
 =item C<fdim>
 
-"Positive difference", x - y if x > y, zero otherwise [C99].
+"Positive difference", S<C<x - y>> if S<C<x E<gt> y>>, zero otherwise [C99].
+Added in Perl v5.22.
 
 =item C<fegetround>
 
 Returns the current floating point rounding mode, one of
 
-  FE_TONEAREST FE_TOWARDZERO FE_UPWARD FE_UPWARD
+  FE_TONEAREST FE_TOWARDZERO FE_UPWARD FE_DOWNWARD
 
-FE_TONEAREST is like L</round>, FE_TOWARDZERO is like L</trunc> [C99].
+C<FE_TONEAREST> is like L</round>, C<FE_TOWARDZERO> is like L</trunc> [C99].
+Added in Perl v5.22.
 
 =item C<fesetround>
 
-Sets the floating point rounding mode, see L</fegetround>.
+Sets the floating point rounding mode, see L</fegetround> [C99].  Added in
+Perl v5.22.
 
 =item C<fma>
 
-"Fused multiply-add", x * y + z, possibly faster (and less lossy)
-than the explicit two operations [C99].
+"Fused multiply-add", S<C<x * y + z>>, possibly faster (and less lossy)
+than the explicit two operations [C99].  Added in Perl v5.22.
+
+ my $fused = POSIX::fma($x, $y, $z);
 
 =item C<fmax>
 
-Maximum of x and y, except when either is NaN, returns the other [C99].
+Maximum of C<x> and C<y>, except when either is C<NaN>, returns the other [C99].
+Added in Perl v5.22.
+
+ my $min = POSIX::fmax($x, $y);
 
 =item C<fmin>
 
-Minimum of x and y, except when either is NaN, returns the other [C99].
+Minimum of C<x> and C<y>, except when either is C<NaN>, returns the other [C99].
+Added in Perl v5.22.
+
+ my $min = POSIX::fmin($x, $y);
 
 =item C<fmod>
 
@@ -489,13 +516,13 @@ This is identical to the C function C<fmod()>.
 
        $r = fmod($x, $y);
 
-It returns the remainder C<$r = $x - $n*$y>, where C<$n = trunc($x/$y)>.
+It returns the remainder S<C<$r = $x - $n*$y>>, where S<C<$n = trunc($x/$y)>>.
 The C<$r> has the same sign as C<$x> and magnitude (absolute value)
 less than the magnitude of C<$y>.
 
 =item C<fopen>
 
-Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
+Not implemented.  Use method C<IO::File::open()> instead, or see L<perlfunc/open>.
 
 =item C<fork>
 
@@ -522,31 +549,35 @@ Returns one of
 
   FP_NORMAL FP_ZERO FP_SUBNORMAL FP_INFINITE FP_NAN
 
-telling the class of the argument [C99].
+telling the class of the argument [C99].  C<FP_INFINITE> is positive
+or negative infinity, C<FP_NAN> is not-a-number.  C<FP_SUBNORMAL>
+means subnormal numbers (also known as denormals), very small numbers
+with low precision. C<FP_ZERO> is zero.  C<FP_NORMAL> is all the rest.
+Added in Perl v5.22.
 
 =item C<fprintf>
 
-C<fprintf()> is C-specific, see L<perlfunc/printf> instead.
+Not implemented.  C<fprintf()> is C-specific, see L<perlfunc/printf> instead.
 
 =item C<fputc>
 
-C<fputc()> is C-specific, see L<perlfunc/print> instead.
+Not implemented.  C<fputc()> is C-specific, see L<perlfunc/print> instead.
 
 =item C<fputs>
 
-C<fputs()> is C-specific, see L<perlfunc/print> instead.
+Not implemented.  C<fputs()> is C-specific, see L<perlfunc/print> instead.
 
 =item C<fread>
 
-C<fread()> is C-specific, see L<perlfunc/read> instead.
+Not implemented.  C<fread()> is C-specific, see L<perlfunc/read> instead.
 
 =item C<free>
 
-C<free()> is C-specific.  Perl does memory management transparently.
+Not implemented.  C<free()> is C-specific.  Perl does memory management transparently.
 
 =item C<freopen>
 
-C<freopen()> is C-specific, see L<perlfunc/open> instead.
+Not implemented.  C<freopen()> is C-specific, see L<perlfunc/open> instead.
 
 =item C<frexp>
 
@@ -556,15 +587,15 @@ Return the mantissa and exponent of a floating-point number.
 
 =item C<fscanf>
 
-C<fscanf()> is C-specific, use E<lt>E<gt> and regular expressions instead.
+Not implemented.  C<fscanf()> is C-specific, use E<lt>E<gt> and regular expressions instead.
 
 =item C<fseek>
 
-Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
+Not implemented.  Use method C<IO::Seekable::seek()> instead, or see L<perlfunc/seek>.
 
 =item C<fsetpos>
 
-Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
+Not implemented.  Use method C<IO::Seekable::setpos()> instead, or seek L<perlfunc/seek>.
 
 =item C<fstat>
 
@@ -577,15 +608,15 @@ Perl's builtin C<stat> function.
 
 =item C<fsync>
 
-Use method C<IO::Handle::sync()> instead.
+Not implemented.  Use method C<IO::Handle::sync()> instead.
 
 =item C<ftell>
 
-Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
+Not implemented.  Use method C<IO::Seekable::tell()> instead, or see L<perlfunc/tell>.
 
 =item C<fwrite>
 
-C<fwrite()> is C-specific, see L<perlfunc/print> instead.
+Not implemented.  C<fwrite()> is C-specific, see L<perlfunc/print> instead.
 
 =item C<getc>
 
@@ -644,6 +675,17 @@ This is identical to Perl's builtin C<getlogin()> function for
 returning the user name associated with the current session, see
 L<perlfunc/getlogin>.
 
+=item C<getpayload>
+
+       use POSIX ':nan_payload';
+       getpayload($var)
+
+Returns the C<NaN> payload.  Added in Perl v5.24.
+
+Note the API instability warning in L</setpayload>.
+
+See L</nan> for more discussion about C<NaN>.
+
 =item C<getpgrp>
 
 This is identical to Perl's builtin C<getpgrp()> function for
@@ -694,51 +736,38 @@ see L<perlfunc/gmtime>.
 
 =item C<hypot>
 
-Equivalent to sqrt(x * x + y * y) except more stable on very large
-or very small arguments [C99].
+Equivalent to C<S<sqrt(x * x + y * y)>> except more stable on very large
+or very small arguments [C99].  Added in Perl v5.22.
 
 =item C<ilogb>
 
-Integer binary logarithm [C99]
+Integer binary logarithm [C99].  Added in Perl v5.22.
 
-For example ilogb(20) is 4, as an integer.
+For example C<ilogb(20)> is 4, as an integer.
 
 See also L</logb>.
 
-=item C<isalnum>
+=item C<Inf>
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:alnum:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
+The infinity as a constant:
 
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
+   use POSIX qw(Inf);
+   my $pos_inf = +Inf;  # Or just Inf.
+   my $neg_inf = -Inf;
 
-You may want to use the C<L<E<sol>\wE<sol>|perlrecharclass/Word
-characters>> construct instead.
+See also L</isinf>, and L</fpclassify>.
 
-=item C<isalpha>
+=item C<isalnum>
+
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:alnum:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:alpha:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
+=item C<isalpha>
 
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:alpha:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
 =item C<isatty>
 
@@ -747,200 +776,122 @@ to a tty.  Similar to the C<-t> operator, see L<perlfunc/-X>.
 
 =item C<iscntrl>
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:cntrl:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
-
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:cntrl:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
 =item C<isdigit>
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:digit:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
-
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
-
-You may want to use the C<L<E<sol>\dE<sol>|perlrecharclass/Digits>>
-construct instead.
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:digit:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
 =item C<isfinite>
 
 Returns true if the argument is a finite number (that is, not an
-infinity, or the not-a-number) [C99].
+infinity, or the not-a-number) [C99].  Added in Perl v5.22.
 
 See also L</isinf>, L</isnan>, and L</fpclassify>.
 
 =item C<isgraph>
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:graph:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
-
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:graph:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
 =item C<isgreater>
 
 (Also C<isgreaterequal>, C<isless>, C<islessequal>, C<islessgreater>,
 C<isunordered>)
 
-Floating point comparisons which handle the NaN [C99].
+Floating point comparisons which handle the C<NaN> [C99].  Added in Perl
+v5.22.
 
 =item C<isinf>
 
 Returns true if the argument is an infinity (positive or negative) [C99].
+Added in Perl v5.22.
 
-See also L</isnan>, L</isfinite>, and L</fpclassify>.
+See also L</Inf>, L</isnan>, L</isfinite>, and L</fpclassify>.
 
 =item C<islower>
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:lower:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
-
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
-
-Do B<not> use C</[a-z]/> unless you don't care about the current locale.
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:lower:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
 =item C<isnan>
 
-Returns true if the argument is NaN (not-a-number) [C99].
+Returns true if the argument is C<NaN> (not-a-number) [C99].  Added in
+Perl v5.22.
 
-Note that you cannot test for "NaN-ness" with
+Note that you cannot test for "C<NaN>-ness" with
 
    $x == $x
 
-since the NaN is not equivalent to anything, B<including itself>.
+since the C<NaN> is not equivalent to anything, B<including itself>.
 
-See also L</nan>, L</isinf>, and L</fpclassify>.
+See also L</nan>, L</NaN>, L</isinf>, and L</fpclassify>.
 
 =item C<isnormal>
 
 Returns true if the argument is normal (that is, not a subnormal/denormal,
-and not an infinity, or a not-a-number) [C99].
+and not an infinity, or a not-a-number) [C99].  Added in Perl v5.22.
 
 See also L</isfinite>, and L</fpclassify>.
 
 =item C<isprint>
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:print:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
-
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:print:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
 =item C<ispunct>
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:punct:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:punct:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
+=item C<issignaling>
 
-=item C<isspace>
+       use POSIX ':nan_payload';
+       issignaling($var, $payload)
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:space:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
+Return true if the argument is a I<signaling> NaN.  Added in Perl v5.24.
 
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
+Note the API instability warning in L</setpayload>.
 
-You may want to use the C<L<E<sol>\sE<sol>|perlrecharclass/Whitespace>>
-construct instead.
+See L</nan> for more discussion about C<NaN>.
 
-=item C<isupper>
+=item C<isspace>
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:upper:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:space:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
+=item C<isupper>
 
-Do B<not> use C</[A-Z]/> unless you don't care about the current locale.
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:upper:]]+ $ /x>>, which you should convert
+to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
 =item C<isxdigit>
 
-Deprecated function whose use raises a warning, and which is slated to
-be removed in a future Perl version.  It is very similar to matching
-against S<C<qr/ ^ [[:xdigit:]]+ $ /x>>, which you should convert to use
-instead.  The function is deprecated because 1) it doesn't handle UTF-8
-encoded strings properly; and 2) it returns C<TRUE> even if the input is
-the empty string.  The function return is always based on the current
-locale, whereas using locale rules is optional with the regular
-expression, based on pragmas in effect and pattern modifiers (see
-L<perlre/Character set modifiers> and L<perlre/Which character set
-modifier is in effect?>).
-
-The function returns C<TRUE> if the input string is empty, or if the
-corresponding C function returns C<TRUE> for every byte in the string.
+This function has been removed as of Perl v5.24.  It was very similar to
+matching against S<C<qr/ ^ [[:xdigit:]]+ $ /x>>, which you should
+convert to use instead.  See L<perlrecharclass/POSIX Character Classes>.
 
 =item C<j0>
 
-(Also C<j1>, C<jn>, C<y0>, C<y1>, C<yn>)
+=item C<j1>
+
+=item C<jn>
+
+=item C<y0>
+
+=item C<y1>
+
+=item C<yn>
 
 The Bessel function of the first kind of the order zero.
 
@@ -951,17 +902,19 @@ signals to processes (often to terminate them), see L<perlfunc/kill>.
 
 =item C<labs>
 
-(For returning absolute values of long integers.)
+Not implemented.  (For returning absolute values of long integers.)
 C<labs()> is C-specific, see L<perlfunc/abs> instead.
 
 =item C<lchown>
 
 This is identical to the C function, except the order of arguments is
 consistent with Perl's builtin C<chown()> with the added restriction
-of only one path, not an list of paths.  Does the same thing as the 
-C<chown()> function but changes the owner of a symbolic link instead 
+of only one path, not a list of paths.  Does the same thing as the
+C<chown()> function but changes the owner of a symbolic link instead
 of the file the symbolic link points to.
 
+ POSIX::lchown($uid, $gid, $file_path);
+
 =item C<ldexp>
 
 This is identical to the C function C<ldexp()>
@@ -971,31 +924,31 @@ for multiplying floating point numbers with powers of two.
 
 =item C<ldiv>
 
-(For computing dividends of long integers.)
+Not implemented.  (For computing dividends of long integers.)
 C<ldiv()> is C-specific, use C</> and C<int()> instead.
 
 =item C<lgamma>
 
-The logarithm of the Gamma function [C99].
+The logarithm of the Gamma function [C99].  Added in Perl v5.22.
 
 See also L</tgamma>.
 
 =item C<log1p>
 
-Equivalent to log(1 + x), but more stable results for small argument
-values [C99].
+Equivalent to S<C<log(1 + x)>>, but more stable results for small argument
+values [C99].  Added in Perl v5.22.
 
 =item C<log2>
 
-Logarithm base two [C99].
+Logarithm base two [C99].  Added in Perl v5.22.
 
 See also L</expm1>.
 
 =item C<logb>
 
-Integer binary logarithm [C99].
+Integer binary logarithm [C99].  Added in Perl v5.22.
 
-For example logb(20) is 4, as a floating point number.
+For example C<logb(20)> is 4, as a floating point number.
 
 See also L</ilogb>.
 
@@ -1007,10 +960,20 @@ for creating hard links into files, see L<perlfunc/link>.
 =item C<localeconv>
 
 Get numeric formatting information.  Returns a reference to a hash
-containing the current underlying locale's formatting values.  Users of this function
-should also read L<perllocale>, which provides a comprehensive
-discussion of Perl locale handling, including
+containing the formatting values of the locale that currently underlies
+the program, regardless of whether or not it is called from within the
+scope of a S<C<use locale>>.  Users of this function should also read
+L<perllocale>, which provides a comprehensive discussion of Perl locale
+handling, including
 L<a section devoted to this function|perllocale/The localeconv function>.
+Prior to Perl 5.28, or when operating in a non thread-safe environment,
+it should not be used in a threaded application unless it's certain that
+the underlying locale is C or POSIX.  This is because it otherwise
+changes the locale, which globally affects all threads simultaneously.
+Windows platforms starting with Visual Studio 2005 are mostly
+thread-safe, but use of this function in those prior to Visual Studio
+2015 can interfere with a thread that has called
+L<perlapi/switch_to_global_locale>.
 
 Here is how to query the database for the B<de> (Deutsch or German) locale.
 
@@ -1048,13 +1011,21 @@ Here is how to query the database for the B<de> (Deutsch or German) locale.
                        $property, $lconv->{$property};
        }
 
-int_p_* and int_n_* members added by POSIX.1-2008 are only available on
-systems that support them.
+The members whose names begin with C<int_p_> and C<int_n_> were added by
+POSIX.1-2008 and are only available on systems that support them.
 
 =item C<localtime>
 
 This is identical to Perl's builtin C<localtime()> function for
-converting seconds since the epoch to a date see L<perlfunc/localtime>.
+converting seconds since the epoch to a date see L<perlfunc/localtime> except
+that C<POSIX::localtime()> must be provided an explicit value (rather than
+relying on an implicit C<$_>):
+
+    @localtime = POSIX::localtime(time);    # good
+
+    @localtime = localtime();               # good
+
+    @localtime = POSIX::localtime();        # throws exception
 
 =item C<log>
 
@@ -1080,7 +1051,7 @@ or
 
 =item C<longjmp>
 
-C<longjmp()> is C-specific: use L<perlfunc/die> instead.
+Not implemented.  C<longjmp()> is C-specific: use L<perlfunc/die> instead.
 
 =item C<lseek>
 
@@ -1097,61 +1068,105 @@ Returns C<undef> on failure.
 Depending on the current floating point rounding mode, rounds the
 argument either toward nearest (like L</round>), toward zero (like
 L</trunc>), downward (toward negative infinity), or upward (toward
-positive infinity) [C99].
+positive infinity) [C99].  Added in Perl v5.22.
 
 For the rounding mode, see L</fegetround>.
 
 =item C<lround>
 
-Like L</round>, but as integer, as opposed to floating point [C99].
+Like L</round>, but as integer, as opposed to floating point [C99].  Added
+in Perl v5.22.
 
 See also L</ceil>, L</floor>, L</trunc>.
 
+Owing to an oversight, this is not currently exported by default, or as part of
+the C<:math_h_c99> export tag; importing it must therefore be done by explicit
+name.
+
 =item C<malloc>
 
-C<malloc()> is C-specific.  Perl does memory management transparently.
+Not implemented.  C<malloc()> is C-specific.  Perl does memory management transparently.
 
 =item C<mblen>
 
-This is identical to the C function C<mblen()>.
-
-Core Perl does not have any support for the wide and multibyte
-characters of the C standards, so this might be a rather useless
-function.
-
-However, Perl supports Unicode, see L<perluniintro>.
-
-=item C<mbstowcs>
-
-This is identical to the C function C<mbstowcs()>.
-
-See L</mblen>.
+This is the same as the C function C<mblen()> on unthreaded perls.  On
+threaded perls, it transparently (almost) substitutes the more
+thread-safe L<C<mbrlen>(3)>, if available, instead of C<mblen>.
+
+Core Perl does not have any support for wide and multibyte locales,
+except Unicode UTF-8 locales.  This function, in conjunction with
+L</mbtowc> and L</wctomb> may be used to roll your own decoding/encoding
+of other types of multi-byte locales.
+
+Use C<undef> as the first parameter to this function to get the effect
+of passing NULL as the first parameter to C<mblen>.  This resets any
+shift state to its initial value.  The return value is undefined if
+C<mbrlen> was substituted, so you should never rely on it.
+
+When the first parameter is a scalar containing a value that either is a
+PV string or can be forced into one, the return value is the number of
+bytes occupied by the first character of that string; or 0 if that first
+character is the wide NUL character; or negative if there is an error.
+This is based on the locale that currently underlies the program,
+regardless of whether or not the function is called from Perl code that
+is within the scope of S<C<use locale>>.  Perl makes no attempt at
+hiding from your code any differences in the C<errno> setting between
+C<mblen> and C<mbrlen>.  It does set C<errno> to 0 before calling them.
+
+The optional second parameter is ignored if it is larger than the
+actual length of the first parameter string.
 
 =item C<mbtowc>
 
-This is identical to the C function C<mbtowc()>.
-
-See L</mblen>.
+This is the same as the C function C<mbtowc()> on unthreaded perls.  On
+threaded perls, it transparently (almost) substitutes the more
+thread-safe L<C<mbrtowc>(3)>, if available, instead of C<mbtowc>.
+
+Core Perl does not have any support for wide and multibyte locales,
+except Unicode UTF-8 locales.  This function, in conjunction with
+L</mblen> and L</wctomb> may be used to roll your own decoding/encoding
+of other types of multi-byte locales.
+
+The first parameter is a scalar into which, upon success, the wide
+character represented by the multi-byte string contained in the second
+parameter is stored.  The optional third parameter is ignored if it is
+larger than the actual length of the second parameter string.
+
+Use C<undef> as the second parameter to this function to get the effect
+of passing NULL as the second parameter to C<mbtowc>.  This resets any
+shift state to its initial value.  The return value is undefined if
+C<mbrtowc> was substituted, so you should never rely on it.
+
+When the second parameter is a scalar containing a value that either is
+a PV string or can be forced into one, the return value is the number of
+bytes occupied by the first character of that string; or 0 if that first
+character is the wide NUL character; or negative if there is an error.
+This is based on the locale that currently underlies the program,
+regardless of whether or not the function is called from Perl code that
+is within the scope of S<C<use locale>>.  Perl makes no attempt at
+hiding from your code any differences in the C<errno> setting between
+C<mbtowc> and C<mbrtowc>.  It does set C<errno> to 0 before calling
+them.
 
 =item C<memchr>
 
-C<memchr()> is C-specific, see L<perlfunc/index> instead.
+Not implemented.  C<memchr()> is C-specific, see L<perlfunc/index> instead.
 
 =item C<memcmp>
 
-C<memcmp()> is C-specific, use C<eq> instead, see L<perlop>.
+Not implemented.  C<memcmp()> is C-specific, use C<eq> instead, see L<perlop>.
 
 =item C<memcpy>
 
-C<memcpy()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
+Not implemented.  C<memcpy()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
 
 =item C<memmove>
 
-C<memmove()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
+Not implemented.  C<memmove()> is C-specific, use C<=>, see L<perlop>, or see L<perlfunc/substr>.
 
 =item C<memset>
 
-C<memset()> is C-specific, use C<x> instead, see L<perlop>.
+Not implemented.  C<memset()> is C-specific, use C<x> instead, see L<perlop>.
 
 =item C<mkdir>
 
@@ -1178,9 +1193,9 @@ Synopsis:
        mktime(sec, min, hour, mday, mon, year, wday = 0,
               yday = 0, isdst = -1)
 
-The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
-I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1.  The
-year (C<year>) is given in years since 1900.  I.e. The year 1995 is 95; the
+The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero,
+I<i.e.>, January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1.  The
+year (C<year>) is given in years since 1900; I<i.e.>, the year 1995 is 95; the
 year 2001 is 101.  Consult your system's C<mktime()> manpage for details
 about these and the other arguments.
 
@@ -1199,28 +1214,72 @@ Return the integral and fractional parts of a floating-point number.
 
 See also L</round>.
 
+=item C<NaN>
+
+The not-a-number as a constant:
+
+   use POSIX qw(NaN);
+   my $nan = NaN;
+
+See also L</nan>, C</isnan>, and L</fpclassify>.
+
 =item C<nan>
 
-Returns not-a-number [C99].
+   my $nan = nan();
+
+Returns C<NaN>, not-a-number [C99].  Added in Perl v5.22.
+
+The returned NaN is always a I<quiet> NaN, as opposed to I<signaling>.
+
+With an argument, can be used to generate a NaN with I<payload>.
+The argument is first interpreted as a floating point number,
+but then any fractional parts are truncated (towards zero),
+and the value is interpreted as an unsigned integer.
+The bits of this integer are stored in the unused bits of the NaN.
 
-See also L</isnan>.
+The result has a dual nature: it is a NaN, but it also carries
+the integer inside it.  The integer can be retrieved with L</getpayload>.
+Note, though, that the payload is not propagated, not even on copies,
+and definitely not in arithmetic operations.
+
+How many bits fit in the NaN depends on what kind of floating points
+are being used, but on the most common platforms (64-bit IEEE 754,
+or the x86 80-bit long doubles) there are 51 and 61 bits available,
+respectively.  (There would be 52 and 62, but the quiet/signaling
+bit of NaNs takes away one.)  However, because of the floating-point-to-
+integer-and-back conversions, please test carefully whether you get back
+what you put in.  If your integers are only 32 bits wide, you probably
+should not rely on more than 32 bits of payload.
+
+Whether a "signaling" NaN is in any way different from a "quiet" NaN,
+depends on the platform.  Also note that the payload of the default
+NaN (no argument to nan()) is not necessarily zero, use C<setpayload>
+to explicitly set the payload.  On some platforms like the 32-bit x86,
+(unless using the 80-bit long doubles) the signaling bit is not supported
+at all.
+
+See also L</isnan>, L</NaN>, L</setpayload> and L</issignaling>.
 
 =item C<nearbyint>
 
 Returns the nearest integer to the argument, according to the current
-rounding mode (see L</fegetround>) [C99].
+rounding mode (see L</fegetround>) [C99].  Added in Perl v5.22.
 
 =item C<nextafter>
 
-Returns the next representable floating point number after x in the
-direction of y [C99].
+Returns the next representable floating point number after C<x> in the
+direction of C<y> [C99].  Added in Perl v5.22.
+
+ my $nextafter = POSIX::nextafter($x, $y);
 
 Like L</nexttoward>, but potentially less accurate.
 
 =item C<nexttoward>
 
-Returns the next representable floating point number after x in the
-direction of y [C99].
+Returns the next representable floating point number after C<x> in the
+direction of C<y> [C99].  Added in Perl v5.22.
+
+ my $nexttoward = POSIX::nexttoward($x, $y);
 
 Like L</nextafter>, but potentially more accurate.
 
@@ -1228,14 +1287,15 @@ Like L</nextafter>, but potentially more accurate.
 
 This is similar to the C function C<nice()>, for changing
 the scheduling preference of the current process.  Positive
-arguments mean more polite process, negative values more
-needy process.  Normal user processes can only be more polite.
+arguments mean a more polite process, negative values a more
+needy process.  Normal (non-root) user processes can only change towards
+being more polite.
 
 Returns C<undef> on failure.
 
 =item C<offsetof>
 
-C<offsetof()> is C-specific, you probably want to see L<perlfunc/pack> instead.
+Not implemented.  C<offsetof()> is C-specific, you probably want to see L<perlfunc/pack> instead.
 
 =item C<open>
 
@@ -1323,24 +1383,24 @@ You can also use the C<**> operator, see L<perlop>.
 
 =item C<printf>
 
-Formats and prints the specified arguments to STDOUT.
+Formats and prints the specified arguments to C<STDOUT>.
 See also L<perlfunc/printf>.
 
 =item C<putc>
 
-C<putc()> is C-specific, see L<perlfunc/print> instead.
+Not implemented.  C<putc()> is C-specific, see L<perlfunc/print> instead.
 
 =item C<putchar>
 
-C<putchar()> is C-specific, see L<perlfunc/print> instead.
+Not implemented.  C<putchar()> is C-specific, see L<perlfunc/print> instead.
 
 =item C<puts>
 
-C<puts()> is C-specific, see L<perlfunc/print> instead.
+Not implemented.  C<puts()> is C-specific, see L<perlfunc/print> instead.
 
 =item C<qsort>
 
-C<qsort()> is C-specific, see L<perlfunc/sort> instead.
+Not implemented.  C<qsort()> is C-specific, see L<perlfunc/sort> instead.
 
 =item C<raise>
 
@@ -1349,7 +1409,7 @@ See also L<perlfunc/kill> and the C<$$> in L<perlvar/$PID>.
 
 =item C<rand>
 
-C<rand()> is non-portable, see L<perlfunc/rand> instead.
+Not implemented.  C<rand()> is non-portable, see L<perlfunc/rand> instead.
 
 =item C<read>
 
@@ -1371,24 +1431,26 @@ for reading directory entries, see L<perlfunc/readdir>.
 
 =item C<realloc>
 
-C<realloc()> is C-specific.  Perl does memory management transparently.
+Not implemented.  C<realloc()> is C-specific.  Perl does memory management transparently.
 
 =item C<remainder>
 
-Given x and y, returns the value x - n*y, where n is the integer
-closest to x/y. [C99]
+Given C<x> and C<y>, returns the value S<C<x - n*y>>, where C<n> is the integer
+closest to C<x>/C<y> [C99].  Added in Perl v5.22.
+
+ my $remainder = POSIX::remainder($x, $y)
 
 See also L</remquo>.
 
 =item C<remove>
 
-This is identical to Perl's builtin C<unlink()> function
-for removing files, see L<perlfunc/unlink>.
+Deletes a name from the filesystem.  Calls L<perlfunc/unlink> for
+files and L<perlfunc/rmdir> for directories.
 
 =item C<remquo>
 
 Like L</remainder> but also returns the low-order bits of the quotient (n)
-[C99]
+[C99].  Added in Perl v5.22.
 
 (This is quite esoteric interface, mainly used to implement numerical
 algorithms.)
@@ -1419,19 +1481,19 @@ for removing (empty) directories, see L<perlfunc/rmdir>.
 =item C<round>
 
 Returns the integer (but still as floating point) nearest to the
-argument [C99].
+argument [C99].  Added in Perl v5.22.
 
 See also L</ceil>, L</floor>, L</lround>, L</modf>, and L</trunc>.
 
 =item C<scalbn>
 
-Returns x * 2**y [C99].
+Returns S<C<x * 2**y>> [C99].  Added in Perl v5.22.
 
 See also L</frexp> and L</ldexp>.
 
 =item C<scanf>
 
-C<scanf()> is C-specific, use E<lt>E<gt> and regular expressions instead,
+Not implemented.  C<scanf()> is C-specific, use E<lt>E<gt> and regular expressions instead,
 see L<perlre>.
 
 =item C<setgid>
@@ -1445,12 +1507,24 @@ list of numbers.
 
 =item C<setjmp>
 
-C<setjmp()> is C-specific: use C<eval {}> instead,
+Not implemented.  C<setjmp()> is C-specific: use C<eval {}> instead,
 see L<perlfunc/eval>.
 
 =item C<setlocale>
 
-Modifies and queries the program's underlying locale.  Users of this
+WARNING!  Prior to Perl 5.28 or on a system that does not support
+thread-safe locale operations, do NOT use this function in a
+L<thread|threads>.  The locale will change in all other threads at the
+same time, and should your thread get paused by the operating system,
+and another started, that thread will not have the locale it is
+expecting.  On some platforms, there can be a race leading to segfaults
+if two threads call this function nearly simultaneously.  This warning
+does not apply on unthreaded builds, or on perls where
+C<${^SAFE_LOCALES}> exists and is non-zero; namely Perl 5.28 and later
+compiled to be locale-thread-safe.
+
+This function
+modifies and queries the program's underlying locale.  Users of this
 function should read L<perllocale>, whch provides a comprehensive
 discussion of Perl locale handling, knowledge of which is necessary to
 properly use this function.  It contains
@@ -1458,7 +1532,9 @@ L<a section devoted to this function|perllocale/The setlocale function>.
 The discussion here is merely a summary reference for C<setlocale()>.
 Note that Perl itself is almost entirely unaffected by the locale
 except within the scope of S<C<"use locale">>.  (Exceptions are listed
-in L<perllocale/Not within the scope of "use locale">.)
+in L<perllocale/Not within the scope of "use locale">, and
+locale-dependent functions within the POSIX module ARE always affected
+by the current locale.)
 
 The following examples assume
 
@@ -1490,6 +1566,39 @@ out which locales are available in your system.
 
        $loc = setlocale( LC_COLLATE, "es_AR.ISO8859-1" );
 
+=item C<setpayload>
+
+       use POSIX ':nan_payload';
+       setpayload($var, $payload);
+
+Sets the C<NaN> payload of var.  Added in Perl v5.24.
+
+NOTE: the NaN payload APIs are based on the latest (as of June 2015)
+proposed ISO C interfaces, but they are not yet a standard.  Things
+may change.
+
+See L</nan> for more discussion about C<NaN>.
+
+See also L</setpayloadsig>, L</isnan>, L</getpayload>, and L</issignaling>.
+
+=item C<setpayloadsig>
+
+       use POSIX ':nan_payload';
+       setpayloadsig($var, $payload);
+
+Like L</setpayload> but also makes the NaN I<signaling>.  Added in Perl
+v5.24.
+
+Depending on the platform the NaN may or may not behave differently.
+
+Note the API instability warning in L</setpayload>.
+
+Note that because how the floating point formats work out, on the most
+common platforms signaling payload of zero is best avoided,
+since it might end up being identical to C<+Inf>.
+
+See also L</nan>, L</isnan>, L</getpayload>, and L</issignaling>.
+
 =item C<setpgid>
 
 This is similar to the C function C<setpgid()> for
@@ -1535,6 +1644,9 @@ semantics, as defined by POSIX/SUSv3:
                 a user process and the uid and pid make sense,
                 otherwise the signal was sent by the kernel
 
+The constants for specific C<code> values can be imported individually
+or using the C<:signal_h_si_code> tag, since Perl v5.24.
+
 The following are also defined by POSIX/SUSv3, but unfortunately
 not very widely implemented:
 
@@ -1542,6 +1654,8 @@ not very widely implemented:
     uid         the uid of the process id generating the signal
     status      exit value or signal for SIGCHLD
     band        band event for SIGPOLL
+    addr        address of faulting instruction or memory
+                reference for SIGILL, SIGFPE, SIGSEGV or SIGBUS
 
 A third argument is also passed to the handler, which contains a copy
 of the raw binary contents of the C<siginfo> structure: if a system has
@@ -1555,11 +1669,12 @@ C<sigaction> and possibly also C<siginfo> documentation.
 
 =item C<siglongjmp>
 
-C<siglongjmp()> is C-specific: use L<perlfunc/die> instead.
+Not implemented.  C<siglongjmp()> is C-specific: use L<perlfunc/die> instead.
 
 =item C<signbit>
 
 Returns zero for positive arguments, non-zero for negative arguments [C99].
+Added in Perl v5.22.
 
 =item C<sigpending>
 
@@ -1591,7 +1706,7 @@ reliably.
 
 =item C<sigsetjmp>
 
-C<sigsetjmp()> is C-specific: use C<eval {}> instead,
+Not implemented.  C<sigsetjmp()> is C-specific: use C<eval {}> instead,
 see L<perlfunc/eval>.
 
 =item C<sigsuspend>
@@ -1645,7 +1760,7 @@ Give a seed the pseudorandom number generator, see L<perlfunc/srand>.
 
 =item C<sscanf>
 
-C<sscanf()> is C-specific, use regular expressions instead,
+Not implemented.  C<sscanf()> is C-specific, use regular expressions instead,
 see L<perlre>.
 
 =item C<stat>
@@ -1655,15 +1770,15 @@ for returning information about files and directories.
 
 =item C<strcat>
 
-C<strcat()> is C-specific, use C<.=> instead, see L<perlop>.
+Not implemented.  C<strcat()> is C-specific, use C<.=> instead, see L<perlop>.
 
 =item C<strchr>
 
-C<strchr()> is C-specific, see L<perlfunc/index> instead.
+Not implemented.  C<strchr()> is C-specific, see L<perlfunc/index> instead.
 
 =item C<strcmp>
 
-C<strcmp()> is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
+Not implemented.  C<strcmp()> is C-specific, use C<eq> or C<cmp> instead, see L<perlop>.
 
 =item C<strcoll>
 
@@ -1672,19 +1787,23 @@ for collating (comparing) strings transformed using
 the C<strxfrm()> function.  Not really needed since
 Perl can do this transparently, see L<perllocale>.
 
+Beware that in a UTF-8 locale, anything you pass to this function must
+be in UTF-8; and when not in a UTF-8 locale, anything passed must not be
+UTF-8 encoded.
+
 =item C<strcpy>
 
-C<strcpy()> is C-specific, use C<=> instead, see L<perlop>.
+Not implemented.  C<strcpy()> is C-specific, use C<=> instead, see L<perlop>.
 
 =item C<strcspn>
 
-C<strcspn()> is C-specific, use regular expressions instead,
+Not implemented.  C<strcspn()> is C-specific, use regular expressions instead,
 see L<perlre>.
 
 =item C<strerror>
 
 Returns the error string for the specified errno.
-Identical to the string form of the C<$!>, see L<perlvar/$ERRNO>.
+Identical to the string form of C<$!>, see L<perlvar/$ERRNO>.
 
 =item C<strftime>
 
@@ -1695,9 +1814,9 @@ Synopsis:
        strftime(fmt, sec, min, hour, mday, mon, year,
                 wday = -1, yday = -1, isdst = -1)
 
-The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero.
-I.e. January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1.  The
-year (C<year>) is given in years since 1900.  I.e., the year 1995 is 95; the
+The month (C<mon>), weekday (C<wday>), and yearday (C<yday>) begin at zero,
+I<i.e.>, January is 0, not 1; Sunday is 0, not 1; January 1st is 0, not 1.  The
+year (C<year>) is given in years since 1900, I<i.e.>, the year 1995 is 95; the
 year 2001 is 101.  Consult your system's C<strftime()> manpage for details
 about these and the other arguments.
 
@@ -1726,32 +1845,32 @@ The string for Tuesday, December 12, 1995.
 
 =item C<strlen>
 
-C<strlen()> is C-specific, use C<length()> instead, see L<perlfunc/length>.
+Not implemented.  C<strlen()> is C-specific, use C<length()> instead, see L<perlfunc/length>.
 
 =item C<strncat>
 
-C<strncat()> is C-specific, use C<.=> instead, see L<perlop>.
+Not implemented.  C<strncat()> is C-specific, use C<.=> instead, see L<perlop>.
 
 =item C<strncmp>
 
-C<strncmp()> is C-specific, use C<eq> instead, see L<perlop>.
+Not implemented.  C<strncmp()> is C-specific, use C<eq> instead, see L<perlop>.
 
 =item C<strncpy>
 
-C<strncpy()> is C-specific, use C<=> instead, see L<perlop>.
+Not implemented.  C<strncpy()> is C-specific, use C<=> instead, see L<perlop>.
 
 =item C<strpbrk>
 
-C<strpbrk()> is C-specific, use regular expressions instead,
+Not implemented.  C<strpbrk()> is C-specific, use regular expressions instead,
 see L<perlre>.
 
 =item C<strrchr>
 
-C<strrchr()> is C-specific, see L<perlfunc/rindex> instead.
+Not implemented.  C<strrchr()> is C-specific, see L<perlfunc/rindex> instead.
 
 =item C<strspn>
 
-C<strspn()> is C-specific, use regular expressions instead,
+Not implemented.  C<strspn()> is C-specific, use regular expressions instead,
 see L<perlre>.
 
 =item C<strstr>
@@ -1764,12 +1883,16 @@ see L<perlfunc/index>.
 String to double translation. Returns the parsed number and the number
 of characters in the unparsed portion of the string.  Truly
 POSIX-compliant systems set C<$!> (C<$ERRNO>) to indicate a translation
-error, so clear C<$!> before calling strtod.  However, non-POSIX systems
+error, so clear C<$!> before calling C<strtod>.  However, non-POSIX systems
 may not check for overflow, and therefore will never set C<$!>.
 
-strtod respects any POSIX I<setlocale()> C<LC_TIME> settings,
+C<strtod> respects any POSIX C<setlocale()> C<LC_NUMERIC> settings,
 regardless of whether or not it is called from Perl code that is within
-the scope of S<C<use locale>>.
+the scope of S<C<use locale>>.  Prior to Perl 5.28, or when operating in
+a non thread-safe environment, it should not be used in a threaded
+application unless it's certain that the underlying locale is C
+or POSIX.  This is because it otherwise changes the locale, which
+globally affects all threads simultaneously.
 
 To parse a string C<$str> as a floating point number use
 
@@ -1782,11 +1905,11 @@ The second returned item and C<$!> can be used to check for valid input:
         die "Non-numeric input $str" . ($! ? ": $!\n" : "\n");
     }
 
-When called in a scalar context strtod returns the parsed number.
+When called in a scalar context C<strtod> returns the parsed number.
 
 =item C<strtok>
 
-C<strtok()> is C-specific, use regular expressions instead, see
+Not implemented.  C<strtok()> is C-specific, use regular expressions instead, see
 L<perlre>, or L<perlfunc/split>.
 
 =item C<strtol>
@@ -1805,7 +1928,7 @@ To parse a string C<$str> as a number in some base C<$base> use
     ($num, $n_unparsed) = POSIX::strtol($str, $base);
 
 The base should be zero or between 2 and 36, inclusive.  When the base
-is zero or omitted strtol will use the string itself to determine the
+is zero or omitted C<strtol> will use the string itself to determine the
 base: a leading "0x" or "0X" means hexadecimal; a leading "0" means
 octal; any other leading characters mean decimal.  Thus, "1234" is
 parsed as a decimal number, "01234" as an octal number, and "0x1234"
@@ -1817,7 +1940,7 @@ The second returned item and C<$!> can be used to check for valid input:
         die "Non-numeric input $str" . $! ? ": $!\n" : "\n";
     }
 
-When called in a scalar context strtol returns the parsed number.
+When called in a scalar context C<strtol> returns the parsed number.
 
 =item C<strtold>
 
@@ -1844,6 +1967,10 @@ Used in conjunction with the C<strcoll()> function, see L</strcoll>.
 Not really needed since Perl can do this transparently, see
 L<perllocale>.
 
+Beware that in a UTF-8 locale, anything you pass to this function must
+be in UTF-8; and when not in a UTF-8 locale, anything passed must not be
+UTF-8 encoded.
+
 =item C<sysconf>
 
 Retrieves values of system configurable variables.
@@ -1913,7 +2040,7 @@ Returns C<undef> on failure.
 
 =item C<tgamma>
 
-The Gamma function [C99].
+The Gamma function [C99].  Added in Perl v5.22.
 
 See also L</lgamma>.
 
@@ -1930,7 +2057,7 @@ The C<times()> function returns elapsed realtime since some point in the past
 and system times used by child processes.  All times are returned in clock
 ticks.
 
-    ($realtime, $user, $system, $cuser, $csystem) 
+    ($realtime, $user, $system, $cuser, $csystem)
        = POSIX::times();
 
 Note: Perl's builtin C<times()> function returns four values, measured in
@@ -1938,35 +2065,35 @@ seconds.
 
 =item C<tmpfile>
 
-Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
+Not implemented.  Use method C<IO::File::new_tmpfile()> instead, or see L<File::Temp>.
 
 =item C<tmpnam>
 
-Returns a name for a temporary file.
-
-       $tmpfile = POSIX::tmpnam();
-
 For security reasons, which are probably detailed in your system's
 documentation for the C library C<tmpnam()> function, this interface
-should not be used; instead see L<File::Temp>.
+is no longer available since Perl v5.26; instead use L<File::Temp>.
 
 =item C<tolower>
 
+This function has been removed as of Perl v5.26.
 This is identical to the C function, except that it can apply to a single
-character or to a whole string.  Consider using the C<lc()> function,
+character or to a whole string, and currently operates as if the locale
+always is "C".  Consider using the C<lc()> function, see L<perlfunc/lc>,
 see L<perlfunc/lc>, or the equivalent C<\L> operator inside doublequotish
 strings.
 
 =item C<toupper>
 
-This is identical to the C function, except that it can apply to a single
-character or to a whole string.  Consider using the C<uc()> function,
-see L<perlfunc/uc>, or the equivalent C<\U> operator inside doublequotish
-strings.
+This function has been removed as of Perl v5.26.
+This is similar to the C function, except that it can apply to a single
+character or to a whole string, and currently operates as if the locale
+always is "C".  Consider using the C<uc()> function, see L<perlfunc/uc>,
+or the equivalent C<\U> operator inside doublequotish strings.
 
 =item C<trunc>
 
-Returns the integer toward zero from the argument [C99].
+Returns the integer toward zero from the argument [C99].  Added in Perl
+v5.22.
 
 See also L</ceil>, L</floor>, and L</round>.
 
@@ -2013,7 +2140,7 @@ Maybe.
 
 =item C<ungetc>
 
-Use method C<IO::Handle::ungetc()> instead.
+Not implemented.  Use method C<IO::Handle::ungetc()> instead.
 
 =item C<unlink>
 
@@ -2028,15 +2155,15 @@ see L<perlfunc/utime>.
 
 =item C<vfprintf>
 
-C<vfprintf()> is C-specific, see L<perlfunc/printf> instead.
+Not implemented.  C<vfprintf()> is C-specific, see L<perlfunc/printf> instead.
 
 =item C<vprintf>
 
-C<vprintf()> is C-specific, see L<perlfunc/printf> instead.
+Not implemented.  C<vprintf()> is C-specific, see L<perlfunc/printf> instead.
 
 =item C<vsprintf>
 
-C<vsprintf()> is C-specific, see L<perlfunc/sprintf> instead.
+Not implemented.  C<vsprintf()> is C-specific, see L<perlfunc/sprintf> instead.
 
 =item C<wait>
 
@@ -2051,17 +2178,34 @@ builtin C<waitpid()> function, see L<perlfunc/waitpid>.
        $pid = POSIX::waitpid( -1, POSIX::WNOHANG );
        print "status = ", ($? / 256), "\n";
 
-=item C<wcstombs>
-
-This is identical to the C function C<wcstombs()>.
-
 See L</mblen>.
 
 =item C<wctomb>
 
-This is identical to the C function C<wctomb()>.
-
-See L</mblen>.
+This is the same as the C function C<wctomb()> on unthreaded perls.  On
+threaded perls, it transparently (almost) substitutes the more
+thread-safe L<C<wcrtomb>(3)>, if available, instead of C<wctomb>.
+
+Core Perl does not have any support for wide and multibyte locales,
+except Unicode UTF-8 locales.  This function, in conjunction with
+L</mblen> and L</mbtowc> may be used to roll your own decoding/encoding
+of other types of multi-byte locales.
+
+Use C<undef> as the first parameter to this function to get the effect
+of passing NULL as the first parameter to C<wctomb>.  This resets any
+shift state to its initial value.  The return value is undefined if
+C<wcrtomb> was substituted, so you should never rely on it.
+
+When the first parameter is a scalar, the code point contained in the
+scalar second parameter is converted into a multi-byte string and stored
+into the first parameter scalar.  This is based on the locale that
+currently underlies the program, regardless of whether or not the
+function is called from Perl code that is within the scope of S<C<use
+locale>>.  The return value is the number of bytes stored; or negative
+if the code point isn't representable in the current locale.  Perl makes
+no attempt at hiding from your code any differences in the C<errno>
+setting between C<wctomb> and C<wcrtomb>.  It does set C<errno> to 0
+before calling them.
 
 =item C<write>
 
@@ -2204,6 +2348,9 @@ Create a set with C<SIGUSR1>.
 
        $sigset = POSIX::SigSet->new( &POSIX::SIGUSR1 );
 
+Throws an error if any of the signals supplied cannot be added to the
+set.
+
 =item C<addset>
 
 Add a signal to a SigSet object.
@@ -2253,7 +2400,7 @@ Tests the SigSet object to see if it contains a specific signal.
 =item C<new>
 
 Create a new Termios object.  This object will be destroyed automatically
-when it is no longer needed.  A Termios object corresponds to the termios
+when it is no longer needed.  A Termios object corresponds to the C<termios>
 C struct.  C<new()> mallocs a new one, C<getattr()> fills it from a file descriptor,
 and C<setattr()> sets a file descriptor's parameters to match Termios' contents.
 
@@ -2263,7 +2410,7 @@ and C<setattr()> sets a file descriptor's parameters to match Termios' contents.
 
 Get terminal control attributes.
 
-Obtain the attributes for stdin.
+Obtain the attributes for C<stdin>.
 
        $termios->getattr( 0 ) # Recommended for clarity.
        $termios->getattr()
@@ -2276,20 +2423,20 @@ Returns C<undef> on failure.
 
 =item C<getcc>
 
-Retrieve a value from the c_cc field of a termios object.  The c_cc field is
+Retrieve a value from the C<c_cc> field of a C<termios> object.  The C<c_cc> field is
 an array so an index must be specified.
 
        $c_cc[1] = $termios->getcc(1);
 
 =item C<getcflag>
 
-Retrieve the c_cflag field of a termios object.
+Retrieve the C<c_cflag> field of a C<termios> object.
 
        $c_cflag = $termios->getcflag;
 
 =item C<getiflag>
 
-Retrieve the c_iflag field of a termios object.
+Retrieve the C<c_iflag> field of a C<termios> object.
 
        $c_iflag = $termios->getiflag;
 
@@ -2301,13 +2448,13 @@ Retrieve the input baud rate.
 
 =item C<getlflag>
 
-Retrieve the c_lflag field of a termios object.
+Retrieve the C<c_lflag> field of a C<termios> object.
 
        $c_lflag = $termios->getlflag;
 
 =item C<getoflag>
 
-Retrieve the c_oflag field of a termios object.
+Retrieve the C<c_oflag> field of a C<termios> object.
 
        $c_oflag = $termios->getoflag;
 
@@ -2329,20 +2476,20 @@ Returns C<undef> on failure.
 
 =item C<setcc>
 
-Set a value in the c_cc field of a termios object.  The c_cc field is an
+Set a value in the C<c_cc> field of a C<termios> object.  The C<c_cc> field is an
 array so an index must be specified.
 
        $termios->setcc( &POSIX::VEOF, 1 );
 
 =item C<setcflag>
 
-Set the c_cflag field of a termios object.
+Set the C<c_cflag> field of a C<termios> object.
 
        $termios->setcflag( $c_cflag | &POSIX::CLOCAL );
 
 =item C<setiflag>
 
-Set the c_iflag field of a termios object.
+Set the C<c_iflag> field of a C<termios> object.
 
        $termios->setiflag( $c_iflag | &POSIX::BRKINT );
 
@@ -2356,13 +2503,13 @@ Returns C<undef> on failure.
 
 =item C<setlflag>
 
-Set the c_lflag field of a termios object.
+Set the C<c_lflag> field of a C<termios> object.
 
        $termios->setlflag( $c_lflag | &POSIX::ECHO );
 
 =item C<setoflag>
 
-Set the c_oflag field of a termios object.
+Set the C<c_oflag> field of a C<termios> object.
 
        $termios->setoflag( $c_oflag | &POSIX::OPOST );
 
@@ -2429,6 +2576,20 @@ C<_POSIX_TZNAME_MAX> C<_POSIX_VDISABLE> C<_POSIX_VERSION>
 
 =back
 
+=head1 RESOURCE CONSTANTS
+
+Imported with the C<:sys_resource_h> tag.
+
+=over 8
+
+=item Constants
+
+Added in Perl v5.28:
+
+C<PRIO_PROCESS> C<PRIO_PGRP> C<PRIO_USER>
+
+=back
+
 =head1 SYSTEM CONFIGURATION
 
 =over 8
@@ -2487,6 +2648,17 @@ C<LDBL_MAX_EXP> C<LDBL_MIN> C<LDBL_MIN_10_EXP> C<LDBL_MIN_EXP>
 
 =back
 
+=head1 FLOATING-POINT ENVIRONMENT
+
+=over 8
+
+=item Constants
+
+C<FE_DOWNWARD> C<FE_TONEAREST> C<FE_TOWARDZERO> C<FE_UPWARD>
+on systems that support them.
+
+=back
+
 =head1 LIMITS
 
 =over 8
@@ -2506,7 +2678,8 @@ C<UCHAR_MAX> C<UINT_MAX> C<ULONG_MAX> C<USHRT_MAX>
 
 =item Constants
 
-C<LC_ALL> C<LC_COLLATE> C<LC_CTYPE> C<LC_MONETARY> C<LC_NUMERIC> C<LC_TIME>
+C<LC_ALL> C<LC_COLLATE> C<LC_CTYPE> C<LC_MONETARY> C<LC_NUMERIC> C<LC_TIME> C<LC_MESSAGES>
+on systems that support them.
 
 =back
 
@@ -2518,6 +2691,14 @@ C<LC_ALL> C<LC_COLLATE> C<LC_CTYPE> C<LC_MONETARY> C<LC_NUMERIC> C<LC_TIME>
 
 C<HUGE_VAL>
 
+Added in Perl v5.22:
+
+C<FP_ILOGB0> C<FP_ILOGBNAN> C<FP_INFINITE> C<FP_NAN> C<FP_NORMAL> C<FP_SUBNORMAL> C<FP_ZERO>
+C<INFINITY> C<NAN> C<Inf> C<NaN>
+C<M_1_PI> C<M_2_PI> C<M_2_SQRTPI> C<M_E> C<M_LN10> C<M_LN2> C<M_LOG10E> C<M_LOG2E> C<M_PI>
+C<M_PI_2> C<M_PI_4> C<M_SQRT1_2> C<M_SQRT2>
+on systems with C99 support.
+
 =back
 
 =head1 SIGNAL
@@ -2532,6 +2713,15 @@ C<SIGKILL> C<SIGPIPE> C<SIGQUIT> C<SIGSEGV> C<SIGSTOP> C<SIGTERM> C<SIGTSTP> C<S
 C<SIGUSR1> C<SIGUSR2> C<SIG_BLOCK> C<SIG_DFL> C<SIG_ERR> C<SIG_IGN> C<SIG_SETMASK>
 C<SIG_UNBLOCK>
 
+Added in Perl v5.24:
+
+C<ILL_ILLOPC> C<ILL_ILLOPN> C<ILL_ILLADR> C<ILL_ILLTRP> C<ILL_PRVOPC> C<ILL_PRVREG> C<ILL_COPROC>
+C<ILL_BADSTK> C<FPE_INTDIV> C<FPE_INTOVF> C<FPE_FLTDIV> C<FPE_FLTOVF> C<FPE_FLTUND> C<FPE_FLTRES>
+C<FPE_FLTINV> C<FPE_FLTSUB> C<SEGV_MAPERR> C<SEGV_ACCERR> C<BUS_ADRALN> C<BUS_ADRERR>
+C<BUS_OBJERR> C<TRAP_BRKPT> C<TRAP_TRACE> C<CLD_EXITED> C<CLD_KILLED> C<CLD_DUMPED> C<CLD_TRAPPED>
+C<CLD_STOPPED> C<CLD_CONTINUED> C<POLL_IN> C<POLL_OUT> C<POLL_MSG> C<POLL_ERR> C<POLL_PRI>
+C<POLL_HUP> C<SI_USER> C<SI_QUEUE> C<SI_TIMER> C<SI_ASYNCIO> C<SI_MESGQ>
+
 =back
 
 =head1 STAT
@@ -2565,7 +2755,7 @@ C<EXIT_FAILURE> C<EXIT_SUCCESS> C<MB_CUR_MAX> C<RAND_MAX>
 
 =item Constants
 
-C<BUFSIZ> C<EOF> C<FILENAME_MAX> C<L_ctermid> C<L_cuserid> C<L_tmpname> C<TMP_MAX>
+C<BUFSIZ> C<EOF> C<FILENAME_MAX> C<L_ctermid> C<L_cuserid> C<TMP_MAX>
 
 =back
 
@@ -2656,3 +2846,27 @@ is true)
 
 =back
 
+=head1 WINSOCK
+
+(Windows only.)
+
+=over 8
+
+=item Constants
+
+Added in Perl v5.24:
+
+C<WSAEINTR> C<WSAEBADF> C<WSAEACCES> C<WSAEFAULT> C<WSAEINVAL> C<WSAEMFILE> C<WSAEWOULDBLOCK>
+C<WSAEINPROGRESS> C<WSAEALREADY> C<WSAENOTSOCK> C<WSAEDESTADDRREQ> C<WSAEMSGSIZE>
+C<WSAEPROTOTYPE> C<WSAENOPROTOOPT> C<WSAEPROTONOSUPPORT> C<WSAESOCKTNOSUPPORT>
+C<WSAEOPNOTSUPP> C<WSAEPFNOSUPPORT> C<WSAEAFNOSUPPORT> C<WSAEADDRINUSE>
+C<WSAEADDRNOTAVAIL> C<WSAENETDOWN> C<WSAENETUNREACH> C<WSAENETRESET> C<WSAECONNABORTED>
+C<WSAECONNRESET> C<WSAENOBUFS> C<WSAEISCONN> C<WSAENOTCONN> C<WSAESHUTDOWN>
+C<WSAETOOMANYREFS> C<WSAETIMEDOUT> C<WSAECONNREFUSED> C<WSAELOOP> C<WSAENAMETOOLONG>
+C<WSAEHOSTDOWN> C<WSAEHOSTUNREACH> C<WSAENOTEMPTY> C<WSAEPROCLIM> C<WSAEUSERS>
+C<WSAEDQUOT> C<WSAESTALE> C<WSAEREMOTE> C<WSAEDISCON> C<WSAENOMORE> C<WSAECANCELLED>
+C<WSAEINVALIDPROCTABLE> C<WSAEINVALIDPROVIDER> C<WSAEPROVIDERFAILEDINIT>
+C<WSAEREFUSED>
+
+=back
+