In perl.git, the branch smoke-me/khw-blead has been created
<http://perl5.git.perl.org/perl.git/commitdiff/9d68dba11fd63ad66354452a0c8989e4c569795b?hp=0000000000000000000000000000000000000000>
at 9d68dba11fd63ad66354452a0c8989e4c569795b (commit)
- Log -----------------------------------------------------------------
commit 9d68dba11fd63ad66354452a0c8989e4c569795b
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 19:01:22 2014 -0800
perl5220delta: Function::Parameters is fixed
And it was fixed a month ago. I missed it.
M Porting/perl5220delta.pod
commit c130caa1805e1f490e73aed73444006d0a40f49d
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 18:02:49 2014 -0800
op.c: Use ASSUME in multideref code
Under non-debugging builds, this gives the compiler hints about what
optimisations it can take. With clang, I see a slight reduction in
the size of op.o:
$ ls -l op.o
-rw-r--r-- 1 sprout staff 192480 Dec 20 18:00 op.o
$ ls -l op.o
-rw-r--r-- 1 sprout staff 192432 Dec 20 18:01 op.o
M op.c
commit 57ee255ea7360fa9753a3025f9f8751ea6340d7d
Author: Father Chrysostomos <[email protected]>
Date: Fri Dec 19 16:57:47 2014 -0800
op.c: Skip allocating entersub targ for Perl sub
The target of entersub ops is only used by XSUBs to return things.
Pure-Perl subs donât use the target. (And if a pure-Perl sub is
later replaced with an XS one, dXSTARG already has a workaround.)
M op.c
M opcode.h
M regen/opcodes
commit 71b44dba0356e9051049c5bae6fa1ac981114332
Author: Father Chrysostomos <[email protected]>
Date: Sun Dec 21 07:08:25 2014 -0800
Increase $Data::Dumper::VERSION to 2.156
M dist/Data-Dumper/Dumper.pm
commit 1d81070ca144bd13aff541b3c7f6054dce2c7429
Author: Father Chrysostomos <[email protected]>
Date: Sun Dec 21 07:07:51 2014 -0800
Increase $Opcode::VERSION to 1.31
M ext/Opcode/Opcode.pm
commit 3891fb2fc9427c44fcc1e3a21425c2ddc38f7522
Author: Father Chrysostomos <[email protected]>
Date: Sun Dec 21 07:07:21 2014 -0800
Increase $POSIX::VERSION to 1.49
M ext/POSIX/lib/POSIX.pm
commit 374afbe1381d78c82d38baba9b43eb79954c6946
Author: Father Chrysostomos <[email protected]>
Date: Sun Dec 21 07:06:58 2014 -0800
Increase $arybase::VERSION to 0.10
M ext/arybase/arybase.pm
commit 03b8ad7c28727a9b66afb019ddc40d44b81e79b4
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 19:08:38 2014 -0800
deparse-skips.txt: op/gv.t is failing
M Porting/deparse-skips.txt
commit 7143f21c482af816521c0e2affd8270cb71e7f9a
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 07:14:01 2014 -0800
Disallow GIMME in ext/
Itâs an inefficient macro, so we donât want it inadvertently
used again.
M op.h
commit 0ca025e47604534f75322628e0f120cfcf8ccd2c
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 07:10:34 2014 -0800
Increase $VMS::DCLsym::VERSION to 1.06
M ext/VMS-DCLsym/DCLsym.pm
commit 7279e36881f8e795229e1801985b4bde90e8c6b9
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 07:10:01 2014 -0800
Increase $Safe::VERSION to 2.39
M dist/Safe/Safe.pm
commit a89f9420b425626f009d1ec2f4137f8aee296940
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 07:09:13 2014 -0800
Remove bogus ST(0) assignment from DCLsym.xs
If we are using PPCODE, then simply assigning to ST(0) wonât return
the value, unless we also do SP++. So this function has been return-
ing an empty list on failure and the ST(0) assignment has been
doing nothing.
M ext/VMS-DCLsym/DCLsym.xs
commit 7a30efb0690a79ec5b73a44d8d8dc26e51f5814c
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 07:05:56 2014 -0800
Remove bogus GIMME check from DCLsym.xs
GIMME used to return 0 for scalar context. As of 5.12, it never
returns 0. As it happens, this function (_getsym) is only ever called
in one spot (by getsym) and in list context. So donât even bother
with the check.
M ext/VMS-DCLsym/DCLsym.xs
commit de915ff5c336595e7d97c39f774b25be56a685be
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 06:55:36 2014 -0800
Use GIMME_V in POSIX
GIMME_V is a simpler macro that results in smaller machine code.
M ext/POSIX/POSIX.xs
commit be6d3c15968f42201520d9a3b83b92e839bbc6c5
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 06:54:52 2014 -0800
Use GIMME_V in Opcode
GIMME_V is a simpler macro that results in smaller machine code.
M ext/Opcode/Opcode.xs
commit 1cc1a1a3a2a7e06aef7fbe3404b81061ea641b7a
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 06:52:29 2014 -0800
Safe Changes update
M dist/Safe/Changes
commit 2e4af4cf6b38b2c5a571e1232ee507b8a01cda8a
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 06:50:12 2014 -0800
Propagate context properly in Safe->reval
(or, rather, in Opcode.xs).
It was providing scalar context when invoked in void context. Test-
ing Safe->reval itself is complicated, because Opcode.xs, which is an
essential part of the fix, is not dual-life.
M dist/Safe/Safe.pm
M dist/Safe/t/safe2.t
M ext/Opcode/Opcode.xs
M ext/Opcode/t/Opcode.t
commit cee11a521f0966a42b8be1949f915e0c926c9f20
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 06:50:08 2014 -0800
Use GIMME_V in arybase
GIMME_V is a simpler macro that results in smaller machine code.
M ext/arybase/arybase.xs
commit 59421c01e9828b05d4753dff9143f374191887ee
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 05:39:51 2014 -0800
Use GIMME_V in Data::Dumper
GIMME_V is a simpler macro that results in smaller machine code.
M dist/Data-Dumper/Dumper.xs
commit c379aaf4d7a20df8c2c6eeb4f901037b9c3057bb
Author: Max Maischein <[email protected]>
Date: Sun Dec 21 12:14:24 2014 +0100
Missed the %deprecated entry in Module::CoreList
M dist/Module-CoreList/lib/Module/CoreList.pm
commit e31034da4547cf4bcecd416395eff1d626de25d1
Author: Max Maischein <[email protected]>
Date: Sun Dec 21 11:18:45 2014 +0100
Bump version number to 5.21.8
Add 5.21.8 in Module::CoreList
Point Maintainers.pl to new version of Module::CoreList
M Cross/config.sh-arm-linux
M Cross/config.sh-arm-linux-n770
M INSTALL
M META.json
M META.yml
M NetWare/Makefile
M NetWare/config_H.wc
M Porting/Maintainers.pl
M Porting/config.sh
M Porting/config_H
M Porting/perl5220delta.pod
M Porting/perldelta_template.pod
M Porting/todo.pod
M README.haiku
M README.macosx
M README.os2
M README.vms
M dist/Module-CoreList/lib/Module/CoreList.pm
M dist/Module-CoreList/lib/Module/CoreList/TieHashDelta.pm
M dist/Module-CoreList/lib/Module/CoreList/Utils.pm
M hints/catamount.sh
M intrpvar.h
M lib/B/Op_private.pm
M patchlevel.h
M plan9/config.plan9
M plan9/config_sh.sample
M win32/Makefile
M win32/makefile.mk
commit b5d4d3b9564344c8ca047e569368a82016215fa3
Author: Max Maischein <[email protected]>
Date: Sun Dec 21 10:36:04 2014 +0100
Create new perldelta
M MANIFEST
M Makefile.SH
M pod/.gitignore
M pod/perl.pod
A pod/perl5217delta.pod
M pod/perldelta.pod
M vms/descrip_mms.template
M win32/Makefile
M win32/makefile.mk
M win32/pod.mak
commit d171d861d6628c21e57b207db12486ac035da531
Author: Max Maischein <[email protected]>
Date: Sun Dec 21 10:01:21 2014 +0100
Update epigraphs.pod
M Porting/epigraphs.pod
commit b658dbbe904f8096ba013d6614c5c2d04b467237
Merge: 8be8179 846dac6
Author: Max Maischein <[email protected]>
Date: Sat Dec 20 18:38:50 2014 +0100
Merge branch 'release-5.21.7' into blead
commit 846dac6786c1ada87b95d0268c0a9772a4bd04fc
Author: Max Maischein <[email protected]>
Date: Sat Dec 20 15:52:25 2014 +0100
add new release to perlhist
M pod/perlhist.pod
commit 60dde9d3b9b1296d69723baf1dbe439cd63a1c20
Author: Max Maischein <[email protected]>
Date: Sat Dec 20 15:52:16 2014 +0100
Update perldelta
M pod/perldelta.pod
commit e544daaa5a83562ae477105c5170d971332f4dd6
Author: Max Maischein <[email protected]>
Date: Sat Dec 20 15:01:57 2014 +0100
Update Module::CoreList for 5.21.7
M dist/Module-CoreList/Changes
M dist/Module-CoreList/lib/Module/CoreList.pm
commit 8be81792ba44d3a753941b9e3168c3b0ab0da96c
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 05:26:02 2014 -0800
Skip multideref for PL_check[OP_HELEM] tinkering
We already do it when PL_check[OP_AELEM] is modified. Do it
also for PL_check[OP_HELEM]. This will make it easier to get
Data::Alias working.
M op.c
commit 26334c4df83abbbbf5402fb36a65d890ae6983d9
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 05:21:41 2014 -0800
dump.c: Suppress extra sigils in multideref dump
This:
my $z; my @y; $y[$z]
included
<+> multideref($@y[$$z]) sK ->6
in its -MO=Concise output.
M dump.c
commit ff94d24c25095d8424bbf5d982a0bc5c1e6fbece
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 05:06:13 2014 -0800
dump.c:unop_aux_stringify: Use newSVpvn_flags
newSVpvn_flags with SVs_TEMP takes less machine code than
sv_2mortal(newSVpv()).
M dump.c
commit e026fc88d21a3ce88941ee3a71e5d34982ee577a
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 04:43:56 2014 -0800
Allow multideref for $x[CONST->$*]
M op.c
commit 6304db22652a2421df2091bca93572bee408de6b
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 04:38:15 2014 -0800
Allow multideref for $x[($pkg)]
The parens donât need to disable the optimisation.
M op.c
commit db7bc125e0ddb063b2aac8686e21a031b1efbb85
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 04:35:24 2014 -0800
Fix assertion failure with $x[CONST->[0]]
M op.c
M t/comp/parser.t
commit b39c1059f09e1dd312ba1d5d2e39730eb5c50402
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 04:33:47 2014 -0800
Fix assertion failure with $x[($_)]
M op.c
M t/comp/parser.t
commit 47c8411bbf59cf2d70cf50ccb21ac0cf33a7d17c
Author: Father Chrysostomos <[email protected]>
Date: Sat Dec 20 04:29:08 2014 -0800
Allow multideref for $x[($lex)]
The parens donât need to disable the optimisation.
(The OPpLVAL_INTRO flag [indicating my or state] has no run-time
effect for state vars, so we could ignore it and optimise, but it
would make deparsing inordinately complex, and no-one would write
$x[state $y] anyway.)
M op.c
commit 99807a43ff8067f13ddb17de59a7e1331a0051ea
Author: Hugo van der Sanden <[email protected]>
Date: Sat Dec 20 12:21:27 2014 +0000
protect RExC_naughty changes behind macros
Avoid overflow, and add a bit of explanation.
M regcomp.c
commit 9745959a89f3a201c789b8e4ce494405f95b2a7a
Author: Tony Cook <[email protected]>
Date: Sat Dec 20 13:52:29 2014 +1100
PerlIO::scalar: skip the 4GB seek test if off_t is too small
M ext/PerlIO-scalar/t/scalar.t
commit 898c5644d1595a2fee23494ee81ea932edb930c1
Author: Father Chrysostomos <[email protected]>
Date: Fri Dec 19 16:42:30 2014 -0800
01234567890123456789012345678901234567890123456789
pp.h: Remove stack-popping from void overload code
There is no need to pop the stack in void context, as every void-context
op is followed by something that resets the stack.
M pp.h
commit 7b46bf4c9fea9c8ec5466c74e7b96886d1a4f1da
Author: Father Chrysostomos <[email protected]>
Date: Fri Dec 19 16:20:42 2014 -0800
[perl #123458] list cx re::regexp_pattern($nonre)
It was returning (undef) in list context, though it was documented to
return the empty list.
M ext/re/t/re_funcs_u.t
M universal.c
commit b1dcc8e278f8fb24401a718bd5acc1b867192967
Author: Father Chrysostomos <[email protected]>
Date: Fri Dec 19 16:15:05 2014 -0800
universal.c:re_regexp_pattern: Mention GIMME_V once
While it was only being called once, it occurred in two code paths.
Pulling it out of the main if-block reduces the size of universal.o.
Before and after:
$ ls -l universal.o
-rw-r--r-- 1 sprout staff 33700 Dec 19 16:05 universal.o
$ ls -l universal.o
-rw-r--r-- 1 sprout staff 33692 Dec 19 16:13 universal.o
M universal.c
commit da39159d3568bc6c07f00643d0677d68705ee94f
Author: Father Chrysostomos <[email protected]>
Date: Fri Dec 19 16:11:32 2014 -0800
pp_sys.c:pp_readdir: Call GIMME_V just once
M pp_sys.c
commit 48ebc3253f8f15cf0f8fd8ddb50557527aea8523
Author: Father Chrysostomos <[email protected]>
Date: Fri Dec 19 16:09:53 2014 -0800
pp_ctl.c: Only do GIMME_V once in pp_caller
This shrinks the machine code.
Before and after:
$ ls -l pp_ctl.o
-rw-r--r-- 1 sprout staff 96156 Dec 19 16:05 pp_ctl.o
$ ls -l pp_ctl.o
-rw-r--r-- 1 sprout staff 96044 Dec 19 16:09 pp_ctl.o
M pp_ctl.c
commit 82334630454b4b4e55257e3bf48f998a8a2814a9
Author: Father Chrysostomos <[email protected]>
Date: Fri Dec 19 16:05:15 2014 -0800
Use GIMME_V in preference to GIMME
GIMME_V is a simpler macro that results in smaller machine code.
GIMME does not distinguish between scalar and void context. The two
instances of GIMME == G_SCALAR that I changed (which used to match
void context too, but no longer do) are in code paths unreachable in
void context, so we donât need to check for it.
M op.h
M pp.c
M pp_ctl.c
M pp_hot.c
M pp_sort.c
M pp_sys.c
commit 54408af452c3b8791b74227d549ac4a2d660d916
Author: Father Chrysostomos <[email protected]>
Date: Fri Dec 19 12:41:43 2014 -0800
wantarray.t: $got before $expected
When the tests fail, the diagnostic output is very confusing
otherwise.
M t/op/wantarray.t
commit 199268fb4e8ba9ab9224e6b7e5a7d19050325e16
Author: Father Chrysostomos <[email protected]>
Date: Thu Dec 18 20:25:06 2014 -0800
wantarray.t: Test logops at sub exit
M t/op/wantarray.t
commit 9702249de488d40a6ba0bec6d0aad890f20314b7
Author: Father Chrysostomos <[email protected]>
Date: Thu Dec 18 17:57:44 2014 -0800
wantarray.t: Remove unused var
It stopped being used in dab34d0f01.
M t/op/wantarray.t
commit db58a81c116b9bdc669c1b1a8cb7fd33627a926b
Author: David Mitchell <[email protected]>
Date: Fri Dec 19 22:52:55 2014 +0000
fix integer overflow in S_regpiece().
RExC_naughty is incremented when nasty bits of regex are found.
If at the end of compilation, its > 01, then PREGf_NAUGHTY is set on the
pattern.
However, some bits of S_regpiece on detecting naughiness, double or nearly
double RExC_naughty, quickly resulting in overflow of the I32.
I've fixed it by skipping the doubling when RExC_naughty is large,
but I don't know whether the doubling is conceptually wrong in the first
place.
Found by -fsanitize=undefined.
M regcomp.c
commit a1b2073ef1dbfca70742296d373883902e6188b7
Author: David Mitchell <[email protected]>
Date: Fri Dec 19 22:35:48 2014 +0000
fix integer overflow in S_study_chunk().
It was adding to delta even when delta was already SSize_t_MAX
This triggered it: /.*(ab|abc)/.
Found by -fsanitize=undefined.
M regcomp.c
commit 55b6a5f665b57d91246b00d58d8bf9ba32c7cdc3
Author: David Mitchell <[email protected]>
Date: Fri Dec 19 22:19:58 2014 +0000
fix integer overflow in S_study_chunk().
It was adding SSize_t_MAX to data->last_start_max when
data->last_start_max was already SSize_t_MAX.
This triggered it: /(x+y)+/.
Found by -fsanitize=undefined.
M regcomp.c
commit 646e87871404a31d5a6c6ac42ca921078d055354
Author: David Mitchell <[email protected]>
Date: Fri Dec 19 21:41:11 2014 +0000
fix integer overflow in S_scan_commit().
offset_float_max could end up as SSize_t_MAX+1.
This triggered it: /^x(ab|c.+)$/.
Found by -fsanitize=undefined.
M regcomp.c
commit 2e2c882dd53d6b966a0cd3b0ef111ff9e85f2c41
Author: David Mitchell <[email protected]>
Date: Fri Dec 19 20:31:00 2014 +0000
add asan_ignore - which errors to ignore
"clang -fsanitize=undefined" produces lots of false positives.
This file allows certain functions to be excluded from checking.
Use it as:
clang -fsanitize=undefined -fsanitize-blacklist=`pwd`/asan_ignore
M MANIFEST
A asan_ignore
-----------------------------------------------------------------------
--
Perl5 Master Repository