summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* universal.c: ->isa, sv_derived_from UTF8 cleanup.Brian Fraser2011-10-064-16/+94
| | | | | | | This makes them both nul-and-UTF8 clean, although the latter is somewhat superficial, as mro isn't clean yet. (Tests coming once ->can and ->DOES are clean)
* pp_sys.c: pp_tie and untie UTF8 cleanup.Brian Fraser2011-10-063-29/+36
|
* pp.c: pp_substr for UTF-8 globs.Brian Fraser2011-10-062-3/+17
| | | | | Since typeglobs may have the UTF8 flag set now, we need to avoid testing SvCUR on a potential glob, as that would trip an assertion.
* pp_ctl.c: pp_caller UTF8 cleanup.Brian Fraser2011-10-063-7/+82
|
* sv.c: S_anonymise_cv_maybe UTF8 cleanup.Brian Fraser2011-10-061-5/+4
|
* pp.c & sv.c: pp_ref UTF8 and null cleanup.Brian Fraser2011-10-065-13/+36
| | | | | | | | | This adds a new function to sv.c, sv_ref, which is a nul-and-UTF8 clean version of sv_reftype. pp_ref now uses that. sv_ref() not only returns the SV, but also takes in an SV to modify, so we can say both sv_ref(TARG, obj, TRUE); and sv = sv_ref(NULL, obj, TRUE);
* Add a sv_sethek() function to sv.cBrian Fraser2011-10-064-0/+50
| | | | This is exported so that attributes.xs can use it.
* pp.c: pp_bless UTF8 cleanup.Brian Fraser2011-10-063-1/+129
| | | | | Some tests in t/uni/bless.t are TODO, as ref() isn't clean yet.
* op.c: Flag named methods if they are in UTF-8.Brian Fraser2011-10-063-1/+42
|
* pp_hot.c: method_common is UTF-8 aware.Brian Fraser2011-10-063-10/+28
| | | | | | | | | | Not really useful yet, since named methods aren't correctly flagged; that is to access a \x{30cb} method, you'd need to do something like Obj->${\"\x{30cb}"}. Committer’s note: I’m also including one piece of the ‘gv.c and pp_ctl.c warnings’ patch so that the newly-added tests in this commit pass.
* gv.c: gv_fetchmethod_(flags|autoload) UTF8 cleanup.Brian Fraser2011-10-062-12/+12
|
* gv.c: S_gv_get_super_pkg UTF8 cleanup.Brian Fraser2011-10-061-4/+7
|
* gv.c: gv_fetchmeth_pvn_autoload UTF8 cleanup.Brian Fraser2011-10-062-3/+36
| | | | As with the previous commit, no Perl-level visible changes.
* gv.c: gv_fetchmeth_pvn UTF8 cleanup.Brian Fraser2011-10-062-5/+35
| | | | | | | Since gv_fetchmeth_pvn is primarily used from within gv.c, and not much of anything is passing in the flag yet, this has no visible changes on the Perl level; So tests remain entirely in XS::APItest for the time being.
* gv.c: gv_init_pvn now uses newCONSTSUB_flags.Brian Fraser2011-10-061-1/+1
|
* pp.c: Make pp_rv2cv use gv_autoload_pvn()Brian Fraser2011-10-061-1/+1
|
* pp_hot.c: pp_entersub UTF8 cleanup.Brian Fraser2011-10-061-2/+2
|
* pp_ctl.c: pp_goto UTF8 cleanup.Brian Fraser2011-10-063-2/+45
|
* gv.c: gv_autoload4 is now UTF-8 clean.Brian Fraser2011-10-062-16/+23
| | | | This also uncomments the UTF-8 tests in XS::APItest.
* gv.c: gp_free UTF8 cleanupBrian Fraser2011-10-061-4/+5
|
* Tests for UTF-8 GVs.Brian Fraser2011-10-062-0/+854
| | | | | | | Basically t/op/gv.t with UTF-8 names. A vast majority of the tests currently fail and are marked as TODO; Minus for failures related to prototypes, these will start working in the following commits.
* op.c: newCONSTSUB and newXS UTF8 cleanup.Brian Fraser2011-10-068-75/+145
| | | | | | | | newXS was merged into newXS_flags; added a line in the docs recommeding using that instead. newCONSTSUB got a _flags version, which generates the CV in the right glob if passed the UTF-8 flag.
* sv.c: glob_assign_glob is now UTF-8 aware.Brian Fraser2011-10-061-1/+2
| | | | | | | | This means that is($t = sub { *\x{30cb} }->(), "*main::\x{30cb}"); won't fail, as $t will get the right glob. (Though possibly not the right stash, if that also has UTF-8 in it. That will be done later.)
* Basic tests for UTF-8 vars.Brian Fraser2011-10-062-0/+94
|
* toke.c: S_scan_inputsymbol, initial GV-related UTF8 cleanupBrian Fraser2011-10-061-2/+2
|
* toke.c: S_checkcomma, GV-related UTF8 cleanupBrian Fraser2011-10-061-1/+1
|
* toke.c: yylex, GV-related UTF8 cleanupBrian Fraser2011-10-061-10/+18
|
* toke.c: S_find_in_my_stash, GV-related UTF8 cleanupBrian Fraser2011-10-061-3/+3
|
* toke.c: S_intuit_method, GV-related UTF8 cleanupBrian Fraser2011-10-061-3/+4
|
* toke.c: S_intuit_more, GV-related UTF8 cleanupBrian Fraser2011-10-061-1/+2
|
* toke.c: S_force_ident, GV-related UTF8 cleanupBrian Fraser2011-10-061-3/+4
|
* pp.c: pp_rv2gv UTF8 cleanup.Brian Fraser2011-10-061-4/+3
|
* Merge multi and flags params to gv_init_*Father Chrysostomos2011-10-066-32/+38
| | | | | Since multi is a boolean (even though it’s typed as an int), there is no need to have a separate parameter. We can just use a flag bit.
* gv.c: Initial gv_fetchpvn_flags and gv_stashpvn UTF8 cleanupBrian Fraser2011-10-063-15/+17
| | | | | | | | | Now that a glob can be initialized and fetched in UTF-8, the next commit will introduce some changes in toke.c to actually test this. Committer’s note: To keep tests passing I had to incorporate the toke.c:S_pending_ident changes in the same patch.
* constant.pm: Disable the UTF8 downgrade when unnecessaryFather Chrysostomos2011-10-061-4/+19
| | | | | | The downgrade bug that constant.pm has to imitate is about to be fixed in the next commit. The bug workaround is itself a bug if the bug it is trying to work around is not present.
* Fix thinko in hek_eq_pvn_flagsFather Chrysostomos2011-10-061-1/+1
| | | | | | | | | Doing memEQ(str1, str2, len2) without checking the length first will cause memEQ("forth","fort"...) to compare equal and memEQ("fort","forth"...) to read unallocated memory. This was only a potential future problem, as none of the callers reach this branch.
* hv.c: Stash-related UTF-8 cleanup.Brian Fraser2011-10-061-20/+55
| | | | | | | | | | | This adds a new static function to hv.c, hek_eq_pvn_flags, which replaces several memEQs. It also cleans up hv_name_set and has the relevant calls to hv_common and friends made UTF-8 aware. Finally, it changes share_hek() to modify the hash passed in if the pv was modified when downgrading.
* gv.c: gv_name_set and gv_init_(etc) now initialize the GV's name as UTF-8 if ↵Brian Fraser2011-10-062-24/+27
| | | | | | | | | | | | | | | passed the UTF8 flag. newCONSTSUB is still unclean however, so constant subs are still generated under a wrong name. gv_fullname4 is also UTF-8 aware now; While that should've gotten it's own commit and tests, it's not possible to test the UTF-8 part without the gv_init changes, and it's not possible to test the gv_init changes without gv_fullname4. Chicken and egg, as it were. So let's compromise and wait for the relevant tests once globs can be intiialized as UTF-8 from the Perl level without XS magic.
* SvUTF8() for globs.Brian Fraser2011-10-061-0/+1
| | | | | | | | | This turns on the GV's UTF8 flag in sv.c when the GV is stringified. This works the same way overloading and references work, in that the SvUTF8 flag is only valid immediately after SvPV. For Nick's much more detailed explanation, see http://www.nntp.perl.org/group/perl.perl5.porters/2011/07/msg174703.html
* Restore newGVgen to perlapi.podFather Chrysostomos2011-10-062-0/+4
|
* gv.c: newGVgen_flags and a flags parameter for gv_get_super_pkg.Brian Fraser2011-10-065-15/+18
|
* Remove method param from gv_autoload_*Father Chrysostomos2011-10-067-30/+37
| | | | | | | | method is a boolean flag (typed I32, but used as a boolean) added by commit 54310121b442. These new gv_autoload_* functions have a flags parameter, so there’s no reason for this extra effective bool. We can just use a flag bit.
* Remove 4 from new gv_autoload4_(sv|pvn?) functionsFather Chrysostomos2011-10-067-37/+37
| | | | | | | | | | | | The 4 was added in commit 54310121b442 (inseparable changes during 5.003/4 developement), presumably the ‘Don't look up &AUTOLOAD in @ISA when calling plain function’ part. Before that, gv_autoload had three arguments, so the 4 indicated the new version (with the method argument). Since these new functions don’t all have four arguments, and since they have a new naming convention, there is not reason for the 4.
* Restore gv_autoload4 to perlapi.podFather Chrysostomos2011-10-062-0/+6
| | | | | Even if it’s not documented (which I hope to rectify), it should still continue to be listed in perlapi.
* gv.c: Added gv_autoload4_(sv|pv|pvn)Brian Fraser2011-10-068-6/+136
|
* gv.c: Make Gv_AMupdate use gv_fetchmethod_sv_flagsBrian Fraser2011-10-061-2/+1
|
* gv.c: Added gv_fetchmethod_(sv|pv|pvn)_flags.Brian Fraser2011-10-068-8/+127
| | | | | | In addition from taking a flags parameter, it also takes the length of the method; This will eventually make method lookup nul-clean.
* Minor correction to gv_fetchmeth_autoload.tFather Chrysostomos2011-10-061-1/+3
| | | | It was not doing the sanity check for all three functions.
* Restore gv_fetchmeth_autoload to perlapi.podFather Chrysostomos2011-10-063-0/+11
|
* gv.c: Added gv_fetchmeth_(sv|pv|pvn)_autoload.Brian Fraser2011-10-068-14/+146
|