| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Since f0e67a1 it was possible the freed buffer may be read from when
parsing a heredoc. This adds a call to lex_grow_linestr to grow the
buffer and ensure the pointers in PL_parser are updated.
The bug is pretty hard to reproduce, hence no test. I'm able to
reproduce it with the following:
perl -Meverywhere=re,debug -MParams::Util -e1
|
| |
|
|
|
|
|
|
|
|
| |
I very intentionally gave it a "dev" version number because we're about
to deviate from what's in 5.12.4 and it should be as close to what's in
5.14.0 as possible. I'm not hugely thrilled about this, but it seems
like the most rational thing to do when we have multiple maint versions
in play.
|
|
|
|
| |
Add a track marker for maint-5.14 to perlhist
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we carry out this test on SH4, it becomes the time-out.
2 seconds are set in watchdog, but are too short for SH4.
This patch was changed for 10 seconds.
$ time ./perl t/re/re.t
1..19
ok 1 - is_regexp(REGEXP ref)
ok 2 - is_regexp(REGEXP)
ok 3 - is_regexp("")
ok 4 - regexp_pattern[0] (ref)
ok 5 - regexp_pattern[1] (ref)
ok 6 - scalar regexp_pattern (ref)
ok 7 - regexp_pattern[0] (bare REGEXP)
ok 8 - regexp_pattern[1] (bare REGEXP)
ok 9 - scalar regexp_pattern (bare REGEXP)
ok 10 - !regexp_pattern("")
ok 11 - regnames
ok 12 - regnames
ok 13 - regnames in scalar context
ok 14 - regnames
ok 15
ok 16
ok 17
ok 18
ok 19 - Didn't loop
real 0m7.482s
user 0m3.848s
sys 0m0.036s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> Quoth Emmanuel Rodriguez:
>> I'm see a strange behavior in the fonction WIFSTOPPED($?) when
>> waitpid($pid, WUNTRACED) is invoked and that the child process
>> receives a stop signal. Under this conditions one would expect that
>> WIFSTOPPED($?) would return a true value, but that's not what is
>> happening. A similar program written in C will have the same macro
>> return true instead of false under the same conditions.
>>
>> I can reproduce this with the default perl provided by Ubuntu 9.10 and
>> OS X 10.6. Which lets me guess that this is not a distro related bug.
>
> This is a documentation error. POSIX.pod incorrectly claims that
> you can pass the value of $? to WIFEXITED and its relatives.
> You must use the raw status value from ${^CHILD_ERROR_NATIVE} instead.
And here's the patch. Note that perlvar.pod gets it right already.
/Bo Lindbergh
|
| |
|
|
|
|
|
|
|
|
| |
The required packages for building perl on Solaris are outdated.
The complete list is only appliable to Solaris 8 (released in
February 2000, end of support in March 2009). The patch updates
the requirements for Solaris 9 and 10 (in short: dropping
no longer existant packages).
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- Direct people for README.macosx straight away
- Make synopsis copy shorter and clearer
|
|
|
|
|
|
|
| |
It turns out that caseless tries currently only work on UTF-8 EXACTFU
nodes. The code attempted to test that by using UNI_SEMANTICS, but that
doesn't actually work; what is important is the semantics of the current
node.
|
| |
|
|
|
|
| |
(cherry picked from commit c543c01b43a4b95a6edf7898cea8c4662740151a)
|
|
|
|
| |
(cherry picked from commit 8f1da26d544e0a10ac9cc91249e2e6e57e1847f6)
|
|
|
|
| |
(cherry picked from commit 8b55b0284cb0f0f4e3a37ab37287c6441d6061d8)
|
|
|
|
| |
(cherry picked from commit d5564dc44d9a4d84ce4fd1d6562abad29ef6a843)
|
|
|
|
| |
(cherry picked from commit 15a348aa1f233f84aedc3c0a7bcc9d29fc6dc9e9)
|
|
|
|
| |
(cherry picked from commit dee33c9459543bbd59d00c5418b9b2183239205d)
|
|
|
|
| |
(cherry picked from commit 21863e7e0890fa3f55e9efd85a0746d312e7dc53)
|
|
|
|
|
|
|
|
|
|
|
|
| |
things, but does not address the "this version" != 5.14 and the
perlio issues. I believe that these at least should be addressed
as soon as possible (I don't know whether that means 5.14;
probably not). It has to either say the particular version that
applies. We can't keep releasing things that say this version:
they are not trustable.
--tom
(cherry picked from commit f4750dabedb3961d2aa3fec0bc3a92de1ebc06b6)
|
|
|
|
| |
(cherry picked from commit 530f0126691388f9891b28f639f47e4280836ccc)
|
|
|
|
| |
(cherry picked from commit e34fa53ab7895ffe22117b52fd641370cce2d688)
|
|
|
|
|
|
| |
Ubuntu has juggled lib paths so we get to play games to catch up with
them.
(cherry picked from commit 3c998e07917e4a06d77c572595b246947120b316)
|
|
|
|
| |
(cherry picked from commit dfa5c78f5986779331a42eae9359203d25e23e80)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The linux perf tool has an XS component, but when built using system
perl 5.14.0, its compilation errors out on the switch statement in
regexp.h: get_regex_charset_name(), which lacks a default case. Add
one, copying the end-of-function return "?".
Preserve the end-of-function return "?", to avoid a hypothetical
compiler bug which misses the default case, and infers a void return
for a function thats declared otherwize.
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
(cherry picked from commit 0984e55ea51a3030ba112fb0dd331061c5b0acf5)
|
|
|
|
|
|
|
|
|
|
| |
In '"s\N{U+DF}" =~ /\x{00DF}/i, the LHS folds to 'sss', the RHS to 'ss'.
The bug occurs when the RHS tries to match the first two es's, but that
splits the LHS \xDF character, which Perl doesn't know how to handle,
and the assertion got triggered. (This is similar to [perl #72998].)
The solution adopted here is to disallow a partial character match,
as #72998 did as well.
|
|
|
|
|
|
|
|
| |
There was a remaining memory leak in the new inversion lists data
structure under threading. This solves it by changing the
implementation to use a SVpPV instead of doing our own memory
management. Then the already existing code for handling SVs
returns the memory when done.
|
| |
|
| |
|
|
|
|
| |
The reference count should be decremented upon freeing.
|
|
|
|
|
|
|
|
|
|
|
| |
I carelessly added this memory leak which happens in a bracketed
character class under /i when there is both a above 255 code point
listed plus one of the several below 256 code points that participate
in a fold with ones above 256.
For 5.16, as the use of the inversion list data structure expands, an
automatic method of freeing space will need to be put in place. But
this should be sufficient for 5.14.1.
|
|
|
|
|
|
| |
In addition to documenting the recent integrations, I also
removed the ‘Selected’ from the ‘Selected Bug Fixes’ title,
as maint perldeltas should list *all* bug fixes.
|
|
|
|
| |
It doesn’t work on VMS.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Formats are compiled down to a sequence of U32 opcodes in doparseform().
Previously the block of opcodes was stored in the buffer of SvPVX() after
the raw string by extending the buffer, and calculating the first U32 aligned
address after SvCUR(). A flag bit on the scalar was set to signal this hackery,
tested with SvCOMPILED()
The flag bit used happened to be the same as one of the two used by to signal
Boyer-Moore compiled scalars. The assumption was that no scalar can be used for
both. Unfortunately, this isn't quite true.
Given that the scalar is alway upgraded to PVMG to add PERL_MAGIC_fm magic,
to clear the cached compiled version, there's no extra memory cost in using
mg_ptr in the MAGIC struct to point directly to the block of U32 opcodes. The
test for "is there a compiled version" can switch to mg_find(..., PERL_MAGIC_fm)
returning a pointer, and the use of a flag bit abolished.
Retain SvCOMPILED() and SvCOMPILED_{on,off}() as compatibility for XS code on
CPAN - the first is always 0, the other two now no-ops.
|
|
|
|
|
|
|
|
|
|
|
| |
a1b950687051c32e added an error condition in S_doparseform() but used DIE(...)
to report it. DIE is defined as C<return Perl_die>, which acts as a hint to the
compiler about the control flow [as Perl_die() never returns], but also forces
the return type to be OP *. Whilst this is appropriate for pp functions, it's
not for S_doparseform() - a1b950687051c32e had to change the return type to OP*
and return NULL, just to appease DIE(). Hence use Perl_die() instead, remove
return statements, and remove the didn't-return-NULL (dead) code from
pp_formline.
|
| |
|