| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the removal of PERL_OBJECT
(acfe0abcedaf592fb4b9cb69ce3468308ae99d91) PERL_IMPLICIT_CONTEXT and
MULTIPLICITY have been synonymous and they're being used interchangeably.
To simplify the code, this commit replaces all instances of
PERL_IMPLICIT_CONTEXT with MULTIPLICITY.
PERL_IMPLICIT_CONTEXT will stay defined for compatibility with XS
modules.
|
| |
|
|
|
|
|
| |
S_regclass() is unwieldy. This commit splits it into two nearly equal
size parts. More could be done.
|
| |
|
|
|
|
| |
In particular, if the length is beyond the end, it should not be stored as the end.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The try change added code to pp_return to skip past try contexts
when looking for the sub/sort/eval context to return from.
This was only needed because cx_pusheval() sets si_cxsubix to the
current frame and try uses that function to push it's context, that
value is then used by the dopopto_cursub() macro to shortcut
walking the context stack.
Since we don't need to treat try as a sub for return, list vs array
checks or lvalue sub checks, don't set si_cxsubix on try.
|
| |
|
|
|
|
|
| |
This used to be called from utf8.c, but no longer; no need to make it
other than static. This allows the compiler to better optimize.
|
|
|
|
|
| |
This was the consensus in
http://nntp.perl.org/group/perl.perl5.porters/258489
|
|
|
|
|
|
|
|
| |
This change has been planned for a long time, bringing Perl into parity
with similar languages, but it took many deprecation cycles to be able
to reach the point where it could safely go in.
This fixes GH #18264
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit copies portions of new_regcurly(), which has been around
since 5.28, into plain regcurly(), as a baby step in preparation for
converting entirely to the new one. These functions are used for
parsing {m,n} quantifiers. Future commits will add capabilities not
available using the old version.
The commit adds an optional parameter, to return to the caller
information it gleans during parsing.
regpiece() is changed by this commit to use this information, instead of
itself reparsing the input. Part of the reason for this commit is that
changes are planned soon to what is legal syntax. With this commit in
place, those changes only have to be done once.
This commit also extracts into a function the calculation of the
quantifier bounds. This allows the logic for that to be done in one
place instead of two.
|
|
|
|
| |
This disables use of bareword filehandles except for the built-in handles
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The purpose of this function is to raise a parse warning; not something
something outside core should be doing.
|
| |
|
|
|
|
|
| |
These appear to be helper functions for various API functions; there are
no uses of them in cpan
|
|
|
|
|
| |
There are documented macros that one is supposed to use instead for this
functionality.
|
|
|
|
|
| |
This is a helper function used by such things as SSGROW; there is no
cpan usage
|
|
|
|
| |
This is used by the toker to scan a number; there is no cpan usage
|
|
|
|
| |
This appears to be for internal debugging; there is no cpan usage
|
|
|
|
|
|
| |
These appear to be internal functions, and there is no cpan usage
The macro GIMME_V is what one is supposed to use for this functionality.
|
|
|
|
| |
This appears to be for internal use, and there are no cpan usages
|
|
|
|
|
| |
The macro CXINC is what one is supposed to use for this functionality.
(though it is currently undocumented)
|
|
|
|
|
| |
This is an internal function used to parse command line options; there
are no cpan uses.
|
|
|
|
| |
These are internal functions to run the program; there are no cpan uses
|
|
|
|
|
|
| |
This is used internally by the regex engine; there is one use in cpan,
an internals module, Devel::RegExp by Ilya Zakharevich, with nothing
dependent on it, and last updated in 1995.
|
|
|
|
|
|
| |
Similar cx functions are supposed to be called with a macro for their
functionality, but no such macro exists for this, and there are no uses
on CPAN
|
|
|
|
|
| |
They are not documented, and if you try to use them, you get a compile
error.
|
|
|
|
| |
5.32 did this for one form; now all do.
|
| |
|
| |
|
|
|
|
| |
This is used for internal initialization, and there are no uses on cpan
|
| |
|
|
|
|
| |
These appear to be for internal use, with no cpan usage found
|
|
|
|
|
|
| |
This function is called only at compile time; experience has shown that
compile-time operations are not time-critical. And future commits will
lengthen it, making it not practically inlinable anyway.
|
| |
|
|
|
|
|
|
| |
mro_get_private_data() is core only; instead the public is supposed to
use MRO_GET_PRIVATE_DATA(), which we now indicate is documented in
perlmroapi, as well as HvMROMETA()
|
|
|
|
|
|
| |
The names previously indicated some things were strings that weren't
necessarily so. Some nearly identical functions had varying parameter
names.
|
| |
|
|
|
|
|
|
| |
I modified this function in ab01742544b98b5b5e13d8e1a6e9df474b9e3005,
and did not fully understand the edge cases. This commit now handles
those properly, the same as plain delimcpy() does.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prior to this commit delimcpy() parsed its input byte-by-byte, looking
for a particular character, and copied the input to the output stopping
just before the first such occurrence.
memchr() is much faster for finding a single character.
The complication is that if the character is preceded by a backslash,
it doesn't count as that character, it is considered to be escaped, and
parsing continues to the first unescaped occurrence, if any. Each
escaping backslash is not copied.
The prior code also failed to account for the possibility of the delimiter
being a backslash, the same as the escape.
The new routine looks for the character with memchr, sees if it is
escaped. If not, Copy does the whole copy at once. If it is escaped,
it uses Copy up to that backslash, and repeats the process.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
S_mg_free_struct() has a workaround to never free mg->mg_ptr for
PERL_MAGIC_regex_global.
Move this logic into a new magic vtable free method instead, so that
S_mg_free_struct() (which gets called for every type of magic) doesn't
have the overhead of checking every time for mg->mg_type ==
PERL_MAGIC_regex_global.
[ No, I don't know why PERL_MAGIC_regex_global's vtable and methods
are suffixed mglob rather than regex_global or vice versa ]
|