Nicholas Clark [Sat, 12 Jun 2010 20:13:14 +0000]
Fix edge case in pp_eof where the stack extent was not checked.
Analogous to pp_getc and pp_tell in
ac3697cd90b00fae, pp_eof has a conditional
POP from the stack, but an unconditional PUSH to the stack, but no check that
the stack had space for the PUSH. This bug has been present since perl 5.000.
Nicholas Clark [Sat, 12 Jun 2010 19:43:37 +0000]
Fix edge cases in pp_getc and pp_tell where the stack extent was not checked.
Both conditionally POP a GV from the stack, but always PUSH a return value to
it. For the case where they did not POP the GV, they made no check that the
stack had space for the PUSH. This bug has been present since perl 5.000.
Nicholas Clark [Sat, 12 Jun 2010 18:05:51 +0000]
Better diagnostics on detecting case sensitive file name clashes.
Chris 'BinGOs' Williams [Fri, 11 Jun 2010 06:59:48 +0000]
Added new files I forgot to add for the Thread-Semaphore update
Jerry D. Hedden [Fri, 11 Jun 2010 06:57:34 +0000]
[PATCH-revised] Upgrade to Thread-Semaphore 2.11
Added new methods ->down_nb() and ->down_force() at the suggestion of
Rick Garlick.
Refactored methods to skip argument validation when no argument is supplied.
Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
Nicholas Clark [Thu, 10 Jun 2010 08:01:18 +0000]
Parameters for * in *printf must be int - add a cast to ensure this.
Fixes a (legitimate) compiler warning present since
6e1bad6cc227c8e8.
Nicholas Clark [Wed, 9 Jun 2010 18:53:20 +0000]
Reorder CVf_* flags to be numerically contiguous again.
The removal of CVf_ASSERTION in
584420f022db5722 and CVf_LOCKED in
e95ab0c0d2aa1b35 left two gaps in the sequence of bits in use.
David Golden [Wed, 9 Jun 2010 15:47:41 +0000]
added Chas. Owens to AUTHORS
Chas. Owens [Wed, 9 Jun 2010 15:43:46 +0000]
Document $# and $* as removed
See email thread for reference:
http://www.nntp.perl.org/group/perl.perl5.porters/2010/06/msg160812.html
Abigail [Tue, 8 Jun 2010 14:35:52 +0000]
Resolve issue #74974: document File::Copy::copy(FILE, DIR)
H.Merijn Brand [Tue, 8 Jun 2010 13:50:05 +0000]
Fix long-standing typos in Policy_sh.SH
This patch fixes several long-standing typos and naming confusions in
Policy_sh.SH, standardizing on the variable names used in config.sh.
This will change the behavior of Policy.sh if you happen to have been
accidentally relying on the Policy.sh incorrect behavior. I'd appreciate
feedback from anyone using Policy.sh to be sure nothing is broken by
this change. Thanks to Stoned Elipot for pointing this out.
Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
David Mitchell [Mon, 7 Jun 2010 23:08:19 +0000]
perlbug: always allow change of sender address
The code that guessed a default sender address would under some
circumstances not display this guess to the user with the option to change
it. Specifically, if $Config{cf_me} eq {login id of the user running
perlbug}.
In my case, cf_email got set at build time (Configure default) of
'davem@pigeon.(none)', which was then silently used. Not good!
David Mitchell [Mon, 7 Jun 2010 22:28:26 +0000]
perlbug -d,-v: fix uninit value warnings
David Mitchell [Mon, 7 Jun 2010 21:18:35 +0000]
document revert of 'local $tied' change
David Mitchell [Mon, 7 Jun 2010 21:11:42 +0000]
Revert "make 'local $tied' untied"
This reverts commit
191ad7eff570fc96c93993e4358f83e2033365d6.
Some modules (e.g. File::chdir) relied on the current behaviour of
local $tied_scalar, so lets leave things as-is for now. See
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2010-05/msg00627.html
Sullivan Beck [Mon, 7 Jun 2010 20:58:34 +0000]
PATCH: Bump Locale-Codes from 3.12 to 3.13
Attached is a patch to upgrade the Locale-Codes distribution (containing
the core modules Locale::Country, Locale::Language, and
Locale::Currency) to the most recent version.
====
Background:
The core modules Locale::Country, Locale::Language, and Locale::Currency
(all part of the Locale-Codes distribution) should be updated on a
regular basis. They contain "codes" from various internet standards
which change over time.
I plan on releasing new versions twice a year to keep the codes
up-to-date. At this point, I'm not planning on any significant code
changes (other than bug fixes), so the only significant changes
between releases should be to update the codes.
David Mitchell [Mon, 7 Jun 2010 17:23:43 +0000]
identify a few vars in intrpvar.h
Karl Williamson [Sun, 6 Jun 2010 14:50:24 +0000]
regexec.c: change names of two vars for clarity
do_utf8 is changed to utf8_target
UTF is changed to UTF_PATTERN
This will help me keep track of the fact that there are four possible
combinations of these, and that ! do_utf8 doesn't necessarily mean don't
do utf8.
David Golden [Mon, 7 Jun 2010 11:07:10 +0000]
Remove -w recommendation in perl -h
Abigail already said it best:
I do not think 'perl -h' is the place to give recommendations on how
code should be written. 'perl -h' gives a list and a brief explanation
of the command line switches. IMO, it should do just that, and nothing
else.
H.Merijn Brand [Mon, 7 Jun 2010 10:19:32 +0000]
Spell-check fixes in ext
H.Merijn Brand [Mon, 7 Jun 2010 10:17:22 +0000]
Spell-check fixes in lib
H.Merijn Brand [Mon, 7 Jun 2010 10:17:09 +0000]
Spell check fixes in CPAN
already fixed upstream
Father Chrysostomos [Mon, 7 Jun 2010 10:07:11 +0000]
glob crashes when %File::Glob:: is empty
In 5.6.2, a failure to find a CORE::GLOBAL::glob after loading
File::Glob would result in a fallback to external glob via pp_glob.
Now it crashes.
The attached patch should fix this.
Karl Williamson [Wed, 2 Jun 2010 18:33:56 +0000]
perlhack: Add reference to TAP for test protocol
Karl Williamson [Wed, 2 Jun 2010 18:32:19 +0000]
perlhack: fix formatting issues
Change some lines so won't overflow 80 column width; make a link.
Karl Williamson [Sun, 30 May 2010 20:11:52 +0000]
PATCH: uniprops.t take advantage of EBCDIC test.pl
This patch removes the partial solution to testing on EBCDIC platforms
that was in uniprops.t (generated by mktables), and replaces it with the
simple complete solution now in test.pl
David Mitchell [Sun, 6 Jun 2010 20:09:22 +0000]
reduce size of regmatch_state.u.curlyx by 2 words
David Mitchell [Sun, 6 Jun 2010 17:48:49 +0000]
micro-optimise a bit of trie code
Nicholas Clark [Sun, 6 Jun 2010 09:50:56 +0000]
Test the return value of push and unshift.
Nicholas Clark [Sun, 6 Jun 2010 09:46:16 +0000]
Convert tiearray.t to test.pl.
Karl Williamson [Sat, 5 Jun 2010 17:25:58 +0000]
Change regexec.c to use new foldEQ functions
Karl Williamson [Sat, 5 Jun 2010 17:12:47 +0000]
Change name of ibcmp to foldEQ
As discussed on p5p, ibcmp has different semantics from other cmp
functions in that it is a binary instead of ternary function. It is
less confusing then to have a name that implies true/false.
There are three functions affected: ibcmp, ibcmp_locale and ibcmp_utf8.
ibcmp is actually equivalent to foldNE, but for the same reason that things
like 'unless' and 'until' are cautioned against, I changed the functions
to foldEQ, so that the existing names, like ibcmp_utf8 are defined as
macros as being the complement of foldEQ.
This patch also changes the one file where turning ibcmp into a macro
causes problems. It changes it to use the new name. It also documents
for the first time ibcmp, ibcmp_locale and their new names.
Karl Williamson [Sat, 5 Jun 2010 17:08:25 +0000]
utf8.c: further doc tweaks
Karl Williamson [Fri, 4 Jun 2010 18:04:45 +0000]
utf8.c: Modify doc comment; change whitespace
This removes the comment about the function name, and converts tabs to
blanks throughout the function, as so much of it is changing already.
It also removes trailing whitespace in other lines of the file.
Karl Williamson [Tue, 25 May 2010 17:18:42 +0000]
Revamp ibcmp_utf8 for performance and clarity
I had a hard time understanding how this routine worked; there were no
comments. In figuring it out, I discovered it could be made more
efficient. This routine is called over and over in the innermost loops
in regex matching, so efficiency is a concern.
Setup is done once before the main while loop so that it now has two
conditions instead of eight. The loop was rearranged slightly to be
smaller and a couple of unneeded assignments to temporaries were
removed, and recomputation of some values was avoided. Several other
small efficiency changes were made.
Several asserts had been commented out, saying that they make tests
fail. But they no longer do, at least on my platform. There was a
reason that they were asserts to begin with, and that is they denoted an
insane or trivial condition. Apparently there have been fixes to the
other code calling this, so I re-enabled them.
The names of several variables were changed to be less confusing; hence
f1 means the fold buffer for string 1 whereas it used to mean its goal,
which is now g1.
The leading indent was changed from 5 to 4 blanks. I made enough
other changes that I didn't submit this as a separate commit
Karl Williamson [Tue, 25 May 2010 17:17:22 +0000]
Clarify some documentation
David Mitchell [Sat, 5 Jun 2010 12:44:04 +0000]
silence some warnings in hv.c
Since
de0a224a057997a65d38856f1981702fca5d7c18, xhv_keys and xhv_max
are the same type, so no casting needed
David Mitchell [Sat, 5 Jun 2010 12:12:11 +0000]
add handy note on vtable fields
David Mitchell [Sat, 5 Jun 2010 11:46:09 +0000]
update Perl_magic_methcall description
it's now a varargs function
David Mitchell [Fri, 4 Jun 2010 22:09:21 +0000]
fix for RT #8438: $tied->() doesn't call FETCH
pp_entersub checked for ROK *before* calling magic. If the tied scalar
already had ROK set (perhaps from a previous time), then get magic (and
hence FETCH) wasn't called.
Craig A. Berry [Fri, 4 Jun 2010 03:17:39 +0000]
Avoid overflow warning in chop.t.
It overflows at compile time on 32-bit architectures, so the skip
isn't enough.
David Mitchell [Fri, 4 Jun 2010 20:30:18 +0000]
fix indendation of DM_* flag definitions
David Mitchell [Fri, 4 Jun 2010 20:28:20 +0000]
express DM_[GU]ID flags in terms of components
David Mitchell [Fri, 4 Jun 2010 20:25:07 +0000]
rename DM_ARRAY flag to DM_ARRAY_ISA
This better represents its current role as specifically delaying magic on
@ISA as opposed to a general array magic delay mechanism.
David Mitchell [Fri, 4 Jun 2010 20:16:48 +0000]
belatedly add a test for RT #51636:
segmentation fault with array ties
David Mitchell [Fri, 4 Jun 2010 20:01:43 +0000]
Revert "Re: [perl #51636] segmentation fault with array ties"
This reverts commit
90630e3c741716305d7f1da4df5eab5c1bee42cc.
This fix turns out to be wrong, and also made ($<,$>)=(...) fail
(RT #75212).
The original problem was a SEGV in av_clear(). This was mis-diagnosed
as recursive PL_delaymagic issue, and the fix was to temprarily reset
PL_delaymagic to zero. This stopped the mg_set() of $> and $> being
delayed.
The real problem was that mg_free wasn't clearing the [GSR]MG flags
after freeing xmg_magic. This was independently fixed by commit
68f8932eb570af656553ed44c11a23f0a216a3ec.
David Mitchell [Fri, 4 Jun 2010 16:05:21 +0000]
threads::shared: veto signal despatch if locked
This fixes RT #74868: Safe signals changes causing hangs with threads.
The basic issue is that due to changes in where safe signals can be
despatched, (including now on leaving scope), it's possible for a
perl-level signal handler to be called while PL_sharedsv_lock is held.
If the handler does locking or manipulation of shared vars, then deadlock
can occur.
A robust fix for this is to ensure that the signal handler isn't called
while we have the lock. This is done using the signal handler hook added
in the previous commit.
David Mitchell [Fri, 4 Jun 2010 15:18:05 +0000]
add PL_signalhook to hook into signal dispatch
This is initially intended for threads::shared and shouldn't (yet)
be considered part of the public API.
Rafael Garcia-Suarez [Thu, 3 Jun 2010 14:11:26 +0000]
Do not advertise Math::TrulyRandom, which hasn't been updated since 1996
(Spotted by Giel Goudsmit)
Craig A. Berry [Thu, 3 Jun 2010 12:44:17 +0000]
Remove extraneous semicolon from OP_PRIVATE_ONCE.
Thus silencing compiler noise like:
OP_PRIVATE_ONCE(op_aassign, OPpASSIGN_COMMON, ",COMMON");
........................................................^
%CC-I-EXTRASEMI, Extraneous semicolon.
at line number 846 in file D0:[craig.blead]dump.c;1
Vincent Pit [Thu, 3 Jun 2010 10:08:14 +0000]
Deprecate find_rundefsvoffset()
Vincent Pit [Thu, 3 Jun 2010 09:55:20 +0000]
The UNDERBAR macro should use find_rundefsv() as well
Vincent Pit [Thu, 3 Jun 2010 09:44:15 +0000]
Make pp_reverse fetch the lexical $_ from the correct pad
This is achieved by introducing a new find_rundefsv() function in pad.c
This fixes [perl #75436].
Abigail [Tue, 1 Jun 2010 16:27:43 +0000]
Skip two Japhs that use the fact that split in void context splitted
to @_. This is no longer true in 5.12.0 and upwards.
Slaven Rezic [Thu, 29 Apr 2010 14:04:35 +0000]
Document IO::Socket getsockopt and setsockopt
get/setsockopt are not explicitly documented. Note that the documented
sockopt() method is a wrapper around get/setsockopt, but does not cover
all cases because of the hardcoded level (= SOL_SOCKET).
Tony Cook [Mon, 31 May 2010 23:50:08 +0000]
move the fresh_perl() tests above the environment tests
the environment tests were resetting environment variables useful for
running fresh perls, like LD_LIBRARY_PATH.
Karl Williamson [Mon, 31 May 2010 03:54:32 +0000]
PATCH: teach diag.t new warning function names
A number of function names that do warnings have been added, but diag.t
hasn't kept up.
This patch changes it to look for likely function names in embed.fnc, so
it will automatically keep up in the future. There's no need to worry
about it looking for inappropriate functions, as the syntax of messages
that it looks for is so restrictive, that there won't be false
positives. Instead there are still many messages it fails to catch.
As a result of it's falling behind several issues have crept in. I
resolved the couple I thought were clear (including one in a comment;
diag.t doesn't strip comments, but mostly it doesn't matter), and added
the others to the <DATA> section to ignore.
are
H.Merijn Brand [Mon, 31 May 2010 12:35:09 +0000]
State the requirement of a C89 compliant ANSI C-compiler
Nicholas Clark [Mon, 31 May 2010 12:19:22 +0000]
In Perl_pad_add_name(), use sv_upgrade() directly rather than new[AH]V().
As newAV() and newHV() are now merely wrappers around sv_upgrade(), and the
existing SV is always brand new and of type SVt_NULL, call them on it, rather
than disposing of it as a side effect of storing a(nother new) SV.
Also, no need to set SvPADMY() again, as it is already set.
Resolves RT #73092.
Nicholas Clark [Mon, 31 May 2010 10:47:04 +0000]
Reorder the entry for die, moving discussion of the exit code later.
Change to start with "C<die> raises an exception." and phrase in terms of
handling exceptions, and then how uncaught exceptions result in process exit.
Do not give details of the exit code in the first paragraph. Move this to a
later paragraph, clarify that $! is often unpredictable, and stress that 255
is the last resort exit code.
Tony Cook [Tue, 16 Mar 2010 12:46:48 +0000]
handle perl extended utf8 start bytes
perl uses UTF8_IS_START() to test if a byte is a valid start byte,
this didn't take perl's extended UTF-8 range into account.
Father Chrysostomos [Mon, 31 May 2010 10:03:11 +0000]
[perl #70075] no 6; broken
the original patch included a fix, but this problem was fixed in
faee19b5, so only apply the test.
Karl Williamson [Sun, 30 May 2010 19:05:48 +0000]
PATCH: [perl #75138] "\c`" -> " "
Attached is a patch for some of this issue. I took Nicholas' advice,
and if the result of \cX isn't a word character, the output message will
precede it with a backslash, so the message in the example would be
"\c`" more clearly written simply as "\ " at -e line 1.
I think that message is true.
I also added tests.
There is a test that guarantees that we won't ship 5.14 with things as
they are now in it. I added wording to the comments next to that test
to be sure to verify with this email thread if we should remove the
deprecation, and mentioned that in the explanatory wording in the pod.
I support removing the deprecation, but for now I'm not touching that,
to see what other issues may yet arise before 5.14.
Karl Williamson [Fri, 28 May 2010 04:24:40 +0000]
Document tricks, work-arounds for user-defined casing
And add a .t file to verify that it works.
Jerry D. Hedden [Wed, 26 May 2010 18:50:39 +0000]
Un-TODO a threads-shared test that now passes
Commit
bb1bc619ea68d9703fbd3fe5bc65ae000f90151f has
fixed a threads-shared TODO test in t/object.t.
Karl Williamson [Wed, 5 May 2010 03:43:56 +0000]
Add mktables option for development use
The -output_names option was added. It will cause the generated file
tables to not have ranges, and each line will have the character name.
This makes it easier to compare what characters are in given tables,
from version to version, or to compare the differences between
properties.
Karl Williamson [Tue, 4 May 2010 21:14:24 +0000]
mktables -- don't create Names table unless asked
This speeds up mktables by not creating the Names table unless asked to,
by someone adding it to the list of tables to be output. Perl uses a
different table than this one for charnames, so the one being suppressed
isn't generally used. Previously it was created but not output. Now,
we skip the useless creation step.
Karl Williamson [Tue, 4 May 2010 21:10:18 +0000]
Fix priority of suppressed vs. explicitly output
It's not clear this is a real bug, but it is a surprise. If a table is
in the suppressed list, it isn't output, even if it is in the
to-be-output override list. This latter list is non-empty only if the
user has hand-edited the the program to force an output. So this patch
makes that list have priority.
Karl Williamson [Tue, 4 May 2010 17:18:59 +0000]
Remove obsolete comment
Commit:
6c4b69c35161f79a5088d6c3070cc17a0e4978b2 made this comment
obsolete; forgot to remove it then.
Karl Williamson [Tue, 4 May 2010 15:13:35 +0000]
Generate simple case folding tables only if asked
Speed up mktables by not generating the simple case folding tables
unless asked to. Previously the simple tables were generated, and then
the full tables were initialized with them, and then overwritten with
the full mappings. This is an artifact from the fact that the data
comes to us in two files, one with the simple mappings (among other
things), and another with the full mapping overrides. Now, the full
tables are initialized from the first file, and the second file
overrides the full mappings. The simple tables are not generated by
default, so this saves, copying them.
Karl Williamson [Sun, 30 May 2010 14:49:28 +0000]
Add comment about objaddr in mktables
Slightly modified to include the commit id by Steffen.
Karl Williamson [Mon, 3 May 2010 16:06:30 +0000]
Use in-line 'no overloading' for speed
An earlier performance enhancement was to change the subroutine that
gets the address of a ref to using 'no overloading' and then numifying
the ref, which returns its address. This patch speeds things up
slightly by in-lining the "no overloading" so that the function call
overhead is avoided.
It also gets rid of the kludge that was done before the original
speed-up that created a local in the call stack of one of the classes so
that the address would only have to be executed once per call stack;
This was subject to failure if maintenance of the code perturbed things
so it didn't work; now the overhead is minimal, so the address is gotten
in each call.
Karl Williamson [Sun, 16 May 2010 12:56:01 +0000]
Don't require doubled backslashes in perldiag.pod
Prior to this patch, messages in perldiag.pod had to have \\ instead of
the correct single backslash in order for diag.t to not complain.
Nicholas Clark [Sun, 30 May 2010 11:52:01 +0000]
Eliminate some newSV(0)s by merging the SV allocation with first modification.
Nicholas Clark [Sun, 30 May 2010 10:51:15 +0000]
Only allocate entries for @_ when the subroutine is first called.
Previously, @_ was allocated for every subroutine at compile time, with a
default sized AV, hence space for 4 entries. We don't actually need to
allocate the space for entries, as there is already a check at call time as to
whether @_ is long enough.
valgrind suggests that this saves allocating 23K (on a 64 bit platform) when
running pod2man on perlfunc.pod. As well as the absolute saving, there is also
benefit in deferring allocation for subroutines actually called - for a program
which forks, @_ is less likely to be in pages shared COW with the parent.
Resolves RT #72416.
Nicholas Clark [Sat, 29 May 2010 21:22:36 +0000]
Fix the regexp in t/porting/args_assert.t, and add 3 missing macros.
Resolves RT #72800.
Nicholas Clark [Sat, 29 May 2010 21:07:04 +0000]
Properly free paren_name_list with its regexp.
Previously the AV paren_name_list would "leak" until global destruction.
This was only an issue under -DDEBUGGING. Fixes RT #73438.
Karl Williamson [Fri, 15 Jan 2010 04:21:37 +0000]
Clarify that count is bytes not unicode characters
Karl Williamson [Fri, 15 Jan 2010 02:19:22 +0000]
Display characters as Unicode for clarity
Karl Williamson [Fri, 15 Jan 2010 00:36:46 +0000]
Add tested for corrupted regnode
Karl Williamson [Thu, 14 Jan 2010 23:02:14 +0000]
Use sizeof instead of hard-coded array size
The array should be declared with its actual size.
Karl Williamson [Thu, 14 Jan 2010 23:01:13 +0000]
Typo
Nicholas Clark [Sat, 29 May 2010 15:23:53 +0000]
When assigning to $^P, don't zero $DB::single, $DB::trace and $DB::signal.
Previously, whenever a true value was assigned to $^P, all 3 were set to 0.
Now only set them to 0 if they aren't already SvIOK().
Resolves RT #72422.
Nicholas Clark [Fri, 28 May 2010 15:02:12 +0000]
Migrate most other op_private to name conversion into S_op_private_to_names().
Nicholas Clark [Fri, 28 May 2010 13:33:34 +0000]
In Perl_do_op_dump(), move calls to append_flags() into S_op_private_to_names()
Nicholas Clark [Fri, 28 May 2010 13:53:04 +0000]
Add C_ARRAY_END(), returning a pointer to after the last element of an array.
Refactor the macro append_flags() in dump.c to use it.
Nicholas Clark [Fri, 28 May 2010 12:53:02 +0000]
In Perl_do_op_dump(), reorder the ops within the if (o->op_private) clause.
Nicholas Clark [Fri, 28 May 2010 12:43:43 +0000]
In Perl_do_sv_dump(), use append_flags() for PVCV, PVFM and PVGP flags.
Nicholas Clark [Fri, 28 May 2010 10:50:54 +0000]
In Perl_do_sv_dump(), for PVCV and PVFM, test for SvCOMPILED(sv) last.
Nicholas Clark [Fri, 28 May 2010 10:26:16 +0000]
In Perl_do_op_dump(), move runs of op_private name tests to S_append_flags().
Nicholas Clark [Fri, 28 May 2010 09:56:21 +0000]
Create S_append_flags() from a common code pattern in dump.c.
Convert repetitive sequences of "if this bit is set, append that string" into
structures and a function call. Use a custom macro append_flags() to make
calling it easer.
This makes the object code slightly smaller.
Nicholas Clark [Tue, 5 Jan 2010 13:06:52 +0000]
InPerl_boot_core_UNIVERSAL() use a data structure for calls to newXS{,proto}
Replacing the longhand list of calls to newXS{,proto} with loop over a data
structure reduces the object size by over 1K.
Salvador Ortiz Garcia [Fri, 28 May 2010 08:25:52 +0000]
Naif calls segfault T_PRTOBJ of the stock typemap
The T_PTROBJ INPUT in stock typemap only uses 'sv_derived_from' for
input validation, that cause a segfault when the argument passed match
the class name.
Nicholas Clark [Fri, 28 May 2010 06:58:19 +0000]
Add simple_bitmask and varies_bitmask to globvar.sym.
global.sym is generated; is there a way to automate globvar.sym?
Nicholas Clark [Wed, 17 Mar 2010 17:16:24 +0000]
Convert REGNODE_{SIMPLE,VARIES} to a bitmask lookup, from a strchr() lookup.
This is O(1) with no branching, instead of O(n) with branching.
Deprecate the old implementation's externally visible variables
PL_simple and PL_varies. Google codesearch suggests that nothing outside the
core regexp code was using these.
Nicholas Clark [Wed, 17 Mar 2010 16:41:27 +0000]
Change regcomp.pl to 0-based indexing for its arrays and loops.
Nicholas Clark [Wed, 17 Mar 2010 13:58:25 +0000]
Encapsulate lookups in PL_{varies,simple} within macros REGNODE_{VARIES,SIMPLE}
This allows the implementation of the lookup mechanism to change.
Nicholas Clark [Wed, 17 Mar 2010 13:33:48 +0000]
Generate PL_simple[] and PL_varies[] with regcomp.pl, rather than hard-coding.
Add a new flags column to regcomp.sym, with V if the node type is in PL_varies,
S if it is in PL_simple, and . if a placeholder is needed because subsequent
optional columns are present.
Nicholas Clark [Tue, 16 Mar 2010 10:22:04 +0000]
Re-work the regcomp.sym to remove use of hard tabs. No data change.
The tab separating name and type is replaced with whitespace, the tab marking
the start of the description is replaced by a semicolon.
Nicholas Clark [Tue, 16 Mar 2010 09:50:29 +0000]
Correct the node numbers in comments.
Really, should we be maintaining these manually?