summaryrefslogtreecommitdiff
path: root/ext/POSIX
diff options
context:
space:
mode:
Diffstat (limited to 'ext/POSIX')
-rw-r--r--ext/POSIX/lib/POSIX.pm8
-rw-r--r--ext/POSIX/lib/POSIX.pod4
-rw-r--r--ext/POSIX/t/export.t4
-rw-r--r--ext/POSIX/t/math.t3
4 files changed, 17 insertions, 2 deletions
diff --git a/ext/POSIX/lib/POSIX.pm b/ext/POSIX/lib/POSIX.pm
index 2b339b7c8a..8461943a2f 100644
--- a/ext/POSIX/lib/POSIX.pm
+++ b/ext/POSIX/lib/POSIX.pm
@@ -4,7 +4,7 @@ use warnings;
our ($AUTOLOAD, %SIGRT);
-our $VERSION = '1.64';
+our $VERSION = '1.65';
require XSLoader;
@@ -445,7 +445,11 @@ my %other_export_tags = (
our @EXPORT = keys %export;
our @EXPORT_OK = (qw(close lchown nice open pipe read sleep times write
- printf sprintf),
+ printf sprintf lround),
+ # lround() should really be in @EXPORT and in the
+ # :math_h_c99 tag, but we're too far into the 5.24 code
+ # freeze for that to be done now. This can be revisited in
+ # the 5.25.x cycle.
grep {!exists $export{$_}} keys %reimpl, keys %replacement, keys %export_ok);
our %EXPORT_TAGS = ( %default_export_tags, %other_export_tags );
diff --git a/ext/POSIX/lib/POSIX.pod b/ext/POSIX/lib/POSIX.pod
index 904f3e9717..a31518fa50 100644
--- a/ext/POSIX/lib/POSIX.pod
+++ b/ext/POSIX/lib/POSIX.pod
@@ -1011,6 +1011,10 @@ Like L</round>, but as integer, as opposed to floating point [C99].
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. This will be changed in Perl 5.26.
+
=item C<malloc>
Not implemented. C<malloc()> is C-specific. Perl does memory management transparently.
diff --git a/ext/POSIX/t/export.t b/ext/POSIX/t/export.t
index aa7d78ccf7..5c37f83a07 100644
--- a/ext/POSIX/t/export.t
+++ b/ext/POSIX/t/export.t
@@ -166,6 +166,10 @@ my %expect = (
POLL_IN POLL_OUT POLL_MSG POLL_ERR POLL_PRI POLL_HUP
SI_USER SI_QUEUE SI_TIMER SI_ASYNCIO SI_MESGQ
),
+ # this was implemented in 5.21, but not exported; it was added to
+ # @EXPORT_OK late in 5.23, and will be added to :math_h_c99 tag early
+ # in 5.25
+ qw( lround ),
],
);
diff --git a/ext/POSIX/t/math.t b/ext/POSIX/t/math.t
index 869d1b710f..54067d1f02 100644
--- a/ext/POSIX/t/math.t
+++ b/ext/POSIX/t/math.t
@@ -4,6 +4,7 @@ use strict;
use POSIX ':math_h_c99';
use POSIX ':nan_payload';
+use POSIX 'lround';
use Test::More;
use Config;
@@ -118,6 +119,8 @@ SKIP: {
is(round(-2.5), -3, "round -2.5");
is(round(2.75), 3, "round 2.75");
is(round(-2.75), -3, "round 2.75");
+ is(lround(-2.75), -3, "lround -0.25");
+ is(signbit(lround(-0.25)), 0, "lround -0.25 -> +0"); # unlike round()
is(trunc(2.25), 2, "trunc 2.25");
is(trunc(-2.25), -2, "trunc -2.25");
is(trunc(2.5), 2, "trunc 2.5");