perlbug-followup@perl.org [Fri, 23 Oct 2009 15:20:38 +0000]
mg.c uses a fixed NGROUPS contant
# New Ticket Created by casper.dik@sun.com
# Please include the string: [perl #69977]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=69977 >
This is a bug report for perl from casper.dik@sun.com,
generated with the help of perlbug 1.36 running under perl 5.10.0.
-----------------------------------------------------------------
[Please enter your report here]
In mg.c NGROUPS is defined as follows:
#if defined(HAS_SETGROUPS)
# ifndef NGROUPS
# define NGROUPS 32
# endif
#endif
and uses it later here:
2632 #ifdef HAS_SETGROUPS
2633 {
2634 const char *p = SvPV_const(sv, len);
2635 Groups_t *gary = NULL;
2636
2637 while (isSPACE(*p))
2638 ++p;
2639 PL_egid = Atol(p);
2640 for (i = 0; i < NGROUPS; ++i) {
2641 while (*p && !isSPACE(*p))
2642 ++p;
2643 while (isSPACE(*p))
2644 ++p;
2645 if (!*p)
2646 break;
2647 if(!gary)
2648 Newx(gary, i + 1, Groups_t);
2649 else
2650 Renew(gary, i + 1, Groups_t);
2651 gary[i] = Atol(p);
2652 }
2653 if (i)
2654 (void)setgroups(i, gary);
2655 Safefree(gary);
2656 }
2657 #else /* HAS_SETGROUPS */
This should be changed as follows
Yves Orton [Sun, 25 Oct 2009 19:37:08 +0000]
disable non-unicode case insensitive trie matching
Also revert
8902bb05b18c9858efa90229ca1ee42b17277554 as it merely
masked one symptom of the deeper problems.
Also fixes RT #69973, which was a segfault which was exposed by
8902bb05, see the ticket for further details.
http://rt.perl.org/rt3//Public/Bug/Display.html?id=69973
At the code of this is the problem that in unicode matching a bunch
of code points have case folding rules beyond just A-Z/a-z. Since
the case folding rules are decided at runtime by the string, we cant
use the same TRIE tables for both unicode/non-unicode matching.
Until this is reconciled or some other solution is found case insensitive
matching only gets the TRIE optimisation when the pattern is uniocde.
From CaseFolding.txt:
00B5; C; 03BC; # MICRO SIGN
00C0; C; 00E0; # LATIN CAPITAL LETTER A WITH GRAVE
00C1; C; 00E1; # LATIN CAPITAL LETTER A WITH ACUTE
00C2; C; 00E2; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
00C3; C; 00E3; # LATIN CAPITAL LETTER A WITH TILDE
00C4; C; 00E4; # LATIN CAPITAL LETTER A WITH DIAERESIS
00C5; C; 00E5; # LATIN CAPITAL LETTER A WITH RING ABOVE
00C6; C; 00E6; # LATIN CAPITAL LETTER AE
00C7; C; 00E7; # LATIN CAPITAL LETTER C WITH CEDILLA
00C8; C; 00E8; # LATIN CAPITAL LETTER E WITH GRAVE
00C9; C; 00E9; # LATIN CAPITAL LETTER E WITH ACUTE
00CA; C; 00EA; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
00CB; C; 00EB; # LATIN CAPITAL LETTER E WITH DIAERESIS
00CC; C; 00EC; # LATIN CAPITAL LETTER I WITH GRAVE
00CD; C; 00ED; # LATIN CAPITAL LETTER I WITH ACUTE
00CE; C; 00EE; # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
00CF; C; 00EF; # LATIN CAPITAL LETTER I WITH DIAERESIS
00D0; C; 00F0; # LATIN CAPITAL LETTER ETH
00D1; C; 00F1; # LATIN CAPITAL LETTER N WITH TILDE
00D2; C; 00F2; # LATIN CAPITAL LETTER O WITH GRAVE
00D3; C; 00F3; # LATIN CAPITAL LETTER O WITH ACUTE
00D4; C; 00F4; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
00D5; C; 00F5; # LATIN CAPITAL LETTER O WITH TILDE
00D6; C; 00F6; # LATIN CAPITAL LETTER O WITH DIAERESIS
00D8; C; 00F8; # LATIN CAPITAL LETTER O WITH STROKE
00D9; C; 00F9; # LATIN CAPITAL LETTER U WITH GRAVE
00DA; C; 00FA; # LATIN CAPITAL LETTER U WITH ACUTE
00DB; C; 00FB; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
00DC; C; 00FC; # LATIN CAPITAL LETTER U WITH DIAERESIS
00DD; C; 00FD; # LATIN CAPITAL LETTER Y WITH ACUTE
00DE; C; 00FE; # LATIN CAPITAL LETTER THORN
00DF; F; 0073 0073; # LATIN SMALL LETTER SHARP S
Nicholas Clark [Sat, 24 Oct 2009 11:14:31 +0000]
Rename to Porting/perldelta_template.pod so that t/porting/podcheck.t covers it.
Nicholas Clark [Sat, 24 Oct 2009 11:12:42 +0000]
Note that F<ext/> has become F<cpan/>, F<dist/> and F<ext/>
Nicholas Clark [Sat, 24 Oct 2009 11:57:18 +0000]
In S_pending_ident(), only call gv_fetchpvn_flags() if the warning is enabled.
ckWARN(WARN_AMBIGUOUS) is cheaper than Perl_gv_fetchpvn_flags().
Nicholas Clark [Sat, 24 Oct 2009 09:25:28 +0000]
Make defined %hash on a non-lexical (also) generate a deprecated warning.
Tk has been fixed, and no longer uses defined %stash:: to determine if a package
has been loaded.
Nicholas Clark [Sat, 24 Oct 2009 09:23:05 +0000]
Add perl5112delta, and change 5111delta from being "the" perldelta.
Nicholas Clark [Fri, 23 Oct 2009 20:30:43 +0000]
In Locale::Maketext, avoid using defined @array and defined %hash.
Nicholas Clark [Fri, 23 Oct 2009 20:33:27 +0000]
In I18N::LangTags::Detect, avoid using defined @array and defined %hash.
Nicholas Clark [Fri, 23 Oct 2009 20:30:18 +0000]
Avoid using defined @array in core tests.
Nicholas Clark [Fri, 23 Oct 2009 20:29:49 +0000]
Avoid using defined %hash in core code and tests.
Chris Williams [Fri, 23 Oct 2009 21:00:37 +0000]
Updated Module::Load::Conditional to cpan version 0.32
Vincent Pit [Fri, 23 Oct 2009 20:34:04 +0000]
Cap the exit code of the bisecting script
Segfaults cause $? to be set to 139 on my machine, which stops the bisect
process.
Vincent Pit [Fri, 23 Oct 2009 20:26:57 +0000]
"-x ./foo" isn't a shell command, but "[ -x ./foo ]" is
Nicholas Clark [Fri, 23 Oct 2009 19:58:28 +0000]
Convert the 2 Storable tests that use Test to use Test::More.
Nicholas Clark [Fri, 23 Oct 2009 19:52:39 +0000]
Convert the Pod::Perldoc tests from Test to Test::More.
Not that they test much, other than require of the various modules.
Nicholas Clark [Fri, 23 Oct 2009 19:44:42 +0000]
Convert the odd Locale::Maketext test out from Test to Test::More.
All the others were using Test::More already.
Nicholas Clark [Fri, 23 Oct 2009 18:37:25 +0000]
Convert File/CheckTree.t from Test to Test::More.
Nicholas Clark [Fri, 23 Oct 2009 17:32:22 +0000]
Convert tests in ext/ from Test to Test::More.
Nicholas Clark [Fri, 23 Oct 2009 15:54:10 +0000]
S_run_user_filter() can use the filter GV itself for the cache buffer.
This saves allocating an extra SV head and body.
Nicholas Clark [Fri, 23 Oct 2009 14:44:16 +0000]
S_utf16_textfilter() can use the filter GV itself for an SV buffer.
This saves allocating an extra SV head and body.
Chris Williams [Fri, 23 Oct 2009 11:33:09 +0000]
Updated CPANPLUS to cpan version 0.89_04
Changes for 0.89_04 Fri Oct 23 11:12:57 2009
================================================
* Added deprecated dual-life module support which
requires newer versions of Module::CoreList and
Module::Load::Conditional
Chris Williams [Fri, 23 Oct 2009 11:30:26 +0000]
Updated Module::Load::Conditional to cpan version 0.31_01
Changes for 0.31_01 Fri Oct 23 09:47:12 BST 2009
=================================================
* Added DEPRECATED and support for determining if
a core module is loaded from perl lib path and
setting uptodate accordingly.
Zefram [Fri, 23 Oct 2009 09:13:21 +0000]
a2p match() faulty
While I was doing the $[ thing, I discovered a bug in a2p's handling of
the match() operator. It uses a comma operator, which has unintended
behaviour in list context (e.g., in a print statement). It also returns
empty string for a non-match, rather than the required 0.
Rafael Garcia-Suarez [Fri, 23 Oct 2009 07:52:12 +0000]
CPAN release of Switch 2.16
H.Merijn Brand [Fri, 23 Oct 2009 06:23:12 +0000]
ExtUtils-Install tests need abs_path @INC for utf8
Zefram [Thu, 22 Oct 2009 23:27:42 +0000]
a2p generates code using $[
I missed earlier that the a2p documentation mentions $[. Patch attached.
The same doc section has a couple of other paragraphs that look like
they need updating, but I'm not sure what to do with them: one refers
to keys() not applying to arrays, and one is about $#.
-zefram
Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
Zefram [Thu, 22 Oct 2009 22:27:57 +0000]
[perl #69838] a2p generates code using $[
Rafael Garcia-Suarez [Thu, 22 Oct 2009 22:22:16 +0000]
[perl #69903] 5.10.1 perlretut section "A bit of magic: executing Perl code in a regular expression" documentation
The docs were now wrong, due to new optimisations to the regexp engine.
Ben Morrow [Wed, 21 Oct 2009 14:33:55 +0000]
Let SvRX(OK) recognise a bare REGEXP.
This means that re::is_regexp(${qr/x/}) will now return true.
Ben Morrow [Thu, 22 Oct 2009 21:17:51 +0000]
RT#69616: regexp SVs lose regexpness in assignment
It uses reg_temp_copy to copy the REGEXP onto the destination SV without
needing to copy the underlying pattern structure. This means changing
the prototype of reg_temp_copy, so it can copy onto a passed-in SV, but
it isn't API (and probably shouldn't be exported) so I don't think this
is a problem.
Rafael Garcia-Suarez [Thu, 22 Oct 2009 21:04:14 +0000]
Remove the venerable fatal error "Runaway format"
This solves bug "[perl #69927] wrong runaway error for write",
which is a link to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=77707
Rafael Garcia-Suarez [Thu, 22 Oct 2009 20:39:45 +0000]
Remove file t/0 added by last commit
Make the test create it instead
Brad Gilbert [Thu, 22 Oct 2009 20:03:40 +0000]
Bare readdir in while loop now sets $_
Rafael Garcia-Suarez [Thu, 22 Oct 2009 19:57:00 +0000]
POD link fix
Nicholas Clark [Thu, 22 Oct 2009 19:17:54 +0000]
In S_utf16_textfilter() replace sv_chop() with code, as we move 1 byte at most.
Nicholas Clark [Thu, 22 Oct 2009 18:39:30 +0000]
S_utf16_textfilter() needs to avoid splitting UTF-16 surrogate pairs.
Easier said than done.
Nicholas Clark [Thu, 22 Oct 2009 15:39:38 +0000]
Test requiring files with non-BMP characters (encoded as surrogate pairs).
Nicholas Clark [Thu, 22 Oct 2009 14:28:47 +0000]
Tests for UTF-16 characters > 256, including those containing the octet 10.
H.Merijn Brand [Thu, 22 Oct 2009 14:15:29 +0000]
../lib isn't valid after a chdir "..";
Nicholas Clark [Thu, 22 Oct 2009 12:30:03 +0000]
Perl_utf16_to_utf8() should treat "\0" like any every other odd-length input.
The "be understanding" bodge to not panic, introduced in
1de9afcdf18cf98b, is
no longer needed now that
c28d61051c446453 fixes the underlying problem.
Nicholas Clark [Thu, 22 Oct 2009 10:50:40 +0000]
Re-write S_utf16_textfilter() to correctly handle partial reads of UTF-16.
Treat any (and all) octects after the BOM (or all, if there was no BOM) as
initial read data for the filter, and call it to convert them to the first
line, reading more if necessary. This correctly handles the "problem" that
UTF-16LE read as a line, on the assumption that it's ASCII/ISO-8859-*/UTF-8/etc
will be truncated after the first octect of the "\n\0" pair that is "\n"
encoded as UTF-16LE. This fixes bug #69678.
Read from the upstream filter in block mode, rather than line mode.
Nicholas Clark [Thu, 22 Oct 2009 08:26:58 +0000]
Remove the "hack" that removes SVt_UTF8 in the UTF16 filter, by fixing t/TEST
Given that t/TEST already had code to add -I../lib when testing UTF-8 with
-utf8, do likewise for testing UTF-16 with -utf16.
Chris Williams [Thu, 22 Oct 2009 09:25:33 +0000]
Added 2.21 changes to the Module::CoreList Changes file
Chris Williams [Thu, 22 Oct 2009 09:18:05 +0000]
Updated Changes file for Module::CoreList
Rafael Garcia-Suarez [Wed, 21 Oct 2009 17:34:06 +0000]
Bump base and fields versions to 2.15
Rafael Garcia-Suarez [Wed, 21 Oct 2009 17:07:09 +0000]
Fix built-in prototype of each, keys, and values
Since those keywords can now compile to two different ops each,
the usual inspection of opflags is not sufficient for perl to
return a meaningful prototype. So we hardcode the correct return
value for 5.12 : \[@%]
David Golden [Thu, 22 Oct 2009 03:25:49 +0000]
Install Switch from CPAn into 'site', not 'perl'
Nicholas Clark [Wed, 21 Oct 2009 19:28:36 +0000]
Refactor S_utf16_textfilter() to use a second SV for the UTF-16 input.
Re-use the same SV for each call. Store it in IoTOP_GV(filter).
Nicholas Clark [Wed, 21 Oct 2009 17:42:57 +0000]
Perl_utf16_to_utf8() should return the correct length when being "understanding"
("be understanding" being a bodge added in
1de9afcdf18cf98b, which will soon go
when I fix the underlying cause of the bugs it works around.)
Nicholas Clark [Wed, 21 Oct 2009 20:40:06 +0000]
Remove the PERLIO * argument to S_filter_gets(), as it's always PL_rsfp
Conceptually it's also wrong, as if there are source filters, the passed-in
file handle is not passed up the stack of filters for the topmost filter to
use to read from. It was in the parameter list from the first creation of
filter_gets() in
16d20bd98cd29be76029ebf04027a7edd34d817b, when calls to
sv_gets() were replaced by it.
Jan Dubois [Wed, 21 Oct 2009 18:07:35 +0000]
Fix off-by-one error in
e92c6be8349ad1d36d6df1dcb526fd37421e9970.
This solves the curious crashes in op/fork.t that I'm seeing on *some*
Windows machines. After locating the problem I'm surprised that not
more machines run into these crashes, especially the smoke testers
running on Windows 2000.
Abhijit Menon-Sen [Wed, 21 Oct 2009 15:53:24 +0000]
Fix (comment) typo pointed out by Robin Barker
David Golden [Wed, 21 Oct 2009 15:24:48 +0000]
Fix uninitialized warnings in Pod::Perldoc
Nicholas Clark [Wed, 21 Oct 2009 14:19:12 +0000]
S_utf16_textfilter() needs FILTER_DATA() to get the filter's state SV.
aa6dbd607b0a3d8a wrongly assumed that the filter's state SV was the SV passed
in as an argument to the filter read function.
David Golden [Wed, 21 Oct 2009 11:49:40 +0000]
Fix documentation of Module::CoreList::is_deprecated
Nicholas Clark [Wed, 21 Oct 2009 11:41:21 +0000]
S_utf16_textfilter() was failing honour error returns from FILTER_READ()
Nicholas Clark [Wed, 21 Oct 2009 10:59:05 +0000]
panic if S_utf16_textfilter() is called in block mode.
Nicholas Clark [Wed, 21 Oct 2009 10:06:43 +0000]
Make filter_read() in block mode create a well-formed SV with a trailing '\0'
Nicholas Clark [Wed, 21 Oct 2009 09:10:05 +0000]
Fix precedence error in Module::CoreList's test, which was causing it to fail.
David Golden [Tue, 20 Oct 2009 01:42:28 +0000]
Revised Module::CoreList::is_deprecated
The is_deprecated() function now expects to be called as a function,
not a method to be consistent with other Module::CoreList functions.
The %deprecated hash now is versioned by Perl version, so tests
and is_deprecated are revised accordingly.
David Golden [Wed, 21 Oct 2009 03:25:40 +0000]
Auto-generate deprecation list via corelist.pl
Chris Williams [Tue, 20 Oct 2009 23:01:18 +0000]
Module::CoreList, implemented is_deprecated() and added tests for it.
Module::CoreList->is_deprecated( 'Switch' ); # assumes $]
Module::CoreList->is_deprecated( 'Switch', 5.01000 );
Jesse Vincent [Tue, 20 Oct 2009 15:59:03 +0000]
release manager guide notes updates
Jesse Vincent [Tue, 20 Oct 2009 15:56:54 +0000]
pod nits from nicholas and zefram
Jesse Vincent [Tue, 20 Oct 2009 15:55:07 +0000]
set the release date for 5.11.1
Jesse Vincent [Tue, 20 Oct 2009 15:48:58 +0000]
Module::CoreList version bump for 5.11.1 release
Jesse Vincent [Tue, 20 Oct 2009 15:46:56 +0000]
Module::CoreList updated for 5.11.1
Jesse Vincent [Tue, 20 Oct 2009 15:35:09 +0000]
make regen; make regen_perly
Jesse Vincent [Tue, 20 Oct 2009 15:31:09 +0000]
Acknowledgments in perldelta
Jesse Vincent [Tue, 20 Oct 2009 15:17:55 +0000]
perldelta formatting
Jesse Vincent [Tue, 20 Oct 2009 15:10:54 +0000]
perl5111delta now includes all changes between 5.11.0 and 5.11.1 and has been lightly copyedited
Jesse Vincent [Tue, 20 Oct 2009 15:03:10 +0000]
perldelta cleanup
Jesse Vincent [Tue, 20 Oct 2009 14:54:38 +0000]
release manager guide notes updated
Jesse Vincent [Tue, 20 Oct 2009 14:52:07 +0000]
suidperl is no longer available. INSTALL should not say it is
Jesse Vincent [Tue, 20 Oct 2009 14:49:51 +0000]
Bump 5.11.0 -> 5.11.1 in all sorts of places it's (oh so unfortunately) hardcoded
Jesse Vincent [Tue, 20 Oct 2009 14:30:20 +0000]
We should not bump the perl version in the release schedule as part of releng
Jesse Vincent [Tue, 20 Oct 2009 14:24:05 +0000]
ExtUitls::Install had changes since 5.11.0 - bump its version
Jesse Vincent [Tue, 20 Oct 2009 14:17:45 +0000]
Bump OS2::DLL's version since it differs from what was shipped in 5.11.0
Jesse Vincent [Tue, 20 Oct 2009 14:16:50 +0000]
Bump OS2::Process's version since it differs from the version in 5.11.0
Jesse Vincent [Tue, 20 Oct 2009 14:16:17 +0000]
Bump overload.pm's version since it differs from the version in 5.11.0
Jesse Vincent [Tue, 20 Oct 2009 14:15:05 +0000]
Bump Carp.pm's version number since it differs from the version in 5.11.0
Jesse Vincent [Tue, 20 Oct 2009 14:14:23 +0000]
Bump mro's version number and copyright year, since it differs from 5.11.0
Jesse Vincent [Tue, 20 Oct 2009 14:13:16 +0000]
Bump B::Consise's version number since it's changed since 5.11.0
Jesse Vincent [Tue, 20 Oct 2009 14:09:14 +0000]
Revert accidental executability of several pod files
Jesse Vincent [Tue, 20 Oct 2009 13:57:48 +0000]
Updated perlport.pod with notes on VMS support from Craig Berry
Jesse Vincent [Tue, 20 Oct 2009 13:56:04 +0000]
Added perldelta notes for yves' regex semantics fixups and W2k and VMS "known issues"
Rafael Garcia-Suarez [Tue, 20 Oct 2009 12:41:43 +0000]
Update Switch version in Maintainers.pl after CPAN upload
Rafael Garcia-Suarez [Tue, 20 Oct 2009 12:35:28 +0000]
Bump version of Switch to 2.15 for CPAN release
Nicholas Clark [Tue, 20 Oct 2009 08:48:38 +0000]
Pull out filter setup code from S_swallow_bom() into S_add_utf16_textfilter()
Nicholas Clark [Tue, 20 Oct 2009 07:11:07 +0000]
MAD-only code in S_swallow_bom() duplicated the actions of sv_setpvn()
Remove it. All its writes were byte-for-byte identical with the memory they
overwrote. The bugs it attempts to fix are real, but caused by the design and
implementation of other parts of this routine and S_utf16_textfilter().
David Golden [Tue, 20 Oct 2009 01:36:50 +0000]
Merge branch 'corelist-deprecated' into blead
David Golden [Tue, 20 Oct 2009 01:36:16 +0000]
formally mark deprecations in Maintainers.pl
Jesse Vincent [Tue, 20 Oct 2009 01:24:39 +0000]
Revert part of d1eb317 which broke ./Configure -des -Dusedevel;make
Jesse Vincent [Mon, 19 Oct 2009 21:18:11 +0000]
Updating Win32 0.39 to have the same line-endings as CPAN
Jesse Vincent [Mon, 19 Oct 2009 21:04:50 +0000]
Maintainers.pl updates to better match reality
Jesse Vincent [Mon, 19 Oct 2009 20:17:28 +0000]
piconv.t from Encode isn't excluded. Fix Maintainers.pl
Yves Orton [Mon, 19 Oct 2009 20:49:53 +0000]
revert to 5.8.x semantics for \s \w and \d
revert
ba9ac1759cb6e7a5e6883c85edd0b450061b5ccb
Changing the semantics of \w \s and \d breaks too much
and Jesse wants to do a rollout. This disables the new
semantics until we can get all the details worked out.
Yves Orton [Sat, 17 Oct 2009 20:47:20 +0000]
somewhat fix failing regex tests. but break lots of other stuff at the same time
Jan Dubois [Mon, 19 Oct 2009 20:50:54 +0000]
Perl builds fine on Windows 7