| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
In Cwd.pm, dont search for pwd on Win32.
Also trim down the list of makefile suffixes on Win32 so it doesn't try
searching for av.pas and perl.f90 and hash.cbl on disk.
Add __END__ tokens to stop the last read() call on the handle which
returns 0 bytes at EOF.
|
| |
|
|
|
|
|
| |
This lets us make t/io/eintr.t more reliable by making sure we're
actually writing more than the buffer size.
|
| |
|
|
|
|
|
| |
This will be used for slurpy array ref assignments. \(@a) = \(@b)
will make @a share the same elements as @b.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
By computing dMY_CXT right before its first and usually last use, my_cxt
pointer doesn't need to be carried across function calls in SaveError. This
frees a C stack auto and/or register from being saved and restored in
SaveError. On VC 2003 32 bits -O1 threaded, the machine code size in bytes
dropped from 0x72 to 0x70 after this patch.
|
|
|
|
|
|
|
|
| |
Saves an int of memory per interp. Removes a env var lookup, and on Win32
also remove a registry check for PERL_DL_NONLAZY. This speeds up start up
time of interp a tiny bit. While platforms other than hpux and dlopen use
RTLD_LAZY, they use it unconditionally ignoring PERL_DL_NONLAZY. I am not
judging that decision in this commit.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a new opcode class, METHOP, which will hold class/method related
info needed at runtime to improve performance of class/object method
calls, then change OP_METHOD and OP_METHOD_NAMED from being UNOP/SVOP to
being METHOP.
Note that because OP_METHOD is a UNOP with an op_first, while
OP_METHOD_NAMED is an SVOP, the first field of the METHOP structure
is a union holding either op_first or op_sv. This was seen as less messy
than having to introduce two new op classes.
The new op class's character is '.'
Nothing has changed in functionality and/or performance by this commit.
It just introduces new structure which will be extended with extra
fields and used in later commits.
Added METHOP constructors:
- newMETHOP() for method ops with dynamic method names.
The only optype for this op is OP_METHOD.
- newMETHOP_named() for method ops with constant method names.
Optypes for this op are: OP_METHOD_NAMED (currently) and (later)
OP_METHOD_SUPER, OP_METHOD_REDIR, OP_METHOD_NEXT, OP_METHOD_NEXTCAN,
OP_METHOD_MAYBENEXT
(This commit includes fixups by davem)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A synthetic start class (SSC) is generated by the regular expression
pattern compiler to give a consolidation of all the possible things that
can match at the beginning of where a pattern can possibly match.
For example
qr/a?bfoo/;
requires the match to begin with either an 'a' or a 'b'. There are no
other possibilities. We can set things up to quickly scan for either of
these in the target string, and only when one of these is found do we
need to look for 'foo'.
There is an overhead associated with using SSCs. If the number of
possibilities that the SSC excludes is relatively small, it can be
counter-productive to use them.
This patch creates a crude sieve to decide whether to use an SSC or not.
If the SSC doesn't exclude at least half the "likely" possiblities, it
is discarded. This patch is a starting point, and can be refined if
necessary as we gain experience.
See thread beginning with
http://nntp.perl.org/group/perl.perl5.porters/212644
In many patterns, no SSC is generated; and with the advent of tries,
SSC's have become less important, so whatever we do is not terribly
critical.
|
|
|
|
|
| |
This looks for numerical constants, but failed to see long and/or
unsigned ones, which have suffixes U and/or L, or lowercase u and/or l.
|
|
|
|
|
|
|
|
|
|
| |
It is planned for a future Perl release to have /xx mean something
different from just /x. To prepare for this, this commit raises a
deprecation warning if someone currently has this usage. A grep of CPAN
did not turn up any instances of this, but this is to be safe anyway.
The added code is more general than actually needed, in case we want to
do this for another flag.
|
|
|
|
|
|
| |
This doesn't actually use the flag yet.
We no longer have to make version-dependent changes to
ext/Devel-Peek/t/Peek.t, (it being in /ext) so this doesn't
|
|
|
|
|
|
|
|
|
|
|
| |
When translating a filespec starting with an extended character,
say C<+foo>, from Unix to VMS format, we were inadvertently
skipping over the first character and thus not translating it to
C<^+foo> with the caret escape prepended to the plus sign as we
should have been.
This fixes a fairly new test failure in ExtUtils::Manifest where
a filename starts with a single quote.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new re debug mode for outputing stuff useful for testing.
In this case we count the number of times that we go through
study_chunk. With a51d618a we should do 5 times (or less) when
we traverse the test pattern. Without a51d618a we recurse 11
times. In the case of RT #122283 we would do gazilions of
recursions, so many I never let it run to finish.
/
(?(DEFINE)(?<foo>foo))
(?(DEFINE)(?<bar>(?&foo)bar))
(?(DEFINE)(?<baz>(?&bar)baz))
(?(DEFINE)(?<bop>(?&baz)bop))
/x
I say "or less" because you could argue that since these defines are
never called, we should not actually recurse at all, and should maybe
just compile this as a simple empty pattern.
|
|
|
|
|
|
|
| |
In Tru64 the cc -ieee enables the IEEE math but disables traps.
We need to reenable the "invalid" trap because otherwise generation
of NaN values leaves the IEEE fp flags in bad state, leaving any further
fp ops behaving strangely (Inf + 1 resulting in zero, for example).
|
| |
|
| |
|
|
|
|
|
|
|
| |
Exists in libm, but no proto or man page, probably for a reason.
Return values seem to be garbage, or at least not NaN.
Also add a todo for the nan() payload.
|
| |
|
| |
|
|
|
|
| |
(The C99 defines no preferred values.)
|
|
|
|
| |
(And try FLT_ROUNDS last.)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Expressions containing a function name are no more eval()able than
expressions which are just a function name, so skip them too. This also
picks up on text in the expression and stops eval()s from whining about
"String found where operator expected" on Win32 (with VC10) on expressions
like L"\\Enlistment\\" and (sizeof(L"\\Enlistment\\")+(38*sizeof(WCHAR))),
encountered when parsing ENLISTMENT_OBJECT_PATH and
ENLISTMENT_OBJECT_NAME_LENGTH_IN_BYTES respectively.
|
|
|
|
|
|
| |
This stops __stdcall being seen as a hex number and turned into __stdca.
Also include _ in the pattern to match function names so that that gets
skipped anyway.
|
|
|
|
|
|
|
| |
This requires there to be something present in the "0xcafebabe" part of
the "((type)0xcafebabe)" (et alia) pattern, otherwise it can end up
matching things that it shouldn't. (The "type" part is already required
to be non-empty.)
|
|
|
|
|
|
|
|
|
| |
This allows us to pluck "0xC038000FL" rather than "(0xC038000FL" out of
"(DWORD)(0xC038000FL)", which means we go into the hex case rather than
the eval case, and get the desired result (hex '0xC038000F' returns
3224895503, whereas eval '(0xC038000F' returns nothing).
Also allows for "((DWORD)(0xC038000FL))" and other existing formats.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
One of the main purposes of cv_name was to provide a way for CPAN mod-
ules easily to obtain the name of a sub. As written, it was not
actually sufficient, as some modules, such as Devel::Declare, need an
unqualified name.
So I am breaking compatibility with 5.21.4 (which introduced cv_name,
but is only a dev release) by adding a flags parameter.
|
| |
|
| |
|
|
|
|
|
|
| |
This reduces the allocated size on Windows, where an
extra header is added to what gets allocated. See
<https://rt.perl.org/Ticket/Display.html?id=15667#txn-1309657>.
|
|
|
|
|
|
| |
There is no reason these tests need to run on such an old version
any more, and this is getting in the way of something I am trying
to do.
|
| |
|
|
|
|
|
|
|
|
| |
Add the new portions of locale currency formatting that are specified in
POSIX.1-2008
The commiter (Karl Williamson) made the trivial indentation changes
asked for by H. Merijn Brand, and added a perldelta entry
|
| |
|
| |
|
| |
|
| |
|