summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* mktables: Add Perl_IDStart propertyKarl Williamson2011-10-011-0/+11
| | | | | | | This is a space/time trade-off. We add a table that is compiled to calculate what Perl wants for a character to be the beginning of an identifier. This will enable us to not have to take the && of two tables.
* perlunicode, perluniprops: \p{Title} is Perl extensionKarl Williamson2011-10-011-2/+2
| | | | | This property is not official Unicode, and so should be documented by us.
* Restore the package name to overload errors; fix crashFather Chrysostomos2011-09-301-3/+11
| | | | | | | | | | | | | | Commit bfcb351493b (which was backported to 5.8.8) caused these error messages always to mention the overload package, instead of the pack- age involved: Can't resolve method "foo" overloading "+" in package "baz" Stub found while resolving method "foo" overloading "+" in package "baz" This commit fixes that. A compiler warning alerted me to the possi- bility of HvNAME being null, so I wrote a small test for that, found that it crashed, and incorporated the fix for the crash into the same commit (since it’s the same line of code).
* Dual-life perlglossary.pod as part of perlfaqFlorian Ragwitz2011-09-261-0/+1
|
* Document open fh, "<:"Father Chrysostomos2011-09-231-2/+4
|
* Move/rewrite test for Recursive call to Perl_load_moduleFather Chrysostomos2011-09-221-8/+1
| | | | | | | | | | This test was relying on a bug in require that causes it to use what- ever I/O layers are active in require‘s *caller* when opening a file [perl #96008]. This rewrites the test using the example in ticket #75722. Since it no longer has anything to do with open.pm, it is now in t/lib/warnings/perlio.
* UCD.pm: accommodate non-standard mktables outputKarl Williamson2011-09-211-0/+7
| | | | | | | Generally mktables generates the most compact tables possible. But this should not be relied on, and when called with the -anotate option, the mktables tables will not be compact. This will compact non-compacted tables when reading them.
* UCD.pm: Only calculate hex onceKarl Williamson2011-09-211-4/+5
| | | | | This uses intermediate variables to store the output of hex(), with the result that if there is an $end, its hex only is calculated once.
* clear $ENV{PERL_UNICODE} before runperl()ing a test of use open.Tony Cook2011-09-191-15/+19
| | | | | | If PERL_UNICODE was set to a value that modified stream behaviour, the test added in 73f1eaca would fail, because the implied -C option would cause the behaviour the test was checking wouldn't happen.
* [perl #92728] open.pm without :std should leave std aloneFather Chrysostomos2011-09-152-6/+28
| | | | | | | | | ‘use open’ without :std was turning off layers on STDIN and STDOUT (but not STDERR), due to a few missing if() conditions and due to an omission of STDERR (which probably also caused STDERR’s handles to accumulate through multiple calls to ‘use open ':std'...’). This fixes that. (As if you were expecting otherwise.)
* Make open.t use test.plFather Chrysostomos2011-09-151-1/+2
| | | | so future commits can use runperl.
* Update Exporter to CPAN version 5.65Chris 'BinGOs' Williams2011-09-121-1/+1
| | | | | | | | | | | | | | [DELTA] 5.65 Tue Aug 30 2011 Todd Rinaldo - No changes. Tests clean. Bumping to production release. 5.64_04 Wed Aug 24 2011 Todd Rinaldo - Re-vamp module to work in Git. - Update Makefile.PL with extra META bits. - Point bugs to perl's RT. - Add a README from Exporter.pm perldoc. - Depend on Carp 1.05 now we're assuming a fix from 1.05
* Restore changelog entry removed by 378eedaFather Chrysostomos2011-09-101-1/+6
| | | | | Existence of this entry has nothing to do with Borland support. It is merely history, that’s all.
* The Borland Chainsaw MassacreSteve Hay2011-09-102-13/+1
| | | | | Remove support for the Borland C++ compiler on Win32, as agreed here: http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2011-09/msg00034.html
* remove index offsetting ($[)Zefram2011-09-091-4/+1
| | | | | | $[ remains as a variable. It no longer has compile-time magic. At runtime, it always reads as zero, accepts a write of zero, but dies on writing any other value.
* Add enable/disable commands for breakpoints in perl -dShlomi Fish2011-09-046-2/+251
|
* move Carp to ext/Carp, preparing for dual-lifingZefram2011-09-044-1054/+2
|
* UCD.t: Add tests for sped-up lookupsKarl Williamson2011-09-031-1/+45
| | | | This adds some tests for commit 5c3b35c95645d687026b198c24e884914bfb6ce6
* mktables: make_Heavy.pl smallerKarl Williamson2011-09-032-26/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the time that mktables was being heavily revamped, Unicode proposed a number of new properties whose names began with 'Is'. Perl since 5.6 has alllowed properties to have an optional 'Is' prefix. Thus there was the possibility that a new property name from Unicode would conflict with one of Perl's name extensions. Thus, the code was written to individually suppress such an extension when there was a conflict; though this would be an undesirable state of affairs, where previously working code would have to be changed due to a new Unicode release. However, it turns out that other Unicode implementors had done the same thing Perl had done, and the protests forced the new Unicode standard to remove the 'Is' from the new properties; and apparently they won't try to do this again. However, the more general case code was still in mktables, doing no harm, except enlarging significantly several of the hashes in Heavy.pl to have essentially double the entries; one for the 'Is', and one without. There have been some murmurings that Heavy.pl takes up too much memory. Further, future commits are planned that would take up space as well, and that could be made much smaller by not having the individual basis for having Is/non-Is. So, this commit takes away the individual property Is/non-Is and replaces it with a blanket approach that has it for all Unicode properties. This requires a single extra statement in utf8_heavy. This has already been added mistakenly, but harmlessly, in commit 45376db692c38e06f27b8331d036652ec5fbb3d1 Note that perl extensions still have the individual Is/non-Is. This is because the blanket approach won't work for them, as some of the 'Is' synonyms do routinely get approaced in the case of the Block property. It is documented that one shouldn't use the 'Is' prefix for the Block property, because future Unicode versions could break your code.
* perluniprops: Add note about 'L_' being non-standardKarl Williamson2011-09-021-0/+4
|
* utf8_heavy: Correctly handle \p{L_}Karl Williamson2011-09-022-3/+23
| | | | | | | | | | | L_ is an old, discouraged but not deprecated, synonym for LC, cased letters. It was improperly being converted to simply L, all letters, because it is supposed to match loosely, and the trailing underscore was being stripped. It needs a special case. Tests passed for this, as the machine generated test case happened to choose code points that are in both L and LC. Also some tests were testing L instead of LC because of a similar flaw.
* perluniprops: display 2 synonyms as being discouragedKarl Williamson2011-09-021-1/+1
| | | | | mktables was getting the display status from the overarching table, instead of the synonym, for display in perluniprops.
* Unicode::UCD: clarify podKarl Williamson2011-09-021-6/+10
| | | | | | Add a note, and reflow, that the data structure returned by this function is unnecessarily complex, but is for compatibility with other returns that need the complexity.
* Unicode::UCD: fix pod verbatim line lengthKarl Williamson2011-09-021-1/+1
|
* Unicode::UCD: speed up some look upsKarl Williamson2011-09-021-14/+13
| | | | | | | | | | | | | | | | A previous commit created the possibility that for a data structure to be used instead of an array of arrays. The latter data structure is used because most properties have long ranges in which each code point maps to the same thing, and so don't have to have a hash entry for each code point, can use the range as the base data structure. However certain properties (or property-like structures) don't have long ranges, and hence don't need to save memory by having things work through ranges instead of individual code points. For these, a hash offers improved speed, without the memory cost. This patch converts 4 of the data structures to hashes. Future extensions to this module will also take advantage of some of these being in hashes
* Unicode::UCD: Allow for some look-up speed upKarl Williamson2011-09-021-7/+23
| | | | | | This changes the internal function to have an optional parameter to return a hash instead of an array when the caller determines that it is better to use a hash.
* Unicode::UCD: Use NFD(), not NFKD() for Hangul syllablesKarl Williamson2011-09-021-8/+10
| | | | | | These decompositions are all canonical, not compatible only, so it gives the same result, and I think it's clearer, explained in the revised comment.
* Unicode::UCD Add synopsis info for num() to podKarl Williamson2011-09-021-0/+5
|
* Unicode::UCD: Make pod header consistentKarl Williamson2011-09-021-2/+2
| | | | | All the other function headers in this pod look like what this patch makes this one look like. Corresponding links to it are also revised.
* Update AnyDBM_File's documentation to avoid use POSIX;Nicholas Clark2011-09-011-3/+6
| | | | | | | use Fcntl; is a much more efficient way to load the two constants needed. Bring the joy of strict (and warnings) to AnyDBM_File, remove commented-out code, and add __END__ to make it clear that there is no more code hiding beyond the pod.
* Update docs about &CORE::subs()Father Chrysostomos2011-08-291-3/+8
|
* Update UNIVERSAL::VERSION docs following 9bf41c1Father Chrysostomos2011-08-261-4/+3
|
* [perl #97088] Prevent double get-magic in various casesGerard Goossen2011-08-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch prevents get-magic from executing twice during autovivifi- cation when the op doing the autovivification is not directly nested inside the dereferencing op. This can happen in cases like this: ${ (), $a } = 1; Previously (as of 5.13.something), the outer op was marked with the OPpDEREFed flag, which indicated that get-magic had already been called by the vivifying op (calling get-magic during vivification is inevitable): $ perl5.14.0 -MO=Concise -e '${ $a } = 1' 8 <@> leave[1 ref] vKP/REFC ->(end) 1 <0> enter ->2 2 <;> nextstate(main 2 -e:1) v:{ ->3 7 <2> sassign vKS/2 ->8 3 <$> const[IV 1] s ->4 6 <1> rv2sv sKRM*/DREFed,1 ->7 <-- right here - <@> scope sK ->6 - <0> ex-nextstate v ->4 5 <1> rv2sv sKM/DREFSV,1 ->6 4 <#> gv[*a] s ->5 -e syntax OK But in the ${()...} example above, there is a list op in the way that prevents the flag from being set inside the peephole optimizer. It’s not even possible to set it correctly in all cases, as in this exam- ple, which would need it both set and not set depending on which branch of the ternary operator is executed: ${ $x ? delete $a[0] : $a[0] } = 1 Instead of setting the OPpDEREFed flag, we now make a non-magic copy of the SV in vivify_ref (the first time get-magic is executed).
* Strip S<> formatting codes from diagnostics outputMatthew Horsfall (alh)2011-08-222-3/+14
| | | | | | Update spacing Don't break S<20 questions> across lines, update test to be accurate
* Remove user-defined casing featureKarl Williamson2011-08-221-18/+0
| | | | | | This feature was deprecated in 5.14 and scheduled to remove in 5.16. A CPAN module was written to provide better functionality without the significant drawbacks of this implementation.
* Document &CORE::nullary() callsFather Chrysostomos2011-08-181-3/+5
|
* &CORE::not and &CORE::getprotobynumberFather Chrysostomos2011-08-151-1/+1
| | | | | | These two are now supported. They were not before, because their prototypes gave them unary precedence, even though these ops both have list precedence. That was corrected in the previous commit.
* CORE.pod: fix nit grammarKarl Williamson2011-08-151-1/+1
|
* Add inlinable &CORE::functionsFather Chrysostomos2011-08-141-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit allows this to work: BEGIN { *entangle = \&CORE::tie }; entangle $foo, $package; And the entangle call gets inlined as a tie op, the resulting op tree being indistinguishable. These subs are not yet callable via &foo syntax or through a refer- ence. That will come later, except for some functions, like sort(), which will probably never support it. Almost all overridable functions are supported. These few are not: - infix operators - not and getprotobynumber (can’t get the precedence right yet; prototype problem) - dump Subsequent commits (hopefully!) will deal with those. How this works: gv_fetchpvn_flags is extended with hooks to create subs inside the CORE package. Those subs are XSUBs (whose C function dies with an error, for now at least) with a call checker that blows away the entersub op and replaces it with whatever op the sub represents. This is slightly inefficient right now, as gv_fetchpvn_flags calls keyword(), only to have core_prototype call it again. That will be fixed in a future refactoring.
* Increase $diagnostics::VERSION from 1.23 to 1.24Father Chrysostomos2011-08-021-1/+1
|
* RT #94988 - Support for %u in diagnostics.pm's printf()-format parserMatthew Horsfall (alh)2011-08-022-5/+12
|
* Unicode::UCD: fix missing comma in podKarl Williamson2011-07-281-2/+2
|
* [perl #95544] Test that UNIVERSAL::VERSION returns $VERSIONJohn Peacock2011-07-271-1/+16
|
* B:: is pre-instantiated when B is staticTony Cook2011-07-241-11/+18
|
* overload.t: Remove a bug workarondFather Chrysostomos2011-07-201-2/+1
| | | | That bug was fixed in 5.14
* Tests for overload errorsFather Chrysostomos2011-07-201-1/+19
|
* bump version.pm $VERSION to reflect doc changesZefram2011-07-191-1/+1
|
* Test for [perl #87726] (warning from diagnostics.pm under -w)Father Chrysostomos2011-07-181-3/+8
|
* Dual-life Search::DictFlorian Ragwitz2011-07-173-195/+1
|
* basename: Change C<> to L<>Karl Williamson2011-07-161-2/+2
|