summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Bump version to 5.11.5Steve Hay2010-02-2020-126/+126
|
* Stop Porting/bump-perl-version from changing EOLs on Win32Steve Hay2010-02-201-0/+2
|
* Almost the final updates to perl5115delta.podSteve Hay2010-02-201-0/+27
|
* Update Porting/Maintainers.pl with version bumps that have been forgottenSteve Hay2010-02-201-3/+3
| | | | | This should also bump version to 0.82, but only 0.80 is actually on CPAN. Likewise, Pod::Perldoc should say 3.15_02, but only 3.15_01 is on CPAN.
* unTODO some passing TODO tests in reg_fold.tDavid Mitchell2010-02-201-1/+6
| | | | | As far as I can tell these particular tests were never actually TODO, but were lumped in with other failing tests for ease of coding the .t file
* Fix apidoc for HeUTF8()Marcus Holland-Moritz2010-02-201-1/+1
| | | | HeUTF8() onlu takes one argument.
* Update perl5115delta.pod with new diagnosticsSteve Hay2010-02-201-0/+51
|
* PATCH: deprecation warnings for unreasonable charnamesKarl Williamson2010-02-204-2/+99
| | | | | | | | | | | | | | | | | Prior to now just about anything has been legal for a character name in \N{...}. This means that legal code was broken by having \N{3,4} for example mean [^\n]{3,4}. Such code doesn't come from standard charnames, but from legal custom translators. This patch deprecates "unreasonable" names. handy.h is changed by the addition of macros that taken together define the names we deem reasonable, namely alpha beginning with alphanumerics and some punctuations as continuations. toke.c is changed to parse each name and to raise a warning if any problematic characters are found. Some tests and diagnostic documentation are also included.
* Improve handling of qq(\N{...}); and /xKarl Williamson2010-02-203-29/+126
| | | | | | | | | | | | It is possible to bypass the lexer's parsing of \N. This patch causes the regex compiler to deal with that better. The compiler no longer assumes that the lexer parsed the \N. It generates an error message if the \N isn't in a form it is expecting, and invalid hexadecimal digits are now fatal errors, with the position of the error more clearly marked. The diagnostic pod has been updated to reflect the new error messages, with some slight clarifications to the previous ones as well.
* Add some missing dVAR'sMarcus Holland-Moritz2010-02-203-0/+4
| | | | | | Commits c3acb9e0760135dfd888c0ee1b415777d784aabc, 867fa1e2da145229b4db2c6e8d5b51700c15f114 and f0e67a1d29102aa9905aecf2b0f98449697d5af3 added or changed functions that now require a dVAR declaration to compile with -DPERL_GLOBAL_STRUCT.
* Regen headers after previous patchesSteve Hay2010-02-202-0/+5
|
* Add X flag to embed.fnc entries.Karl Williamson2010-02-201-11/+11
| | | | | It has been pointed out that the E flag should be accompanied by the X flag, and is not for these recently changed entries.
* Move some fncs from Public to extensions visibleKarl Williamson2010-02-201-10/+10
| | | | | | | | | | Run make regen embed.fnc on this patch. Several functions are in the public API, but don't need to be. They are helpers for the regex engine, and thus need to be visible to extensions for 'use re "debug"'.
* More updates to perl5115delta.podSteve Hay2010-02-201-0/+10
|
* Avoid returning an undefined SV*Rafael Garcia-Suarez2010-02-191-1/+2
|
* Regen headers after previous patchesRafael Garcia-Suarez2010-02-192-8/+13
|
* Make a missing right brace on \N{ fatalKarl Williamson2010-02-192-39/+24
| | | | | | It was decided that this should be a fatal error instead of a warning. Also some comments were updated..
* PATCH: [perl #56444] delayed interpolation of \N{...}Karl Williamson2010-02-1910-374/+659
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | make regen embed.fnc needs to be run on this patch. This patch fixes Bugs #56444 and #62056. Hopefully we have finally gotten this right. The parser used to handle all the escaped constants, expanding \x2e to its single byte equivalent. The problem is that for regexp patterns, this is a '.', which is a metacharacter and has special meaning that \x2e does not. So things were changed so that the parser didn't expand things in patterns. But this causes problems for \N{NAME}, when the pattern doesn't get evaluated until runtime, as for example when it has a scalar reference in it, like qr/$foo\N{NAME}/. We want the value for \N{NAME} that was in effect at the point during the parsing phase that this regex was encountered in, but we don't actually look at it until runtime, when these bug reports show that it is gone. The solution is for the tokenizer to parse \N{NAME}, but to compile it into an intermediate value that won't ever be considered a metacharacter. We have chosen to compile NAME to its equivalent code point value, and express it in the already existing \N{U+...} form. This indicates to the regex compiler that the original input was a named character and retains the value it had at that point in the parse. This means that \N{U+...} now always must imply Unicode semantics for the string or pattern it appeared in. Previously there was an inconsistency, where effectively \N{NAME} implied Unicode semantics, but \N{U+...} did not necessarily. So now, any string or pattern that has either of these forms is utf8 upgraded. A complication is that a charnames handler can return a sequence of multiple characters instead of just one. To deal with this case, the tokenizer will generate a constant of the form \N{U+c1.c2.c2...}, where c1 etc are the individual characters. Perhaps this will be made a public interface someday, but I decided to not expose it externally as far as possible for now in case we find reason to change it. It is possible to defeat this by passing it in a single quoted string to the regex compiler, so the documentation will be changed to discourage that. A further complication is that \N can have an additional meaning: to match a non-newline. This means that the two meanings have to be disambiguated. embed.fnc was changed to make public the function regcurly() in regcomp.c so that it could be referred to in toke.c to see if the ... in \N{...} is a legal quantifier like {2,}. This is used in the disambiguation. toke.c was changed to update some out-dated relevant comments. It now parses \N in patterns. If it determines that it isn't a named sequence, it passes it through unchanged. This happens when there is no brace after the \N, or no closing brace, or if the braces enclose a legal quantifier. Previously there has been essentially no restriction on what can come between the braces so that a custom translator can accept virtually anything. Now, legal quantifiers are assumed to mean that the \N is a "match non-newline that quantity of times". I removed the #ifdef'd out code that had been left in in case pack U reverted to earlier behavior. I did this because it complicated things, and because the change to pack U has been in long enough and shown that it is correct so it's not likely to be reverted. \N meaning a named character is handled differently depending on whether this is a pattern or not. In all cases, the output will be upgraded to utf8 because a named character implies Unicode semantics. If not a pattern, the \N is parsed into a utf8 string, as before. Otherwise it will be parsed into the intermediate \N{U+...} form. If the original was already a valid \N{U+...} constant, it is passed through unchanged. I now check that the sequence returned by the charnames handler is not malformed, which was lacking before. The code in regcomp.c which dealt with interfacing with the charnames handler has been removed. All the values should be determined by the time regcomp.c gets involved. The affected subroutine is necessarily restructured. An EXACT-type node is generated for the character sequence. Such a node has a capacity of 255 bytes, and so it is possible to overflow it. This wasn't checked for before, but now it is, and a warning issued and the overflowing characters are discarded.
* Update perldelta for 5.12 to warn vendors about deprecate.pmJesse Vincent2010-02-181-0/+11
| | | | (See [perl #72670])
* rt #72866 - add magic to arrayrefs assigned to *Foo::ISATony Cook2010-02-182-5/+27
| | | | | | | The fix for rt #60220 (26d68d86) updated the isa cache when an arrayref was assigned to some *ISA, but didn't add the magic to the new @ISA to catch any further updates to it. Add the magic, and tests.
* Avoid a panic from the UTF-8 length cache if the length overflows 32 bits.Nicholas Clark2010-02-181-0/+4
| | | | | | Rather than storing a value, and having it wrap to a wrong value, treat such lengths as "still unknown". This is a work around until a proper solution is designed an implemented.
* In Perl_reg_temp_copy(), ensure SvMAGIC() is NULL in the new REGEXP.Nicholas Clark2010-02-181-0/+1
| | | | | | Change c2123ae380a372d5 exposed the fact that Perl_reg_temp_copy() didn't reset SvMAGIC() to NULL after block copying the "parent" regexp. The analagous problem with SvSTASH() was fixed with change b9ad13acb338e137.
* Keep perl5115delta.pod up to dateSteve Hay2010-02-181-1/+1
|
* Upgrade podlators from 2.3.0 to 2.3.1Steve Hay2010-02-184-4/+4
| | | | | Ensures that all $VERSIONs are bumped in files that have changed since Perl 5.11.4.
* Update perl5115delta.pod with today's changesSteve Hay2010-02-181-1/+8
|
* Upgrade CPAN from 1.94_55 to 1.94_56Steve Hay2010-02-189-9/+17
| | | | | Ensures that all $VERSIONs are bumped in files that have changed since Perl 5.11.4.
* Merge branch 'pod-perlrepository' of git://github.com/avar/perl into bleadJesse Vincent2010-02-171-16/+25
|\ | | | | | | | | | | | | | | | | * 'pod-perlrepository' of git://github.com/avar/perl: Mention why it's a good idea to use topic branches for everything Adjusted the git config user.name/user.email example for what 99% of users would like to do Prefix commands universally with "%". Most of the POD used that convention but a few cases didn't Don't recommend that people manually fiddle with their F<.git/config>, instead they should edit it with L<git-config(1)> Note that checking out from git via http:// is at least 4x slower than git://
| * Mention why it's a good idea to use topic branches for everythingÆvar Arnfjörð Bjarmason2010-02-161-0/+8
| | | | | | | | | | | | | | Most of this is derived from Dan Golden's E-Mail to me on perl5-porters with the subject "[PATCH] Add comments to gv.c about variable implementation" where I'd submitted a patch without using a topic branch.
| * Adjusted the git config user.name/user.email example for what 99% of users ↵Ævar Arnfjörð Bjarmason2010-02-161-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | would like to do Almost nobody wants to set user.name/user.email on a per-repository basis as the previous example suggested. I put in a new example that shows how to use C<git config --global> along with an example of how to set user.email just for F<perl-git> I replaced Leon Brocard's name with mine because he didn't fit into the multiple E-Mail address example and I couldn't think of another example.
| * Prefix commands universally with "%". Most of the POD used that convention ↵Ævar Arnfjörð Bjarmason2010-02-161-6/+6
| | | | | | | | but a few cases didn't
| * Don't recommend that people manually fiddle with their F<.git/config>, ↵Ævar Arnfjörð Bjarmason2010-02-161-9/+4
| | | | | | | | instead they should edit it with L<git-config(1)>
| * Note that checking out from git via http:// is at least 4x slower than git://Ævar Arnfjörð Bjarmason2010-02-161-1/+1
| | | | | | | | | | | | Tested on a 10 MiB/s connection in London, although this is also IO/CPU bound since Git needs to resolve deltas and check out after the repository has made it across the wire.
* | Make the new Socket implementation of inet_pton consistent with the existing ↵Jesse Vincent2010-02-172-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Socket6 implementation of inet_pton. Fix for release-blocking ticket [perl #72884] > |https://rt.cpan.org/Ticket/Display.html?id=52497|4411113f|NJH/IO-Socket-Multicast6-0.03.tar.gz | I'll describe what's happening here, and leave it to everyone else to decide which of the interacting events is the bug, or where the fix might be. So the *entire* change is this: commit 4411113f31b3f00171bb335092b02104d29d7cd7 Author: Rafael Garcia-Suarez <rgarciasuarez@gmail.com> Date: Fri Mar 27 13:19:16 2009 +0100 Add inet_pton and inet_ntop to the list of functions exported by Socket diff --git a/ext/Socket/Socket.pm b/ext/Socket/Socket.pm index 6b268ef..7d130ba 100644 --- a/ext/Socket/Socket.pm +++ b/ext/Socket/Socket.pm @@ -198,6 +198,7 @@ use XSLoader (); @ISA = qw(Exporter); @EXPORT = qw( inet_aton inet_ntoa + inet_pton inet_ntop sockaddr_family pack_sockaddr_in unpack_sockaddr_in pack_sockaddr_un unpack_sockaddr_un and test fails like this: $ /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/bin/perl5.11.4 -Mblib t/35mcastsend.t 1..11 Constant subroutine IO::Socket::Multicast6::AF_INET6 redefined at /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/lib/perl5/5.11.4/Exporter.pm line 64. at /home/nick/.cpan/build/IO-Socket-Multicast6-0.03-CqGAYT/blib/lib/IO/Socket/Multicast6.pm line 10 Prototype mismatch: sub IO::Socket::Multicast6::AF_INET6 () vs none at /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/lib/perl5/5.11.4/Exporter.pm line 64. at /home/nick/.cpan/build/IO-Socket-Multicast6-0.03-CqGAYT/blib/lib/IO/Socket/Multicast6.pm line 10 Constant subroutine IO::Socket::Multicast6::PF_INET6 redefined at /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/lib/perl5/5.11.4/Exporter.pm line 64. at /home/nick/.cpan/build/IO-Socket-Multicast6-0.03-CqGAYT/blib/lib/IO/Socket/Multicast6.pm line 10 Prototype mismatch: sub IO::Socket::Multicast6::PF_INET6 () vs none at /home/nick/Sandpit/snap5.9.x-v5.11.4-85-g95c9bfa/lib/perl5/5.11.4/Exporter.pm line 64. at /home/nick/.cpan/build/IO-Socket-Multicast6-0.03-CqGAYT/blib/lib/IO/Socket/Multicast6.pm line 10 ok 1 - use IO::Socket::Multicast6; ok 2 - Create IPv4 multicast socket ok 3 - Combined IPv4 destination address and port ok 4 - Separate IPv4 destination address and port Bad arg length for Socket::pack_sockaddr_in, length is 16, should be 4 at t/35mcastsend.t line 26. The warnings aren't actually really relevant. The "problem"s are: IO::Socket::Multicast6 isa IO::Socket::INET6 IO::Socket::INET6 isa IO::Socket so they chose to inherit all behaviour from IO::Socket. In turn IO::Socket isa IO::Handle isa Exporter. IO::Socket chooses to export everything that Socket does: sub import { my $pkg = shift; if (@_ && $_[0] eq 'sockatmark') { # not very extensible but for now, fast Exporter::export_to_level('IO::Socket', 1, $pkg, 'sockatmark'); } else { my $callpkg = caller; Exporter::export 'Socket', $callpkg, @_; } } So, this means that all those choices and delegation of behaviour (and responsibility) means that all those modules export whatever Socket exports. OO modules. So, now they also export inet_pton and inet_ntop. The test is careful to only import what it needs: use strict; use Socket6 qw/ inet_pton pack_sockaddr_in6/; use Socket qw/ pack_sockaddr_in /; use Test::More tests => 11; in particular, it wants inet_pton from Socket6, and only pack_sockaddr_in from Socket. So at that point, main::inet_pton is Socket6::inet_pton Then it does this, correctly in a BEGIN block: BEGIN { use_ok( 'IO::Socket::Multicast6' ); } The side effect of this is to import all exports from IO::Socket::Multicast6. Which, from the above chain of inheritance, is @Socket::EXPORT. So at this point, main::inet_pton is rebound to Socket::inet_pton And the test fails, because they differ, and it expected (and wanted) Socket6::inet_pton(). Socket6::inet_pton() returns 4 bytes for AF_INET, 16 bytes for AF_INET6. Socket::inet_pton() returns 16 for both. Socket::pack_sockaddr_in() wants 4 bytes. Now, to add to the fun: use IO::Socket::Multicast6 (); and use IO::Socket::Multicast6; of course mean different things. The former suppresses all exports. It turns out that with Test::More::isa_ok() has no way of doing the former: $ cat use_ok.pl use warnings; use strict; use Test::More tests => 3; package clash; BEGIN { main::use_ok 'Socket' }; package crunch; BEGIN { main::use_ok 'Socket', () }; package biff; BEGIN { main::use_ok 'Socket', 'sockaddr_family' }; package main; sub dump_lowercase_keys { my $package = shift; print "For package $package:\n"; no strict 'refs'; print " $_\n" foreach sort grep {!tr/A-Z//} keys %{"${package}::"}; print "\n"; } dump_lowercase_keys $_ foreach qw (clash crunch biff); __END__ $ perl use_ok.pl 1..3 ok 1 - use Socket; ok 2 - use Socket; ok 3 - use Socket; For package clash: inet_aton inet_ntoa pack_sockaddr_in pack_sockaddr_un sockaddr_family sockaddr_in sockaddr_un unpack_sockaddr_in unpack_sockaddr_un For package crunch: inet_aton inet_ntoa pack_sockaddr_in pack_sockaddr_un sockaddr_family sockaddr_in sockaddr_un unpack_sockaddr_in unpack_sockaddr_un For package biff: sockaddr_family So, there's no clean way to rewrite that test with use_ok to suppress imports. So, to summarise, it's due to A cascade of modules blindly exporting everything that Socket exports Socket::inet_pton() and Socket6::inet_pton() differing in behaviour A test that fails to realise that it's importing everything via use_ok This one ranks as blocker because: Socket::inet_pton() and Socket::inet_ntop() are not in any stable release Hence we have the option to change them if we do it *NOW*. I think that the right fix is the appended patch. This makes the new Socket implementation of inet_pton consistent with the existing Socket6 implementation of inet_pton.
* | Documentation fix in perldoc's usage statement. (-A -> -v)Offer Kaye2010-02-171-2/+2
| | | | | | | | Reported in: <5694251002150108m12a3d68flb196f14a45103149@mail.gmail.com>
* | Change my email address from work to homeSteve Hay2010-02-173-3/+4
| |
* | Keep perl5115delta.pod up to dateSteve Hay2010-02-161-4/+8
| |
* | Fix another place where I typoed book's nameJesse Vincent2010-02-161-1/+1
| |
* | Doc fix. Thanks to Bram.Jesse Vincent2010-02-161-1/+1
| |
* | Fix #72850 - reading $! shouldn't SEGV if Strerror(errno) returns NULL.Nicholas Clark2010-02-162-2/+9
| | | | | | | | | | | | | | This can happen on some OSes for out of range errno values. The bug was introduced with 0097b436152452e4, which in turn fixed #61976. Test case by Steve Peters.
* | $name =~ /Phill?ipp?e?/ && $name eq "Philippe" # FAILPhilippe Bruhat (BooK)2010-02-161-1/+1
| |
* | Added a sucker for the August 20 releaseJesse Vincent2010-02-161-2/+4
| |
* | Updated release schedule through July 2010Jesse Vincent2010-02-161-1/+5
|/
* Remove unused variableH.Merijn Brand2010-02-161-2/+0
|
* Doc adjustment about lock(), by Daniel Frederick CrismanRafael Garcia-Suarez2010-02-161-2/+2
|
* Add our repository URL as a 'repository' key in META.yml.Nicholas Clark2010-02-152-0/+2
|
* Bump version's $VERSIONSteve Hay2010-02-141-1/+1
| | | | | version.pm was changed by 61a0cb1c57a82d328c88c2dd525c91495edb2db9 and Jesse confirms that the $VERSION should be bumped as a result.
* Make distclean work again on Win32Steve Hay2010-02-142-33/+85
| | | | Cf. 71eaafb1e6768e777bc805cc8490b55c6e77da64
* First stab at a perl5115delta.pod with just under a week to goSteve Hay2010-02-141-129/+90
|
* Update AUTHORS and Porting/checkAUTHORS.pl with new names and aliasesSteve Hay2010-02-142-0/+2
|
* Convert Perl_sv_pos_u2b_proper() to Perl_sv_pos_u2b_flags().Nicholas Clark2010-02-147-39/+42
| | | | | | | Change from a value/return offset pointer to passing a Unicode offset, and returning a byte offset. The optional length value/return pointer remains. Add a flags argument, passed to SvPV_flags(). This allows the caller to specify whether mg_get() should be called on sv.