summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Delete experimental autoderef featureAaron Crane2015-07-135-75/+87
|
* Make postfix dereferencing work without the postderef featureAaron Crane2015-07-131-13/+18
| | | | | The feature still exists, for compatibility with code that tries to enable it, but it has no effect. The postderef_qq feature still exists, however.
* fix #124181 double free/refcnt problems in IO types in typemapDaniel Dragan2015-07-081-12/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 50e5165b96 "stop T_IN/OUT/INOUT/STDIO typemaps leaking" changed newRV to newRV_noinc, but the GV * returned by newGVgen() is owned by the package tree, like the SV * returned by get_sv(). Now when the RV to GV is freed on mortal stack, the GV * in the package tree is freed, and now there is a freed GV * in the package tree, if you turn on "PERL_DESTRUCT_LEVEL=2" (and perhaps DEBUGGING is needed too), the package tree is destroyed SV * by SV *, and perl will eventually warn with "Attempt to free unreferenced scalar" which a very bad panic type warning. commit 50e5165b96 was reverted in commit bae466e878 "Revert "stop T_IN/OUT/INOUT/STDIO typemaps leaking" for 5.22's release to stop the panic, but reintroduced the SV/RV leak. So fix the RV leak (the val passed as source arg of sv_setsv) by freeing it after the copying. In a very unlikely scenario, the RV could still leak if sv_setsv dies. Also fix the problem, that if this OUTPUT: type is being used for an incoming arg, not the outgoing RETVAL arg, you can't assign a new SV* ontop of the old one, that only works for perl stack return args, so replace "$arg = &PL_sv_undef;" with "sv_setsv($arg, &PL_sv_undef);" if its not RETVAL, this way OUTPUT on incoming args also works if it goes down the error path. For efficiency, in a RETVAL siutation, let the undef original SV* in $arg which is typically obtained from sv_newmortal() by xsubpp pass through if we error out. Also for efficiency, if it is RETVAL (which is more common) dont do the sv_setsv/SvREFCNT_dec_NN stuff (2 function calls), just mortalize (1 function call) the ex-temp RV and arrange for the RV to wind up on perl stack. Also, the GV * already knows what HV * stash it belongs to, so avoid the stash lookup done by gv_stashpv() and just use GvSTASH which are simple pointer derefs.
* The postderef feature is no longer experimentalAaron Crane2015-06-272-13/+14
| | | | | | | | | | | | | | As proposed by RJBS. The "5.24" feature bundle (and therefore C<< use v5.24 >>) now enable postderef and postderef_qq. I can't find any precedent for what to do with the relevant experimental::* warnings category when an experimental feature graduates to acceptance. I have elected to leave the category in place, so that code doing C<< no warnings "experimental::postderef" >> will continue to work. This means that C<< use warnings "experimental::postderef" >> is also accepted, but has no effect.
* welcome to v5.23.1, please make regenRicardo Signes2015-06-201-1/+1
|
* mktables: Fix logic errorKarl Williamson2015-06-181-13/+7
| | | | | | | | | | | | | | When I wrote this some years ago, I committed a logic error, so that a constraint I thought applied was in fact somewhat different than what I thought. The new comments give the proper constraint. The code is taking the data furnished by unicode.org and massaging it into tables usable by the perl interpreter. This bug can cause wrong tables to be generated. Fortunately, this bug does not arise with typical unicode.org data sets, so it hasn't shown up as a problem. Fixing it makes no difference in the current Unicode version. I discovered it only in compiling Unicode 1.1.5, somewhat tweaked by me, so not the official data there either.
* Switch to Unicode Version 8The Unicode Consortium2015-06-1752-1133/+7767
|
* Microoptimize some matches in utf8_heavy.plRafael Garcia-Suarez2015-06-171-3/+3
|
* bump $UNIVERSAL::VERSIONTony Cook2015-06-151-1/+1
|
* UNIVERSAL no longer exports anythingKaren Etheridge2015-06-151-4/+2
| | | | so switch to documenting something that would still work
* mktables: Reduce input fractions to lowest termsKarl Williamson2015-06-051-2/+50
| | | | | | | It turns out that the rational numbers furnished by the Unicode data are not guaranteed to be in lowest terms. Version 8 is the first version that has them this way. Add code to reduce them in preparation for that release.
* Fix RT#71678 (-d a command after exit) with a test.Shlomi Fish2015-06-033-2/+40
| | | | | Credits to Heiko Eissfeldt for the reported bug, the test program and a proposed fix.
* feature.pm remove unused lexicalsDaniel Dragan2015-06-031-2/+2
|
* mktables: Under -annotate use dotted circle for combining marksKarl Williamson2015-06-011-3/+3
| | | | | | Previously the NBSP was used, but the dotted circle is what Unicode uses in their books, and it looks better. Note that -annotate is not a default option for mktables.
* actually load vars to test its new sideeffectReini Urban2015-06-011-0/+1
| | | | For: RT # 124369
* feature: add the 5.23 bundle (same as 5.22)Ricardo Signes2015-06-011-1/+6
|
* version bump: make regen and make META.jsonRicardo Signes2015-06-011-1/+1
|
* Revert "stop T_IN/OUT/INOUT/STDIO typemaps leaking"David Mitchell2015-05-181-24/+8
| | | | | | | | | | | | This reverts commit 50e5165b9638b94be310f15477b42935c79e82d5. That commit fixed the leak too well and instead introduced a potential premature free. This re-introduces the long-standing leak, which will be addressed post 5.22 release. See RT #124181
* bump utf8 version after doc fixDavid Mitchell2015-05-171-1/+1
|
* Fix a doc typo in the spelling of EBCDICRafael Garcia-Suarez2015-05-171-1/+1
|
* document that we may add more overloaded ops over timeRicardo Signes2015-05-081-1/+2
|
* bump version: make regenRicardo Signes2015-05-081-1/+1
|
* Bump version for 5.21.12 (although it's unlikely to happen)Steve Hay2015-04-211-1/+1
|
* bump perl5db.pl's $VERSIONTony Cook2015-04-161-1/+1
|
* lib/perl5db.pl: Restore noop lock prototypeJames McCoy2015-04-161-0/+1
| | | | | | | | | | | | | | | | | | cde405a6b9b86bd8110f63531b42d89590a4c56e removed the lock prototype "because it's already a do-nothing weak keyword without threads". However, that causes "perl -d threaded-script.pl" to complain lock can only be used on shared values at /usr/share/perl/5.20/perl5db.pl line 4101. BEGIN failed--compilation aborted at threaded-script.pl line 2. lock can only be used on shared values at /usr/share/perl/5.20/perl5db.pl line 2514. END failed--call queue aborted at threaded-script.pl line 2. Unbalanced scopes: 3 more ENTERs than LEAVEs because threaded-script.pl's importing of threads::shared enable's lock()'s non-noop behavior. Restoring the lock() prototype fixes the inconsistency between lock() and share() usage. Signed-off-by: James McCoy <vega.james@gmail.com>
* Reword reference to $ENV{PERL_UNICODE} in utf8Randy Stauner2015-03-291-2/+2
| | | | | | | "The $ENV{...}," doesn't read well; Spell it out for consistency with perlrun. Committer: Increment $VERSION and add entry to perldelta.
* [perl #123790] Disable targlex for some opsFather Chrysostomos2015-03-261-2/+2
| | | | | | | | | | | The targlex optimisation (which makes the op write directly to the lexical in $lexical = some op, skipping the assignment) does not take typeglob assignment into account. Since this optimisation has been enabled for some ops in 5.21.x, we actually have a regression. So this commit disables the optimisation once more for ops that did not have it on in 5.20. This is a temporary fix, until we find a better overall fix. Other ops that still have the optimisation are buggy, but no more buggy than in 5.20.
* Deparse.t: test <<>>Father Chrysostomos2015-03-241-0/+3
|
* Bump Deparse's $VERSION following commit 65ef2c3e7d945498.Nicholas Clark2015-03-241-1/+1
|
* Correctly deparse <<>>Rafael Garcia-Suarez2015-03-241-1/+5
|
* discourage use warnings FATAL => 'all'David Golden2015-03-231-22/+50
| | | | | | | | | | | | | After additional discussions on perl5-porters and #p5p, no one seems to be violently objecting to the idea that FATAL warnings need a much stronger warning about risks and that FATAL => 'all' should actually be 'discouraged' in the official, perlpolicy sense. The text of this commit has been posted to perl5-porters for discussion and approved by those who objected to earlier language. I dare not call it "consensus" for fear of the consequences, but no one has raised further obstacles to making this change.
* Replace common Emacs file-local variables with dir-localsDagfinn Ilmari Mannsåker2015-03-221-5/+0
| | | | | | | | | | | | | | | | An empty cpan/.dir-locals.el stops Emacs using the core defaults for code imported from CPAN. Committer's work: To keep t/porting/cmp_version.t and t/porting/utils.t happy, $VERSION needed to be incremented in many files, including throughout dist/PathTools. perldelta entry for module updates. Add two Emacs control files to MANIFEST; re-sort MANIFEST. For: RT #124119.
* Bump version for 5.21.11 (if that happens)Steve Hay2015-03-201-1/+1
|
* unicore/README.perl:perl with older Unicode versionsKarl Williamson2015-03-191-9/+12
| | | | | | | | | | I tried to make the necessary changes for Perl v5.22 to work with old Unicode versions, but ran out of time before the code freeze, with 5.1 being the earliest version. The sticking point there is that the Capital Sharp S, U+1E9E, was defined in that release. Because of its anomalous behavior with the infamous lower case sharp s, U+00DF, there is a bunch of hard-coded references to it in the C code which need to be adjusted to handle it's absence.
* Update information about using older UnicodeKarl Williamson2015-03-191-2/+3
|
* mktables: Better work with earlier UnicodesKarl Williamson2015-03-191-2/+5
| | | | | | | | Unicode adds new files to its character database from time to time in new versions of the Standard. mktables is supposed to be able to handle this when it knows about a file, but it is compiling a version of the Standard that predates that file's existence. It was not dealing properly with this situation.
* lib/perl5db.pl: Fix pod typoKarl Williamson2015-03-191-1/+1
|
* lib/perl5db.pl: Generalize for EBCDICKarl Williamson2015-03-191-2/+4
|
* Create single fcn for dup'd /lib codeKarl Williamson2015-03-195-12/+105
| | | | | | | | | | | | | | | | | | | | | Several /lib .pm's have the same code which is complicated enough to warrant being placed in a shared function. This commit creates a .pm to be used by these .pm's. This implements the perhaps archaic 'Meta' notation wherein characters above 0x7f are displayed as M- plus the ASCII-range character derived by looking at only the lower 7 bits of the upper range one. There are problems with this, in that a literal control character can be in the string, whereas it is trying to get rid of control characters. But I left it to work as-is, just centralizing the code. On EBCDIC platforms this notation makes no sense because the bit patterns are all mixed up about having the upper bit set. So this commit fixes things on these platforms, so these are changed to \x{...}. No literal control characters are emitted. Another potential problem is that characters above 0xFF are passed through, unchanged. But again, I let the existing behavior stand.
* lib/open.t: TODO an EBCDIC test until Encode fixedKarl Williamson2015-03-181-0/+2
|
* DBM_Filter/t/encode.t: temporarily skip until Encode fixedKarl Williamson2015-03-181-0/+5
|
* Revert discouragement of fatal warningsRicardo Signes2015-03-171-32/+20
| | | | | | | ...at least for now. This reverts commits 0d314ba30623b19c36dfc97ac4b6ecb94cb406f4 and ce3778a3796be3e4604ed9b3671ea624c5affe0b.
* perldelta entry for ce3778a3796be3e4604ed9b3671ea624c5affe0b.James E Keenan2015-03-161-2/+2
| | | | Slight grammatical touch-up to cautions against FATAL warnings.
* Document FATAL warnings as discouraged.David Golden2015-03-161-20/+32
| | | | | | | | | | | Discussions on p5p have reached reasonable consensus that fatal warnings are a misfeature. This commit marks fatal warning as "discouraged" and moves up the related cautionary documentation to highlight the risks of using them. For details on the many historical and current issues with fatal warning, see http://www.nntp.perl.org/group/perl.perl5.porters/2015/01/msg225235.html
* lib/open.t: Skip a test on EBCDIC because of encodingKarl Williamson2015-03-141-0/+2
|
* lib/DBM_Filter/t/encode.t: Generalize for non-ASCII platformsKarl Williamson2015-03-141-16/+6
| | | | | This still has a failure due to Encode issues. A future commit will skip some failing tests until that is fixed.
* t/lib/open.t: Generalize for EBCDIC platformsKarl Williamson2015-03-131-4/+9
| | | | | | | | This involved changing a \xff to \xfe because it is expecting it to be a character whose representation is different when encoded in UTF-8, and on some EBCDIC platforms, \xff is UTF-8 invariant. I suppose there could be a code page where \xfe is invariant, so this .t would have to be made more general if that ever comes to be.
* Optimize out unicode_to_native(), native_to_unicode()Karl Williamson2015-03-122-2/+25
| | | | | | | These just return their argument on ASCII platforms, so can get rid of the function call overhead there. Thanks to Zefram and Matthew Horsfall for their help in this.
* DBM_Filter/t/utf8.t: Generalize for other EBCDIC code pagesKarl Williamson2015-03-091-17/+9
| | | | | This worked for EBCDIC 1047, but not for other pages. This commit changes to use the tools created for the purpose to make it general.
* perluniprops: Add text about using with older Unicode releasesKarl Williamson2015-03-091-0/+4
| | | | This pod is generated by mktables.