summaryrefslogtreecommitdiff
path: root/sv.h
Commit message (Collapse)AuthorAgeFilesLines
* Speedups and shrinkages of SvREFCNT_incAndy Lester2006-02-271-1/+66
| | | | | Message-ID: <20060224205434.GA17867@petdance.com> p4raw-id: //depot/perl@27334
* GvFLAGS can be overlaid with SvCUR.Nicholas Clark2006-02-251-4/+2
| | | p4raw-id: //depot/perl@27330
* Use xpv_len rather than xpv_cur in GVs to store GvASSIGN_GENERATION.Nicholas Clark2006-02-251-2/+16
| | | | | Assert that GVs do not access SvCUR or SvLEN. p4raw-id: //depot/perl@27328
* xgv_stash can be stored as a union with the NV, reducing the size ofNicholas Clark2006-02-251-16/+44
| | | | | PVGVs by another pointer. p4raw-id: //depot/perl@27326
* Curiously none of the macros SvIVX, SvUVX or SvNVX are used onNicholas Clark2006-02-251-0/+3
| | | | | typeglobs. p4raw-id: //depot/perl@27325
* Store GvGP in the SV head union. For all the common lookups [eg GvCV()]Nicholas Clark2006-02-251-13/+29
| | | | | | | | this avoids 1 pointer dereference and the associated risk of a CPU cache miss. Although this patch looks deceptively small, I fear its CBV(*) might be rather high. (* Crack By Volume) p4raw-id: //depot/perl@27323
* Avoid special case SvMAGIC macros just to cope with Perl_sv_unmagic.Nicholas Clark2006-02-241-13/+4
| | | p4raw-id: //depot/perl@27319
* Use PVMGs rather than PVGVs to store the names of our variables in theNicholas Clark2006-02-241-1/+1
| | | | | pad. p4raw-id: //depot/perl@27313
* Store the stash for our in the magic slot. This will allow us to useNicholas Clark2006-02-241-21/+41
| | | | | | PVMGs in pad names where previously PVGVs were used. In turn, this gives much greater flexibility for the layout of PVGVs. p4raw-id: //depot/perl@27312
* Replace usage of GvSTASH for storing the stash of C<our> withNicholas Clark2006-02-241-0/+7
| | | | | OURSTASH. Set the stash with OURSTASH_SET. p4raw-id: //depot/perl@27306
* assert that SvMAGIC is never non-NULL for any PVMG used as a pad name.Nicholas Clark2006-02-241-0/+2
| | | p4raw-id: //depot/perl@27304
* Redo previous sv.h change.Nicholas Clark2006-02-241-9/+10
| | | p4raw-id: //depot/perl@27302
* Replace direct flags tests & manipulations for SVpad_TYPED andNicholas Clark2006-02-231-0/+8
| | | | | | SVpad_OUR with macros SvPAD_TYPED(), SvPAD_OUR() etc, to abstract away the flags bits acutally used to store this information. p4raw-id: //depot/perl@27294
* Document a sixth use for SVf_FAKENicholas Clark2006-02-231-0/+3
| | | p4raw-id: //depot/perl@27293
* Remove get magic from typeglobs. This means that PVGVs holdingNicholas Clark2006-02-231-2/+2
| | | | | | | | | | | typeglobs never need to use SvPVX. This comes at price - typeglobs were using magic get for their stringificiation, and to pass SvOK(), so need to make typeglobs SvOK by default (by sucking SVp_SCREAM into SVf_OK - it's the only flag left), tweak SvSCREAM() to also check SVp_POK, and teach sv_2[inpu]v how to convert globs. However, it should free up SvPVX for the next part of the plan to pointer indirections, and therefore CPU cache pressure. p4raw-id: //depot/perl@27278
* Reorder the SV flags so that SVp_?OK and SVf_?OK occupy 8 contiguousNicholas Clark2006-02-211-24/+25
| | | | | | | bits (0x0000XX00). This makes perl 3K smaller with -Os on x86 FreeBSD, and might also help on other architectures (eg with 8 contiguous bits, the SvOK() test on ARM won't need an intermediate constant). p4raw-id: //depot/perl@27264
* Re-order the definitions of the private bits in SvFLAGS by value, soNicholas Clark2006-02-211-20/+30
| | | | | that we can see where we're already double-booked. p4raw-id: //depot/perl@27259
* Document the many uses of SVf_FAKE.Nicholas Clark2006-02-211-1/+12
| | | p4raw-id: //depot/perl@27258
* Steal code from maint, and use PERL_ARENA_ROOTS_SIZE to size the arenaNicholas Clark2006-02-201-0/+2
| | | | | | arrays, rather than SVt_LAST, so that SVt_LAST can truthfully remain the number of genuine SV types, unclouded by implementation details. p4raw-id: //depot/perl@27251
* PVFMs don't need CvDEPTH, and PVCVs don't use SvIVX, so movingNicholas Clark2006-02-201-6/+16
| | | | | | | | | xcv_depth into the IV union saves 4(ish) bytes per CV and format. "ish" because it was a long, but has been changed to I32 (along with the corresponding field in struct block_sub) so as not to enlarge the IV union on platforms where sizeof(long) > sizeof(IV), or struct block_sub where sizeof(long) > sizeof(I32) p4raw-id: //depot/perl@27247
* xcv_root and xcv_xsub can also be merged into a union, providing a newNicholas Clark2006-02-201-6/+12
| | | | | flag is added to denote whether the PVCV is perl or XSUB. p4raw-id: //depot/perl@27244
* xcv_start and xcv_xsubany can be merged into a union, as they are neverNicholas Clark2006-02-201-2/+4
| | | | | both needed. p4raw-id: //depot/perl@27243
* Shave sizeof(NV) bytes from formats, by using the same offsetNicholas Clark2006-02-191-0/+29
| | | | | manoeuvre as PVs, PVIVs, PVAVs and PVHVs. p4raw-id: //depot/perl@27231
* AVs and HVs don't have IVXs or NVXs, so assert this too.Nicholas Clark2006-02-191-1/+7
| | | p4raw-id: //depot/perl@27230
* Under -DDEBUGGING, assert that SvIVX, SvUVX and SvNVX aren't beingNicholas Clark2006-02-191-6/+30
| | | | | | used on scalars that don't have the memory allocated. Correct SvSTASH and SvMAGIC to only evaluate the sv argument once. p4raw-id: //depot/perl@27229
* arena-rework : consolidated patchJim Cromie2006-02-181-1/+6
| | | | | | | | | Message-ID: <43F0F649.9040205@gmail.com> Tweaked somewhat to split the arena boolean from the arena_size, and with the PTE still doubling-up with one of the SV types in the array. p4raw-id: //depot/perl@27215
* Re: [PATCH] s/Null(gv|hv|sv)/NULL/gSteven Schubiger2006-02-031-1/+1
| | | | | | Message-ID: <20060203152449.GI12591@accognoscere.homeunix.org> Date: Fri, 3 Feb 2006 16:24:49 +0100 p4raw-id: //depot/perl@27065
* Re: [PATCH] s/Null(av|ch)/NULL/gSteven Schubiger2006-02-021-1/+1
| | | | | Message-ID: <20060202093849.GD12591@accognoscere.homeunix.org> p4raw-id: //depot/perl@27054
* By changing SvVOK() from returning 0/1 to 0/pointer-to-magic we canNicholas Clark2006-01-281-1/+2
| | | | | | save duplicating mg_find calls, without changing the semantics in any boolean context. p4raw-id: //depot/perl@26979
* More copyright updatesRafael Garcia-Suarez2006-01-041-1/+1
| | | p4raw-id: //depot/perl@26652
* Move all the xxxpvs() macros to handy.h.Gisle Aas2006-01-041-6/+0
| | | | | | This brings them closer to STR_WITH_LEN. Besides only half of them were sv-related after change 26649. p4raw-id: //depot/perl@26650
* Make the new STR_WITH_LEN() affected compile under -Dusethreads.Gisle Aas2006-01-041-3/+5
| | | | | Can't use STR_WITH_LEN() as argument to a macro :-( p4raw-id: //depot/perl@26649
* Introduce newSVpvs_share() macro.Gisle Aas2006-01-041-0/+1
| | | | | Gets rid of some hardcoded string lengths. p4raw-id: //depot/perl@26646
* Introduce the macros newSVpvs(str) and sv_catpvs(sv, str).Gisle Aas2006-01-041-0/+3
| | | | | Gets rid of many hardcoded string lengths. p4raw-id: //depot/perl@26641
* Fixing the SVREFCNT macroAndy Lester2005-12-291-1/+1
| | | | | Message-ID: <20051228193051.GD23207@petdance.com> p4raw-id: //depot/perl@26524
* Typo fixes from Robin Houston inNicholas Clark2005-12-161-2/+2
| | | | | <20051216201446.GA24709@rpc142.cs.man.ac.uk> p4raw-id: //depot/perl@26382
* Map the HE arena onto SV type 0 (SVt_NULL).Nicholas Clark2005-11-191-0/+3
| | | | | Abolish PL_he_root and PL_he_arenaroot. p4raw-id: //depot/perl@26171
* Move the location of the definition of the arena slot used for pteNicholas Clark2005-11-171-0/+3
| | | | | | | into sv.h, to keep it in one central place. Change it to use SVt_RV. (Having SVt_IV for real use will be useful. SVt_RV has no body, and doesn't pretend to have one, so it is spare.) p4raw-id: //depot/perl@26148
* Re: eliminate discreet arenarootsJim Cromie2005-11-161-1/+2
| | | | | | Message-ID: <4378E5B0.3010708@gmail.com> Date: Mon, 14 Nov 2005 12:29:52 -0700 p4raw-id: //depot/perl@26141
* Mark all places where perl needs to look at a possibly-freed scalarNicholas Clark2005-11-141-0/+5
| | | | | with a macro SvIS_FREED(sv) p4raw-id: //depot/perl@26132
* Fix breakages that prevended -DPERL_POISON from compiling.Nicholas Clark2005-11-131-2/+9
| | | p4raw-id: //depot/perl@26112
* Replace sv_catsv_mg and sv_catpvn_mg, and move the obsolete bodies toNicholas Clark2005-10-291-0/+3
| | | | | mathoms.c p4raw-id: //depot/perl@25885
* Add a new SMAGIC flag, to signal a call to SvSETMAGIC. Add it toNicholas Clark2005-10-291-0/+1
| | | | | | | sv_catpvn_flags and sv_catsv_flags, and then re-implement sv_catpvn_mg and sv_catsv_mg as calls to sv_catpvn_flags and sv_catsv_flags respectively. p4raw-id: //depot/perl@25884
* sv_2pv_nolen, sv_2pvbyte_nolen and sv_2pvutf8_nolen can all be replacedNicholas Clark2005-10-291-0/+3
| | | | | with terse macros, and the function bodies retired. p4raw-id: //depot/perl@25883
* Replace sv_force_normal with a macro that calls sv_force_normal_flags.Nicholas Clark2005-10-291-1/+2
| | | p4raw-id: //depot/perl@25879
* Replace sv_unref with a macro that calls sv_unref_flagsNicholas Clark2005-10-291-0/+2
| | | p4raw-id: //depot/perl@25878
* sv_taint() can easily be replaced by a macro.Nicholas Clark2005-10-291-0/+2
| | | p4raw-id: //depot/perl@25876
* Fix to PERL_DEBUG_COWSteve Peters2005-09-231-5/+5
| | | | | Message-ID: <20050923181109.GA1350@mccoy.peters.homeunix.org> p4raw-id: //depot/perl@25590
* As SvPVX_mutable and SvPVX_const are new, they don't need to be LVALUEsNicholas Clark2005-09-221-4/+5
| | | p4raw-id: //depot/perl@25571
* Remove the last STRLEN n_a;s that my compiler can reach.Nicholas Clark2005-09-211-0/+6
| | | p4raw-id: //depot/perl@25530