summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add length and flags arguments to Perl_pad_add_name().Nicholas Clark2009-11-094-15/+27
| | | | | | Currently only pad_add_STATE and pad_add_FAKE are used. The length is cross- checked against strlen() on the pointer, but the intent is to re-work the entire pad API to be UTF-8 aware, from the current situation of char * pointers only.
* Add length and flags arguments to Perl_pad_check_dup().Nicholas Clark2009-11-096-6/+31
| | | | | | Currently only pad_add_OUR is used. The length is cross-checked against strlen() on the pointer, but the intent is to re-work the entire pad API to be UTF-8 aware, from the current situation of char * pointers only.
* Add length and flags arguments to Perl_allocmy().Nicholas Clark2009-11-097-13/+22
| | | | | | Currently no flags bits are used, and the length is cross-checked against strlen() on the pointer, but the intent is to re-work the entire pad API to be UTF-8 aware, from the current situation of char * pointers only.
* Fix warnings from win32 gcc compilersSisyphus2009-11-093-0/+6
|
* More cleanup of utfebcdic.h and utf8.hkarl williamson2009-11-092-79/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attached is a patch that removes from utfebcdic.h most definitions that are common to it and utf8.h, and moves them to the common area of utf8.h. The duplicate ones that are retained are each an integral part of a larger related set that do differ between the headers. Some of the definitions had started to drift, so this brings them back into line, with a lowered possibility of future drift. In particular the ones for the 'lazy' macros did not do quite as intended, especially in the EBCDIC case. The bugs were a small performance hit only, in that the macro was not quite as lazy as expected, and so loaded utf8_heavy.pl possibly unnecessarily. In examining these, I noted that the utf8.h definition of the start byte of a utf8 encoded string accepts invalid start bytes 0xC0 and 0xC1. These are invalid because they are for overlong encodings of ASCII code points. One is not supposed to allow these, and there have been security attacks, according to Wikipedia, against code that does. But I don't know all the ramifications for Perl of changing to exclude these, so I left it alone, but added a comment (and an item on my personal todo list to check into it). I made some comment clarifications, and removed some definitions marked as obsolete in utf8.h that are in fact no longer used. I added some synonyms for existing macros that more clearly reflect the use that I intend to put them to in future patches. From ba581aa4db767e5531ec0c0efdea5de4e9b09921 Mon Sep 17 00:00:00 2001 From: Karl Williamson <khw@khw-desktop.(none)> Date: Mon, 9 Nov 2009 08:38:24 -0700 Subject: [PATCH] Clean up utf headers Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
* perl.exp was not built in time on systems that required it (AIX, ...)H.Merijn Brand2009-11-091-1/+1
| | | | and it always needed that, but re-ordering of targets has exposed that
* In Perl_pad_check_dup(), use sv rather than name for diagnostics.Nicholas Clark2009-11-091-3/+3
| | | | It already knows its length, and it will be UTF-8 clean in the future.
* MANIFEST was missing two filesJesse Vincent2009-11-091-0/+2
|
* Update IPC::Cmd to cpan version 0.51_01Chris Williams2009-11-083-9/+442
| | | | | | | Changes for 0.51_01 Sun Nov 8 22:36:33 GMT 2009 ================================================= * Apply patch from Petya Kohts, RT #50398, which adds run_forked()
* Tweak the GV downgrading of f7461760 to avoid free or nearly freed GVs.Nicholas Clark2009-11-081-2/+19
| | | | | | | | | | | | | | | It's possible during global destruction that the GV is freed before the optree. Whilst the SvREFCNT_inc is happy to bump from 0 to 1 on a freed SV, the corresponding SvREFCNT_dec from 1 to 0 will trigger an assertion failure, because the entry to sv_clear checks that the scalar is not already freed. A check of for !SvIS_FREED(gv) turns out to be invalid, because during global destruction the reference count can be forced down to zero (with SVf_BREAK set). In which case raising to 1 and then dropping to 0 triggers cleanup before it should happen. I *think* that this might actually be a general, systematic, weakness of the whole idea of SVf_BREAK, in that code *is* allowed to raise and lower references during global destruction, so any *valid* code that happens to do this during global destruction might well trigger premature cleanup.
* SvREFCNT_inc already checks if the SV is non-NULLVincent Pit2009-11-081-2/+1
|
* SvREFCNT_dec already checks if the SV is non-NULL (continued)Vincent Pit2009-11-089-58/+28
|
* 'use strict' and 'use warnings' in test generated by h2xsHarmen2009-11-081-0/+3
|
* Bareword sub lookupsZefram2009-11-088-44/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Attached is a patch that changes how the tokeniser looks up subroutines, when they're referenced by a bareword, for prototype and const-sub purposes. Formerly, it has looked up bareword subs directly in the package, which is contrary to the way the generated op tree looks up the sub, via an rv2cv op. The patch makes the tokeniser generate the rv2cv op earlier, and dig around in that. The motivation for this is to allow modules to hook the rv2cv op creation, to affect the name->subroutine lookup process. Currently, such hooking affects op execution as intended, but everything goes wrong with a bareword ref where the tokeniser looks at some unrelated CV, or a blank space, in the package. With the patch in place, an rv2cv hook correctly affects the tokeniser and therefore the prototype-based aspects of parsing. The patch also changes ck_subr (which applies the argument context and checking parts of prototype behaviour) to handle subs referenced by an RV const op inside the rv2cv, where formerly it would only handle a gv op inside the rv2cv. This is to support the most likely kind of modified rv2cv op. The attached patch is the resulting revised version of the bareword sub patch. It incorporates the original patch (allowing rv2cv op hookers to control prototype processing), the GV-downgrading addition, and a mention in perldelta.
* Make my_exit behave the same as the Perl exit. And add tests for itGerard Goossen2009-11-085-15/+40
| | | | | | | Rationale: This makes the behaviour of my_exit consistent, so it no longer depends on whether a subroutine was called using call_sv or as a normal using an entersub op. Previously, the exit code was sometimes converted to an exception.
* Add assertions about there being no leftover scopes when enter perl_destruct.Gerard Goossen2009-11-081-0/+3
|
* pad_findmy APIificationZefram2009-11-082-19/+14
| | | | | | Since Nicholas made pad_findmy() part of the public API (f8f98e0a8bdbde83a9cdc3573d818f69d0a64c78), here's a consequential change to XS::APItest::KeywordRPN.
* Correctly document export of I18N::LanginfoKevin Ryde2009-11-081-2/+2
| | | | [perl #70303] I18N::Langinfo docs "nothing exported"
* Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into bleadSteffen Mueller2009-11-082-17/+23
|\
| * s/AvLEN/AvMAX/ in perlgutsEric Brine2009-11-081-1/+1
| |
| * Define specially handled chars; and clean-up ebcdic vs unicodeKarl Williamson2009-11-082-17/+23
| |
* | s/AvLEN/AvMAX/ in perlgutsEric Brine2009-11-081-1/+1
|/
* Add mingw-w64 non-crosscompiling config filesDavid Golden2009-11-072-0/+5736
| | | | | | | | | Files provided by Sisyphus with this comment: "Attached are the 2 addtional files that we need in the win32 folder. (I did a dos2unix on them so, hopefully the line endings will be right.) These files are needed to accommodate the particular 64-bit mingw compiler that Strawberry Perl will be using. They'll actually be used as the default 64-bit mingw templates."
* Skip some Pod::Simple tests on VMS that think case is always preserved.Craig A. Berry2009-11-076-14/+38
| | | | | | Already in the upstream queue at: https://rt.cpan.org/Ticket/Display.html?id=51184
* note that release engineers need to make sure graham is aware of themJesse Vincent2009-11-071-0/+6
|
* Add length and flags arguments to Perl_pad_findmy(), moving it to the public ↵Nicholas Clark2009-11-077-15/+27
| | | | | | | | API. Currently no flags bits are used, and the length is cross-checked against strlen() on the pointer, but the intent is to re-work the entire pad API to be UTF-8 aware, from the current situation of char * pointers only.
* Placate a warning from Borland's compiler.Nicholas Clark2009-11-071-1/+1
|
* Merge commit 'origin/blead' into bleadSteve Hay2009-11-07142-3275/+4927
|\
| * C++ fail with KeywordRPNZefram2009-11-072-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A smoke using g++ has revealed: >KeywordRPN.c: In function 'void XS_XS__APItest__KeywordRPN_import(CV*)': >KeywordRPN.c:320: error: expected unqualified-id before 'class' >KeywordRPN.c:320: error: expected initializer before 'class' >KeywordRPN.c: In function 'void XS_XS__APItest__KeywordRPN_unimport(CV*)': >KeywordRPN.c:357: error: expected unqualified-id before 'class' >KeywordRPN.c:357: error: expected initializer before 'class' >make[1]: *** [KeywordRPN.o] Error 1 >Unsuccessful make(ext/XS-APItest-KeywordRPN): code=512 at make_ext.pl line 449. >make: *** [lib/auto/XS/APItest/KeywordRPN/KeywordRPN.so] Error 25 I used "class" as a variable name, but in C++ it's a keyword. Patch attached. Someone should also add a note about C++ compatibility to perlhack.pod. -zefram Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
| * refine Carp caller() fix and add testsDavid Golden2009-11-062-7/+19
| |
| * Add legacy.pm to MaintainersRafael Garcia-Suarez2009-11-071-0/+1
| |
| * Merge branch 'legacy-pragma' into bleadRafael Garcia-Suarez2009-11-063-0/+142
| |\ | | | | | | | | | | | | Conflicts: MANIFEST
| | * Deliver skeleton legacy.pmKarl2009-01-233-0/+142
| | |
| * | bump Carp version numberDavid Golden2009-11-061-1/+1
| | |
| * | Addded a pointer to the documentation on how Configure is maintainedJesse Vincent2009-11-061-0/+2
| | |
| * | Add a line directive to op.c and perl.c such that error messages refer to ↵Gerard Goossen2009-11-062-0/+2
| | | | | | | | | | | | the original files insted of to the copied files perlmini.c and opmini.c
| * | Add a "return NORMAL" to a DIE at the end of a function to prevent compiler ↵Gerard Goossen2009-11-061-0/+51
| | | | | | | | | | | | warnings (the "return NORMAL"s are never reached).
| * | Check to see if there was a body which needs freeing using the old_type ↵Gerard Goossen2009-11-061-5/+5
| | | | | | | | | | | | instead of the arena flag, which is not set with PURIFY
| * | Complete the fix for Win32 link following commits 88e1f1a and 406ca27Steve Hay2009-11-061-0/+1
| | |
| * | move JMPENV_JUMP to die_where and mark it as "noreturn"Gerard Goossen2009-11-068-21/+16
| | |
| * | Have Carp respect CORE::GLOBAL::caller if it existsDavid Golden2009-11-061-6/+9
| | | | | | | | | | | | | | | | | | | | | Carp frequently gets loaded very early, before tools that want to override caller(). Previously, caller() was only in Carp::Heavy, which was only loaded on demand (thus after any CORE::GLOBAL::caller override). This patch unbreaks anything expecting the old behavior.
| * | Partially fix Win32 link following commit 88e1f1aSteve Hay2009-11-063-1/+6
| | | | | | | | | | | | There is currently still a linker error about PL_keyword_plugin.
| * | Describe how Configure patches should be doneH.Merijn Brand2009-11-061-4/+16
| | |
| * | Detection (and warning) of char size in bitsH.Merijn Brand2009-11-0616-1/+112
| | |
| * | SvREFCNT_dec already checks if the SV is non-NULLVincent Pit2009-11-052-8/+4
| | |
| * | Mention git resources in headerH.Merijn Brand2009-11-051-5/+8
| | | | | | | | | | | | Use $cpp instead of cpp
| * | regen generated files changed by the previous patch - facility to plug in ↵Jesse Vincent2009-11-057-1234/+1260
| | | | | | | | | | | | syntax triggered by keywords
| * | Implement facility to plug in syntax triggered by keywordsJesse Vincent2009-11-0525-31/+768
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Date: Tue, 27 Oct 2009 01:29:40 +0000 From: Zefram <zefram@fysh.org> To: perl5-porters@perl.org Subject: bareword sub lookups Attached is a patch that changes how the tokeniser looks up subroutines, when they're referenced by a bareword, for prototype and const-sub purposes. Formerly, it has looked up bareword subs directly in the package, which is contrary to the way the generated op tree looks up the sub, via an rv2cv op. The patch makes the tokeniser generate the rv2cv op earlier, and dig around in that. The motivation for this is to allow modules to hook the rv2cv op creation, to affect the name->subroutine lookup process. Currently, such hooking affects op execution as intended, but everything goes wrong with a bareword ref where the tokeniser looks at some unrelated CV, or a blank space, in the package. With the patch in place, an rv2cv hook correctly affects the tokeniser and therefore the prototype-based aspects of parsing. The patch also changes ck_subr (which applies the argument context and checking parts of prototype behaviour) to handle subs referenced by an RV const op inside the rv2cv, where formerly it would only handle a gv op inside the rv2cv. This is to support the most likely kind of modified rv2cv op. [This commit includes the Makefile.PL for XS-APITest-KeywordRPN missing from the original patch, as well as updates to perldiag.pod and a MANIFEST sort]
| * | Updated CPANPLUS::Dist::Build to cpan version 0.41_01Chris Williams2009-11-053-31/+36
| | |
| * | Updated CPANPLUS to cpan version 0.89_07Chris Williams2009-11-057-22/+80
| | |