Commits on Aug 30, 2015
  1. [PATCH] RT #125840 stop *x = $x doing bad things

    If $x is a GV then *x's GP would be freed before $x's GP is assigned to
    it. That would prematurely free $x, so protect it with a temporary ref
    count bump.
    iabyn committed with rurban Aug 30, 2015
  2. dump: allow op_dump of rv2cv gv

    which is a RV, not a GV
    rurban committed Aug 15, 2015
Commits on Aug 28, 2015
  1. protect from XSRETURN(-1)

    rurban committed Aug 24, 2015
Commits on Aug 12, 2015
  1. add panic: wrong function prototype for funcname

    Fixes RT #125341, -e'BEGIN<>' where the
    readline term was used as proto for a function. All THINGS
    (literals) are allowed, but only CONST is accepted.
    Rather panic with a proper message than just assert.
    rurban committed Aug 12, 2015
  2. sassign was used as UNOP, optimize {or,and,dor}assign

    In newASSIGNOP with {or,and,dor}assign, the rhs was wrongly compiled as UNOP sassign.
    It caused DEBUGGING corruption in the op finalizer for sassign (first not
    pointing to last without sibling) and added random chunk to the last field.
    It was never used though, as only {or,and,dor}assign used this op_other op.
    {or,and,dor}assign needs the sassign with OPpASSIGN_BACKWARDS, set it
    directly, not later in the LOGOP.
    finalize_op needs a special case for it, as the last is empty there.
    rurban committed Aug 12, 2015
  3. sassign is wrongly declared as BASEOP, not BINOP.

    This was wrong from the very beginning:
    added with 7907280 lwall perl 5.0 alpha 2 1993 with class s, not 0,
    but missing the 2 S S args, which are present in aassign.
    Changed to BASEOP with db173ba by mbeattie in 1997.
    The '# sassign is special-cased for op class' comment is suspicious.
    Fix it in ck_sassign also, it is created as BINOP in newASSIGNOP.
    In 2022068 dapm 2014 complained about it also. Remove some special
    cases where it should be a BINOP but was not.
    rurban committed Aug 12, 2015
Commits on Jul 28, 2015
  1. stashcache: another off-by-one missing \0

    Ensure copying the last \0 of the string to tmpbuf
    in gv_stashpvn_internal.
    i.e. called by populate_isa(IO::File)
    causing IO::Handle having added a random junk byte
    All these three missing \0 were added in 5.16
    rurban committed Jul 28, 2015
  2. CopFILE_set: another off-by-one missing \0

    ensure copying the last \0 of the string to tmpbuf.
    I see lots of chunk bytes in cop_filegv after the "_<-e"
    rurban committed Jul 28, 2015
  3. require: fix off-by-one len CopFILE_set

    require left one garbage byte at the end
    when inserting it into the CopFILE with the _< prefix.
    pass the real len to CopFILE_setn. Files are thanksfully ASCIIZ.
    Note that SvCUR(namesv) cannot be used here if avail.
    as it also if off-by-one in some cases.
    before with -DH:
    HASH     67   1270 - 30 main{_</usr/src/perl/blead/cperl/dist/Exporter/lib/^0}
    or any other garbage.
    HASH     67   1271 - 30 main{_</usr/src/perl/blead/cperl/dist/Exporter/lib/}
    rurban committed Jul 28, 2015
  4. configpm: skip wrong perl_(version|subversion|revision)

    These variables appear on case-insensitive filesystems (darwin)
    but not on linux, and should not be used
    rurban committed Jul 7, 2015
  5. t/TEST: add -D\w support, debugging

    Allow passing debugging flags to TEST
    such as cd t; ./TEST -DH
    rurban committed Jul 15, 2015
  6. test -D switches: new t/run/switchDBG.t

    -DH not yet, as this version does not do much with it
    rurban committed Jun 22, 2015
  7. DEBUG_I: add documentation for -DI and PERLIO_DEBUG

    This changed.
    Note that we have no testcases yet for -D* switches at all.
    rurban committed Jun 22, 2015
  8. PerlIO_debugio: reuse fd from PERLIO_DEBUG for PL_perlio_debug_fd

    When env PERLIO_DEBUG is set, debug prints to this fd not stderr.
    i.e. all -D* options can print to a file seperate from stderr.
    The perlio table is pre-initialized with 4 entries not 3 with
    DEBUGGING for the PL_perlio_debug_fd fd=3.
    rurban committed Jun 19, 2015
  9. DEBUG_I: add a seperate -DI instead of PERLIO_DEBUG

    We do not want to pollute our special PERLIO_DEBUG filehandle
    with PerlIO debug messages, and we want to be able to write all
    debug messages into a seperate filehandle, not just stderr.
    Second, we want a fast PerlIO. Now PERLIO_DEBUG is only checked with
    rurban committed Jun 19, 2015
  10. schmorp stableperl patches for 5.22.0

    one part is fixed upstream with
    commit 73949fc
    Author: David Mitchell <>
    Date:   Mon Jun 8 09:15:17 2015 +0100
        make PadlistNAMES() lvalue again.
        The PadlistNAMES() macro was introduced with v5.17.3-69-g86d2498.
        This macro happened to be lvalue-capable, although it wasn't documented
        as such.
        v5.21.6-163-g9b7476d as a side effect, broke the lvalueness, which broke
        This commit restores the lvalueness.
    rurban committed Jun 18, 2015
  11. restricted hash error message with stashes

    Improve the error message when accessing closed classes,
    a readonly stash, by displaying the name.
    rurban committed Jun 10, 2015
  12. installperl: no strip with DEBUGGING

    and various other minor issues:
    skip scanning .git also
    add cygwin to list of needed chmod +x dll
    rurban committed May 30, 2015
  13. parse unicode superscripts simplified (max 2 digits)

    add helpers doPOWcop() macro and a UNIsuperscript() functions.
    unicode superscripts are now split into pairs of one or max two digits,
    the remaining superscripts are than stacked.  like 2⁰²⁵ => (2**02)**5
    rurban committed May 13, 2015
  14. parse unicode constant superscripts (one digit)

    add POWCOP to accept a literal (one digit only so far)
    argument for OP_POW, like $a³ for 0-9.
    regen perly for POWCOP ("pow constant op")
    TODO: multidigit superscripts are stacked, not composed
    into base 10 digits. eg: 2²⁵ 2**25 != (2**2)**5,
    even if some visual representations suggests so.
    Rather use (2²)⁵ then.
    rurban committed May 8, 2015
  15. parse sdot for multiply also

    add the dot operator ⋅ also, so that is does not feel left out over ÷.
    thanks ralesk (@github).
    also improve the error fallback cases.
    rurban committed May 4, 2015
  16. parse some new unicode keywords

    with utf8 and use 5.22 or -E:
    → ⇒ ⇔ ≠ ≤ ≥ ÷
    ARROW -> and FATARROW =>
    NCMP <=>
    NE,LE,GE !=,<=,>=
    DIVIDE /
    Note that we special-case ${uniop}, like $÷ or $≥
    to error with a different syntax error than without
    a leading $. This is just for t/uni/variables.t
    Technically we check against feature 'unicode_strings', which has nothing
    to do with the lexing of ops, but we don't want to waste yet another
    feature for this. In C this feature is called 'unicode' alone.
    We just need to ensure that utf8 and 5.22 is enabled.
    rurban committed Apr 30, 2015
  17. dump,Devel-Peek: harmonize FLAGS

    do not display the string parts of Cv/GvFLAGS in SvFLAGS
    use the correct Cv,Gv prefix, stringify them.
    use the existing SV_SET_STRINGIFY_REGEXP_FLAGS macro
    rurban committed Jul 2, 2015
  18. dump: add FLAGS values and PADLIST sizes

    also name the {Cv,Lv}FLAGS correctly
    rurban committed Apr 30, 2015
  19. t/porting/globvar.t: skip PL_memory_debug_header also

    as it is skipped in makedef.
    This error will appear with -DPERL_TRACK_MEMPOOL
    rurban committed Apr 29, 2015
  20. Ignore ENOTTY on open via the perlio buffer layer

    $ touch file
    $ perl -e'open(my $fh,"<","file") && print "$!\n";'
    Inappropriate ioctl for device
    When we push the buffer layer to PerlIO and do a failing isatty() check
    which obviously fails on all normal files, restore errno
    to ignore the wrong global ENOTTY.
    See also
    rurban committed Apr 3, 2015
  21. regen_lib: add some love for vim

    I am an emacs user, but still vim readonly markers are not hard to add.
    For make regen generated files
    rurban committed Mar 14, 2015
  22. MARK -Ds debugging

    display the MARK arity and pointers with MARK macros.
    assert on markptr underflow.
    rurban committed Mar 16, 2015
  23. XSLoader 0.21: use dl_find_symbol 3rd optional argument

    to skip the worthless dl_last_error message
    rurban committed Mar 13, 2015