This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
6 years agoinfnan: test nan payload input/output
Jarkko Hietaniemi [Sat, 7 Feb 2015 20:09:05 +0000 (15:09 -0500)]
infnan: test nan payload input/output

6 years agoinfnan: add POSIX::issignaling
Jarkko Hietaniemi [Sat, 7 Feb 2015 22:27:24 +0000 (17:27 -0500)]
infnan: add POSIX::issignaling

The current best guess for the eventual name of the C interface.
(http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1664.pdf)

6 years agoinfnan: the nan quiet/signaling bit is not enough
Jarkko Hietaniemi [Sun, 8 Feb 2015 17:45:01 +0000 (12:45 -0500)]
infnan: the nan quiet/signaling bit is not enough

6 years agoinfnan: the x86 80-bit extended precision is special
Jarkko Hietaniemi [Sat, 7 Feb 2015 20:47:59 +0000 (15:47 -0500)]
infnan: the x86 80-bit extended precision is special

6 years agoinfnan: API context juggling
Jarkko Hietaniemi [Sun, 8 Feb 2015 00:39:55 +0000 (19:39 -0500)]
infnan: API context juggling

6 years agoinfnan: grok_number* setting the infnan NV directly
Jarkko Hietaniemi [Sat, 7 Feb 2015 20:07:08 +0000 (15:07 -0500)]
infnan: grok_number* setting the infnan NV directly

6 years agoinfnan: nan payload output with sprintf %#g
Jarkko Hietaniemi [Sat, 7 Feb 2015 19:42:47 +0000 (14:42 -0500)]
infnan: nan payload output with sprintf %#g

6 years agoinfnan: space for nan payload output
Jarkko Hietaniemi [Sat, 7 Feb 2015 19:48:22 +0000 (14:48 -0500)]
infnan: space for nan payload output

6 years agoinfnan: move S_hextract earlier
Jarkko Hietaniemi [Sat, 7 Feb 2015 19:31:25 +0000 (14:31 -0500)]
infnan: move S_hextract earlier

6 years agoinfnan: add grok_nan and grok_nan_payload
Jarkko Hietaniemi [Sat, 7 Feb 2015 19:28:30 +0000 (14:28 -0500)]
infnan: add grok_nan and grok_nan_payload

6 years agoinfnan: add nan_payload_set
Jarkko Hietaniemi [Sat, 7 Feb 2015 19:16:04 +0000 (14:16 -0500)]
infnan: add nan_payload_set

6 years agoinfnan: add nan_is_signaling
Jarkko Hietaniemi [Sat, 7 Feb 2015 18:12:33 +0000 (13:12 -0500)]
infnan: add nan_is_signaling

6 years agoinfnan: add nan_signaling_set
Jarkko Hietaniemi [Sat, 7 Feb 2015 14:29:31 +0000 (09:29 -0500)]
infnan: add nan_signaling_set

6 years agoinfnan: add nan_hibyte
Jarkko Hietaniemi [Sat, 7 Feb 2015 14:27:05 +0000 (09:27 -0500)]
infnan: add nan_hibyte

6 years agoinfnan: do not define NV_NAN from a signaling nan
Jarkko Hietaniemi [Sat, 7 Feb 2015 18:27:42 +0000 (13:27 -0500)]
infnan: do not define NV_NAN from a signaling nan

This is not a strong guarantee that the NV_NAN is a quiet NaN.

6 years agoRemove get-magic from $/
Father Chrysostomos [Sun, 8 Feb 2015 20:45:12 +0000 (12:45 -0800)]
Remove get-magic from $/

and use a different approach to prevent $/ from being set to a bad
value.

This should fix ticket #123739.  Commit v5.21.8-197-g5fe499a made
$/’s get-magic read PL_rs, so that the croak when setting $/ to a
bad value would not leave $/ with that bad value, in order to fix
bug #123218.

Some CPAN modules do not like $/ reading PL_rs that way.  So we
have to change this back.  I am not actually removing the get-
magic, but just making it a no-op, as it was before.  The set-
magic now sets $/ back to its previous value before croaking.

6 years agotest skip under miniperl
Jarkko Hietaniemi [Sun, 8 Feb 2015 13:52:41 +0000 (08:52 -0500)]
test skip under miniperl

6 years agoCorrect grammatical error in Benchmark POD.
James E Keenan [Sun, 8 Feb 2015 03:56:04 +0000 (22:56 -0500)]
Correct grammatical error in Benchmark POD.

Increment $VERSION and add entry to perldelta.

6 years ago[perl #123753] Assert fail with &{+foo} and errors
Father Chrysostomos [Sun, 8 Feb 2015 03:22:00 +0000 (19:22 -0800)]
[perl #123753] Assert fail with &{+foo} and errors

This fixes the problem mentioned in 3c47da3c2e with an op address
being used as flags.  '&' not followed by a identifier was being fed
to the parser with a stale token value, left over from the previous
token that had a value, which might be an op address.  This would
cause the flags on the op to vary randomly.

Usually the rv2cv op created this way is nulled, but if there is a
syntax error it may be freed before that happens.  And it is when the
op is freed that the private flags are checked to make sure no invalid
flags have been set.

The test added to t/op/lex.t used to fail an assertion (for me) more
than half the time, but not always, because the 0x10 bit was being set
in op_private (rv2cv does not use that bit).

6 years agotoke.c: Remove redundant PL_expect assignment
Father Chrysostomos [Sun, 8 Feb 2015 03:10:06 +0000 (19:10 -0800)]
toke.c: Remove redundant PL_expect assignment

As of v5.21.3-105-gc5e7362, force_ident no longer reads the value of
PL_expect, so the assignment can come after it.  And TERM('&') (just
after this if-statement) already assigns XOPERATOR to PL_expect.

6 years agoperly.y: Remove types for '$' and '*'
Father Chrysostomos [Sat, 7 Feb 2015 18:06:39 +0000 (10:06 -0800)]
perly.y: Remove types for '$' and '*'

These two tokens never use their value, and the value is not even set
in toke.c, which means it will contain a junk value from some previous
token.  Removing the types prevents that junk value from being acci-
dentally used.

6 years ago[perl #123753] &\0foo parsing
Father Chrysostomos [Sat, 7 Feb 2015 18:04:40 +0000 (10:04 -0800)]
[perl #123753] &\0foo parsing

Normally the lexer skips over stray nulls, treating them as white-
space.  After a sigil, though, it was getting confused.  While $\0foo
would work and was equivalent to $foo (but did not work for lexicals),
$\0eq was a syntax error.  Some cases of &\0foo would cause assertion
failures or outright buggy behaviour, such as strictures randomly
turning on and off.

There were two problems occurring:
1) Nulls were not being treated as whitespace right after a sigil,
   unlike elsewhere.
2) '&' not followed immediately by an identifier was not getting
   pl_yylval set, so the previous value, which might be an op address,
   was being passed as a flags parameter to an op constructor.  (The
   other sigil tokens never use their values.)

This commit addresses the first of those.  I still need to investigate
whether the second can still cause problems.

6 years agot/op/lex.t: Add comment about the file’s purpose
Father Chrysostomos [Sat, 7 Feb 2015 15:32:19 +0000 (07:32 -0800)]
t/op/lex.t: Add comment about the file’s purpose

6 years agoloc_tools.pl: do a 'require' before module's function call
Karl Williamson [Tue, 27 Jan 2015 18:41:55 +0000 (11:41 -0700)]
loc_tools.pl: do a 'require' before module's function call

This was failing to do the require before testing if the function in the
module existed, so if the require hadn't been done by someone else, it
would show as not existing, and so would fail unnecessarily.

The other fix is to not assume the require has been done, so in the
right circumstances, this could have an undefined function error.  But
all current uses had already done the require, so this bug has yet to
show up.

6 years agoregexec.c: Rmv 2 unused macro parameters.
Karl Williamson [Tue, 27 Jan 2015 05:40:28 +0000 (22:40 -0700)]
regexec.c: Rmv 2 unused macro parameters.

6 years agoFix quoting in new switchd.t test.
Craig A. Berry [Fri, 6 Feb 2015 23:31:43 +0000 (17:31 -0600)]
Fix quoting in new switchd.t test.

Escaped double quotes are not portable, but luckily we don't need
to worry about what is portable as runperl will take care of it for
us if we leave things in its capable hands.

Follow-up to 8d28fc8f69270cc75d9564.

6 years agoGeneralize Carp for non-ASCII platforms
Karl Williamson [Thu, 11 Dec 2014 19:29:49 +0000 (12:29 -0700)]
Generalize Carp for non-ASCII platforms

This includes making some {} optional in arg_regexp.t, as I couldn't get
them to consistently appear.

6 years agoCarp: Fix off-by-one error for early Perl versions
Karl Williamson [Thu, 11 Dec 2014 19:37:01 +0000 (12:37 -0700)]
Carp: Fix off-by-one error for early Perl versions

This error occurred only when running Perl before 5.14, and included DEL
as a printable instead of excluding it.

6 years agoIncrement Carp version to 0.35
Karl Williamson [Fri, 6 Feb 2015 22:10:48 +0000 (15:10 -0700)]
Increment Carp version to 0.35

6 years agoDeparse: Don’t choke on SPECIAL constants
Father Chrysostomos [Wed, 24 Dec 2014 06:34:10 +0000 (22:34 -0800)]
Deparse: Don’t choke on SPECIAL constants

Some modules, e.g., POSIX, create constants in the form of references
to immortals in the stash.  B::Deparse started croaking on these in
v5.21.6-584-g03b8f76.

$ ./perl -Ilib -MO=Deparse -MPOSIX -e0
Can't locate object method "FLAGS" via package "B::SPECIAL" at lib/B/Deparse.pm line 745.
CHECK failed--call queue aborted.

At the same time I fixed the stash-probing code, I also had to fix
deparsing of \!0, which had the same bug.

6 years agoperlvar typo
Father Chrysostomos [Fri, 6 Feb 2015 20:42:34 +0000 (12:42 -0800)]
perlvar typo

6 years agoperlvar: further clarify version number representations and usage
David Golden [Fri, 6 Feb 2015 20:08:21 +0000 (15:08 -0500)]
perlvar: further clarify version number representations and usage

6 years agot/run/locale.t: Remove obsolete comments
Karl Williamson [Fri, 6 Feb 2015 17:34:19 +0000 (10:34 -0700)]
t/run/locale.t: Remove obsolete comments

STDERR is now completely turned off.

6 years agolocale.c: savepv() of getenv()
Karl Williamson [Fri, 6 Feb 2015 17:21:01 +0000 (10:21 -0700)]
locale.c: savepv() of getenv()

See https://rt.perl.org/Public/Bug/Display.html?id=123748.

This also changes a '0' into a FALSE when initializing a boolean, which
I consider clearer.

6 years agolocale.c: Fix comment
Karl Williamson [Fri, 6 Feb 2015 17:18:39 +0000 (10:18 -0700)]
locale.c: Fix comment

6 years ago[perl #123753] Fix assertion failure with map+map
Father Chrysostomos [Fri, 6 Feb 2015 18:14:47 +0000 (10:14 -0800)]
[perl #123753] Fix assertion failure with map+map

ck_grep calls ck_fun, which sets the lower private bits to indicate
the number of operands.  ck_grep usually undoes that, by clobbering
op_private completetly.  If an error has occurred, it doesn’t, so we
may fail an assertion if the lower bits are not expected to be set on
mapstart and grepstart.

6 years ago[perl #123737] Fix assertion failure with 0${
Father Chrysostomos [Fri, 6 Feb 2015 16:25:14 +0000 (08:25 -0800)]
[perl #123737] Fix assertion failure with 0${

S_no_op, which displays ‘Foo found where operator expected’, assumes
that PL_bufptr points to the beginning of the token, but that was not
the case for ${ at the end of a line.  The attempt to read more into
the buffer would make PL_bufptr point to the end of the line.  This
meant it would use a negative string length when generating the
‘(Missing operator before foo?)’ text, only accidentally escaping a
crash.  On debugging builds, it failed an assertion.

6 years agoperlvar: revise $] and $^V with less bias
David Golden [Fri, 6 Feb 2015 11:37:03 +0000 (06:37 -0500)]
perlvar: revise $] and $^V with less bias

6 years agoUpdate Encode to CPAN version 2.70
Chris 'BinGOs' Williams [Fri, 6 Feb 2015 12:00:27 +0000 (12:00 +0000)]
Update Encode to CPAN version 2.70

  [DELTA]

$Revision: 2.70 $ $Date: 2015/02/05 10:53:00 $
! Makefile.PL
  add bin/encguess to EXE_FILES

2.69 2015/02/05 10:35:11
! bin/encguess
  Refactored so that
  * does not depend on non-core module (File::Slurp in particular)
  * PODified document
  * -s "encA encB" to -s encA,encB which is more shell-friendly
  * and more
! MANIFEST
+ bin/encguess
  Pulled: Added CLI wrapper for Encode::Guess
  https://github.com/dankogai/p5-encode/pull/32
! Unicode/Unicode.pm
  Pulled: Bump $VERSION in module changed since Encode-2.60
  https://github.com/dankogai/p5-encode/pull/31

6 years ago[perl #123748] - Add test case for possible getenv/putenv/setenv stomping in perl.c
Matthew Horsfall (alh) [Fri, 6 Feb 2015 03:24:01 +0000 (22:24 -0500)]
[perl #123748] - Add test case for possible getenv/putenv/setenv stomping in perl.c

6 years agoFix setenv() replacement documentation in perlclib
Dagfinn Ilmari Mannsåker [Thu, 5 Feb 2015 21:37:08 +0000 (21:37 +0000)]
Fix setenv() replacement documentation in perlclib

my_putenv doesn't exist, the function is called my_setenv

6 years agoregcomp.c: Warn on [:^posix:] not being in []
Karl Williamson [Thu, 5 Feb 2015 20:07:38 +0000 (13:07 -0700)]
regcomp.c: Warn on [:^posix:] not being in []

A POSIX character class is has to be in a bracketed character class.  A
warning is issued when something appearing to be one is found outside.
Until this commit the warning wasn't raised for negated classes.

6 years agoext/re/re.pm: Fix comment
Karl Williamson [Thu, 5 Feb 2015 15:38:52 +0000 (08:38 -0700)]
ext/re/re.pm: Fix comment

6 years agore.pm: White-space only
Karl Williamson [Wed, 4 Feb 2015 19:34:04 +0000 (12:34 -0700)]
re.pm: White-space only

Fix some indents, vertically align ternary

6 years agotoke.c: Remove redundant PL_lex_stuff null checks
Father Chrysostomos [Thu, 5 Feb 2015 06:03:03 +0000 (22:03 -0800)]
toke.c: Remove redundant PL_lex_stuff null checks

In these three code paths, PL_lex_stuff is never null, so there is no
need to check that.

6 years agoLocalise PL_lex_stuff (crash fix)
Father Chrysostomos [Thu, 5 Feb 2015 05:30:36 +0000 (21:30 -0800)]
Localise PL_lex_stuff (crash fix)

This fixes crashes and assertion failures related to ticket #123617.

When the lexer encounters a quote-like operator, it scans for the
final delimiter, putting the string in PL_lex_stuff and the replace-
ment, if any, in PL_sublex_info.repl.  Those are just temporary spots
for those values.  As soon as the next token is emitted (FUNC or
PMFUNC), the values are copied to PL_linestr and PL_lex_repl, respec-
tively, after these latter have been localised.

When scan_str (which scans a quote-like op) sees that PL_lex_stuff is
already set, it assumes that it is now parsing a replacement, so it
puts the result in PL_sublex_info.repl.

The FUNC or PMFUNC token for a quote-like operator may trigger a syn-
tax error while PL_lex_stuff and PL_sublex_info.repl are still set.  A
syntax error can cause scopes to be popped, discarding the inner lex-
ing scope (for the quote op) that we were about to enter, but leaving
a PL_lex_stuff value behind.

If another quote-like op is parsed after that, scan_str will assume it
is parsing a replacement since PL_lex_stuff is set.  So you can end up
with a replacement for an op of type OP_MATCH, which is not supposed
to happen.  S_sublex_done fails an assertion in that case.  Some exam-
ples of this bug crash later on non-debugging builds.

Localising PL_lex_stuff fixes the problem.

6 years agoFix double free with const overload after errors
Father Chrysostomos [Thu, 5 Feb 2015 06:11:06 +0000 (22:11 -0800)]
Fix double free with const overload after errors

The PL_lex_stuff variable in the parser struct is reference-counted.
Yet, in toke.c:S_sublex_start we pass the value to S_tokeq, which may
pass it to S_new_constant, which takes ownership of the reference
count (possibly freeing or mortalising the SV), and then relinquishes
its ownership of the returned SV (incrementing the reference count if
it is the same SV passed to it).  If S_new_constant croaks, then it
will have mortalised the SV passed to it while PL_lex_stuff still
points to it.

This example makes S_new_constant croak indirectly, by causing its
yyerror call to croak because of the number of errors:

$ perl5.20.1 -e 'BEGIN { $^H|=0x8000} undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); "a"'
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Constant(q) unknown at -e line 1, near ";"a""
-e has too many errors.
Attempt to free unreferenced scalar: SV 0x7fb49882fae8 at -e line 1.

6 years agotoke.c: Use SvREFCNT_dec_NN in one spot
Father Chrysostomos [Thu, 5 Feb 2015 05:31:29 +0000 (21:31 -0800)]
toke.c: Use SvREFCNT_dec_NN in one spot

6 years agoperlop: document use of fc() for case-insensitive comparisons
David Golden [Thu, 5 Feb 2015 15:31:10 +0000 (10:31 -0500)]
perlop: document use of fc() for case-insensitive comparisons

6 years agoPOSIX version bump
Jarkko Hietaniemi [Thu, 5 Feb 2015 13:11:13 +0000 (08:11 -0500)]
POSIX version bump

6 years agoPOSIX math: if long double, long double the math consts
Jarkko Hietaniemi [Thu, 5 Feb 2015 13:08:51 +0000 (08:08 -0500)]
POSIX math: if long double, long double the math consts

6 years agoPOSIX math: tgamma/lgamma logic
Jarkko Hietaniemi [Thu, 5 Feb 2015 12:25:39 +0000 (07:25 -0500)]
POSIX math: tgamma/lgamma logic

6 years agoAIX long double lies about many math APIs.
Jarkko Hietaniemi [Thu, 5 Feb 2015 12:14:04 +0000 (07:14 -0500)]
AIX long double lies about many math APIs.

6 years ago[PATCH] fix PL_nan_u from leaking in every translation object on Win32 VC
Daniel Dragan [Wed, 31 Dec 2014 20:58:07 +0000 (15:58 -0500)]
[PATCH] fix PL_nan_u from leaking in every translation object on Win32 VC

6 years agoinfnan: more NV_SNAN/NV_QNAN
Jarkko Hietaniemi [Thu, 5 Feb 2015 03:06:10 +0000 (22:06 -0500)]
infnan: more NV_SNAN/NV_QNAN

6 years agoMake 'no re' work
Karl Williamson [Wed, 4 Feb 2015 17:31:15 +0000 (10:31 -0700)]
Make 'no re' work

A plain 'no re'; without subpragmas prior to this commit only turned off
a few things.  Now it turns off all the enabled things.  For example,
previously, you couldn't turn off debugging, once enabled, inside the
same block.

6 years agoext/re/t/re.t: Use variable instead of constants
Karl Williamson [Wed, 4 Feb 2015 18:39:32 +0000 (11:39 -0700)]
ext/re/t/re.t: Use variable instead of constants

There are multiple occurrences of these constants in the file.  It's
better to use a variable than to repeat them.

6 years agore.pm: Bump version to 0.31
Karl Williamson [Wed, 4 Feb 2015 18:46:08 +0000 (11:46 -0700)]
re.pm: Bump version to 0.31

6 years agoPrefer NV instead of long double.
Jarkko Hietaniemi [Tue, 3 Feb 2015 23:20:40 +0000 (18:20 -0500)]
Prefer NV instead of long double.

Background: sprintf aka sv_vcatpvn_flags uses a long double for
floating point values whenever has-long-double, not only when
use-long-double.  The (only?) reason for this is being able to
(perlio) printf long doubles from XS, even if no use-long-double.
(see ext/XS-APItest/t/printf.t)

Instead of casting the long double (explicitly or implicitly),
try keeping also an NV in sync, and using it.  Could probably
use the NV even more, but trying to stay minimal given the
impending 5.22.

6 years agoinfnan: in case NaN is broken by being zero, avoid dividing by it
Jarkko Hietaniemi [Wed, 4 Feb 2015 11:48:07 +0000 (06:48 -0500)]
infnan: in case NaN is broken by being zero, avoid dividing by it

So that the test doesn't die too early.

6 years agoperldelta for 5fe499a8e262
Tony Cook [Wed, 4 Feb 2015 05:34:58 +0000 (16:34 +1100)]
perldelta for 5fe499a8e262

6 years ago[perl #123218] "preserve" $/ if set to a bad value
Tony Cook [Wed, 4 Feb 2015 05:10:20 +0000 (16:10 +1100)]
[perl #123218] "preserve" $/ if set to a bad value

and base/rs.t tests $/ not $!

6 years agoLukas Mai has two email addresses.
James E Keenan [Wed, 4 Feb 2015 01:20:01 +0000 (20:20 -0500)]
Lukas Mai has two email addresses.

6 years agostatic_assert workaround for AIX/xlc
Lukas Mai [Tue, 2 Dec 2014 04:12:00 +0000 (23:12 -0500)]
static_assert workaround for AIX/xlc

6 years agoinfnan: fixup for 02e75e52
Jarkko Hietaniemi [Tue, 3 Feb 2015 12:42:10 +0000 (07:42 -0500)]
infnan: fixup for 02e75e52

6 years agofix B.xs on win builds
David Mitchell [Tue, 3 Feb 2015 10:15:52 +0000 (10:15 +0000)]
fix B.xs on win builds

My recent commit c3890f9c66 appears to have broken win32 builds,
I guess because it doesn't like the args to the macro sv_setsv() being
spilt across #idfef's. So don't do that.

6 years agoperldelta for 41c9461801eb6e56138478ad9229a3337b4da2b2
James E Keenan [Tue, 3 Feb 2015 03:01:54 +0000 (22:01 -0500)]
perldelta for 41c9461801eb6e56138478ad9229a3337b4da2b2

6 years agoUpdate POSIX version number.
James E Keenan [Tue, 3 Feb 2015 03:00:23 +0000 (22:00 -0500)]
Update POSIX version number.

6 years agoUse HAS_LLRINTL, HAS_LLROUNDL, HAS_LRINTL, HAS_LROUNDL
Jarkko Hietaniemi [Mon, 2 Feb 2015 22:25:52 +0000 (17:25 -0500)]
Use HAS_LLRINTL, HAS_LLROUNDL, HAS_LRINTL, HAS_LROUNDL

6 years agoConfigure: lrintl, lroundl, llrintl, llroundl
Jarkko Hietaniemi [Mon, 2 Feb 2015 22:26:16 +0000 (17:26 -0500)]
Configure: lrintl, lroundl, llrintl, llroundl

6 years agoperldelta for 76e83594d2dc
Tony Cook [Tue, 3 Feb 2015 00:37:10 +0000 (11:37 +1100)]
perldelta for 76e83594d2dc

6 years agoReverse 'const static' to avoid 'old-style-declaration' warning.
James E Keenan [Sun, 1 Feb 2015 01:44:27 +0000 (20:44 -0500)]
Reverse 'const static' to avoid 'old-style-declaration' warning.

6 years agoinfnan: define NV_QNAN and NV_SNAN if feasible
Jarkko Hietaniemi [Sun, 1 Feb 2015 17:16:59 +0000 (12:16 -0500)]
infnan: define NV_QNAN and NV_SNAN if feasible

6 years agoinfnan: comment tweak, IS_NUMBER_NOT_INT also if saw infnan
Jarkko Hietaniemi [Fri, 30 Jan 2015 02:21:35 +0000 (21:21 -0500)]
infnan: comment tweak, IS_NUMBER_NOT_INT also if saw infnan

6 years agoinfnan: define NV_NAN (and NV_QNAN, NV_SNAN) if sunmath
Jarkko Hietaniemi [Sun, 1 Feb 2015 17:17:41 +0000 (12:17 -0500)]
infnan: define NV_NAN (and NV_QNAN, NV_SNAN) if sunmath

6 years agoAdd NV_MANT_REAL_DIG.
Jarkko Hietaniemi [Sun, 1 Feb 2015 00:02:22 +0000 (19:02 -0500)]
Add NV_MANT_REAL_DIG.

6 years agoAdd NV_IMPLICIT_BIT define.
Jarkko Hietaniemi [Thu, 29 Jan 2015 02:00:59 +0000 (21:00 -0500)]
Add NV_IMPLICIT_BIT define.

6 years agoAdd NV_MIX_ENDIAN define.
Jarkko Hietaniemi [Thu, 29 Jan 2015 01:42:57 +0000 (20:42 -0500)]
Add NV_MIX_ENDIAN define.

6 years agoAdd NV_LITTLE_ENDIAN and NV_BIG_ENDIAN defines.
Jarkko Hietaniemi [Thu, 29 Jan 2015 01:41:44 +0000 (20:41 -0500)]
Add NV_LITTLE_ENDIAN and NV_BIG_ENDIAN defines.

6 years agoWrong ifdef guard.
Jarkko Hietaniemi [Thu, 29 Jan 2015 01:38:04 +0000 (20:38 -0500)]
Wrong ifdef guard.

6 years agoAdd DOUBLE_BIG_ENDIAN define.
Jarkko Hietaniemi [Thu, 29 Jan 2015 01:37:09 +0000 (20:37 -0500)]
Add DOUBLE_BIG_ENDIAN define.

6 years agoMove the endianness defines from sv.c to perl.h
Jarkko Hietaniemi [Thu, 29 Jan 2015 01:34:24 +0000 (20:34 -0500)]
Move the endianness defines from sv.c to perl.h

6 years agotoke.c: Simplify \N{U+...} code
Father Chrysostomos [Mon, 2 Feb 2015 06:38:00 +0000 (22:38 -0800)]
toke.c: Simplify \N{U+...} code

If we are parsing a \N{U+XXX.YYY} construct in a regexp literal, we do
not need to pass it to grok_hex, because we do not need the numeric
value at this point.  The regexp engine will be calling grok_hex
again, after all.  A simple scan for hex digits should be faster, and
makes the code a little simpler, too.

6 years agoadd $B::OP::does_parent variable
David Mitchell [Mon, 2 Feb 2015 17:05:23 +0000 (17:05 +0000)]
add $B::OP::does_parent variable

This will help people write B:: code that can, in a backwards-compatible way,
handle the parent method that has recently been added, and whose behaviour
varies depending on whether perl was built with PERL_OP_PARENT.

6 years ago"A" =~ '\N{U+41}' (partial) should be true on all platforms
Karl Williamson [Mon, 2 Feb 2015 04:28:54 +0000 (21:28 -0700)]
"A" =~ '\N{U+41}' (partial) should be true on all platforms

The code for handling this only worked in double-quotish contexts.  To
make it work in single-quotish areas as well, it needs to be moved out
of toke.c, and corresponding code added to regcomp.c.  This commit does
just the portion that removes the code from toke.c.  The other portion
hasn't been fully debugged yet.  This means that blead will now fail on
EBCDIC platforms in double-quotish contexts.  But EBCDIC platforms
aren't fully supported in blead currently anyway.

The reason this partial commit is being pushed to blead now is that its
absence is blocking other work in toke.c

Spotted by Father Chrysostomos

6 years agoregcomp.c: Fix typos in variable name
Karl Williamson [Fri, 23 Jan 2015 16:18:09 +0000 (09:18 -0700)]
regcomp.c: Fix typos in variable name

This caused EBCDIC builds to fail

6 years ago[perl #123711] Fix crash with 0-5x-l{0}
Father Chrysostomos [Sun, 1 Feb 2015 22:04:33 +0000 (14:04 -0800)]
[perl #123711] Fix crash with 0-5x-l{0}

perl-5.8.0-117-g6f33ba7, which added the XTERMORDORDOR hack, did not
change the leftbracket code to treat XTERMORDORDOR the same way as
XTERM, so -l {0} and getc {0} (among other ops) were treating {...} as
a block, rather than an anonymous hash.  This was not, however, being
turned into a real block with enter/leave ops to protect the stack,
so the nextstate op was corrupting the stack and possibly freeing mor-
tals in use.

This commit makes the leftbracket code check for XTERMORDORDOR and
treat it like XTERM, so that -l {0} once more creates an anonymous
hash.  There is really no way to get to that hash, though, so all I
can test for is the crash.

6 years agoperlmodstyle: point people to PrePAN, not modules list
David Golden [Sun, 1 Feb 2015 14:08:58 +0000 (09:08 -0500)]
perlmodstyle: point people to PrePAN, not modules list

This harmonizes perlmodstyle with the guidance on PAUSE for getting
feedback.  Having new authors email modules@perl.org is not a good
use of PAUSE admin time.

6 years agoTicket number for bitops in perlexperiment
Father Chrysostomos [Sun, 1 Feb 2015 06:14:01 +0000 (22:14 -0800)]
Ticket number for bitops in perlexperiment

6 years ago[Merge] [perl #123466] New experimental bitops
Father Chrysostomos [Sun, 1 Feb 2015 06:04:04 +0000 (22:04 -0800)]
[Merge] [perl #123466] New experimental bitops

Under ‘use experimental "bitwise"’, & ! ^ ~ are now strictly numeric
ops and &. |. ^. ~. are new ops that treat their arguments as strings.

6 years agoIncrease $B::Deparse::VERSION to 1.33
Father Chrysostomos [Sun, 1 Feb 2015 02:26:53 +0000 (18:26 -0800)]
Increase $B::Deparse::VERSION to 1.33

6 years agooverload.pm: Document fifth arg for &|^~
Father Chrysostomos [Fri, 9 Jan 2015 06:13:02 +0000 (22:13 -0800)]
overload.pm: Document fifth arg for &|^~

6 years ago5th arg to indicate numeric bitwise overloading
Father Chrysostomos [Fri, 9 Jan 2015 16:45:28 +0000 (08:45 -0800)]
5th arg to indicate numeric bitwise overloading

6 years agooverload.pm: Typo
Father Chrysostomos [Fri, 9 Jan 2015 06:20:12 +0000 (22:20 -0800)]
overload.pm: Typo

6 years agopp_hot.c: Note that amagic_call calls pp_pushmark
Father Chrysostomos [Fri, 9 Jan 2015 06:19:38 +0000 (22:19 -0800)]
pp_hot.c: Note that amagic_call calls pp_pushmark

6 years agoMention experimental bitops in perlexperiment
Father Chrysostomos [Mon, 5 Jan 2015 01:48:26 +0000 (17:48 -0800)]
Mention experimental bitops in perlexperiment

6 years agofeature.pm: Document the bitwise feature
Father Chrysostomos [Mon, 5 Jan 2015 01:45:19 +0000 (17:45 -0800)]
feature.pm: Document the bitwise feature

6 years agoDocument string- and number-specific bitops in perlop
Father Chrysostomos [Mon, 5 Jan 2015 01:36:53 +0000 (17:36 -0800)]
Document string- and number-specific bitops in perlop

6 years agooverload.t: Test experimental bitops
Father Chrysostomos [Mon, 5 Jan 2015 01:13:12 +0000 (17:13 -0800)]
overload.t: Test experimental bitops

6 years agogv.c: Make &.= overloading work
Father Chrysostomos [Mon, 5 Jan 2015 01:12:11 +0000 (17:12 -0800)]
gv.c: Make &.= overloading work