| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It was returning (undef) in list context, though it was documented to
return the empty list.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
When the tests fail, the diagnostic output is very confusing
otherwise.
|
| |
|
|
|
|
| |
It stopped being used in dab34d0f01.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
It was adding to delta even when delta was already SSize_t_MAX
This triggered it: /.*(ab|abc)/.
Found by -fsanitize=undefined.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
offset_float_max could end up as SSize_t_MAX+1.
This triggered it: /^x(ab|c.+)$/.
Found by -fsanitize=undefined.
|
|
|
|
|
|
|
|
| |
"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
|
|
|
|
|
| |
My commit 0cb87cd1a of a few minutes ago broke g++. Hopefully this
commit won't break anything else.
|
|
|
|
|
|
|
|
|
|
|
|
| |
These warnings appear on win32 smokes.
op.c(8600) : warning C4244: 'function' : conversion from 'cv_flags_t' to 'char'
, possible loss of data
op.c(11905) : warning C4146: unary minus operator applied to unsigned type, res
ult still unsigned
Since I'm not running windows, I can't confirm that this commit shuts up
these warnings, but I think think I've understood them correctly.
|
|
|
|
|
|
| |
This has been applied blind since my system doesn't have libodbm,
but it matches exactly the cast added to NDBM's typemap a few years ago to
fix a similar warning.
|
|
|
|
| |
(I've done this blind because I don't have libndbm on my system)
|
|
|
|
| |
Follow-up to 500f40f555ee.
|
|
|
|
|
|
|
|
|
|
| |
From the added code comments:
XXX DAPM 12/2014: ExtUtils::Embed doesn't seem to provide API access
to $Config{optimize} and so compiles the test code without
optimisation on optimised perls. This causes the compiler to warn
when -D_FORTIFY_SOURCE is in force without -O. For now, just strip
the fortify on optimised builds to avoid the warning.
|
|
|
|
|
|
|
|
| |
See 4cbd7e223 and ticket #123417.
If a charnames handler returns the empty string for a particular name,
then the regular expression stringifies with an empty \N{} in it.
This needs to round-trip properly (eval "/$qr/"), just like \N{U+...}.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
of modules, and include a link to the subscription page
|
|
|
|
|
|
|
|
|
| |
[DELTA]
1.09 Thu Dec 18 21:39:18 2014
- XS: a workaround for perl 5.6.x to handle noncharacters U+FFFF etc.
is abandoned. Perl 5.8.0 or later is recommended for handling these
noncharacters.
|
| |
|
|
|
|
| |
This caused a new test to fail on 32-bit builds.
|
|
|
|
| |
The F<>/L<> warning is bogus in this case.
|
|
|
|
|
|
|
|
|
|
| |
This ‘unoffical’ notation is used in stringifying regular expressions
that contain named sequences, so that qr/\N{foo}/ stringified can be
incorporated into another regular expression in a different scope and
still mean the same thing.
This also needs to work with eval "/$that_qr/". I didn’t because the
lexer rejected this syntax.
|
| |
|
|
|
|
|
| |
previosly seek() would produce an error, but would still make the\
file position negative.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
1.50 2014-06-04 rurban
----
* Do not re-bless already blessed filter_add arguments into the callers package.
Fixes RT #54452
* t/z_pod-coverage.t: omit empty Filter::decrypt (also fixes RT #84405)
* Fix Perl Compiler detection in Filter::decrypt
1.51 2014-12-09 rurban
----
* Minor -Wall -Wextra cleanups by jhi and me. Fixes RT #100742
* Updated Copyright years
* Document and warn about its limitations
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When freeing a sub, we can’t assume an entry named "&" contains a CV.
It may instead be a weak reference to a format or named sub, or undef
if such a reference went stale, in which case we don’t want to mess
with CvOUTSIDE pointers.
This bug probably goes back to v5.17.1-213-ge09ac07, when weak refer-
ences started being stored in "&" pad entries. It didn’t start trig-
gering AddressSanitizer failures until it was extended to named subs,
in v5.21.6-386-ga70f21d.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The important part of the error message is that the binaries are
mismatched; the details of the handshake keys are an implementation
detail.
Or to put it another way, when someone mixes up their paths, getting
something like
Fcntl.c: Invalid handshake key got 0xcf80000 needed 0xd700000, binaries are mismatched
Is a bit scary and confusing. This is hopefully (slightly) less scary:
Fcntl.c: loadable library and perl binaries are mismatched (got handshake key 0xcf80000, needed 0xd700000)
|
|
|
|
|
|
| |
Clean up the description of this function; in particular, say at the top
what the function is for; fix typos; and generally improve the readability
of the text.
|
| |
|
|
|
|
|
| |
Modify apidoc.pl to warn about duplicate apidoc entries, and
remove duplicates for av_tindex and toLOWER_LC
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Some text tells you about
Note (probably harmless): No library found for -lsomething
warnings, but the actual warning has now changed to
Warning (mostly harmless): No library found for -lsomething
|
|
|
|
|
|
| |
Subs like sub f () { 42 } stopped being emitted, probably in
v5.21.3-638-g2eaf799, when such subs started being stored as simple
scalar refs in the stash.
|