DAVEM TPF Grant#2 January 2018 report

The main thing I did last month was to fix a bunch of issues with tr///c.
Initially I was just working on a particular ticket, then noticed that
tr///c was almost completed untested in core, and had a bunch of issues,
and I ended up rewriting most of the implementation for
tr/nonutf8/nonutf8/c (with or without the /s and /d flags).

From the merge commit, v5.27.7-203-gb1f1599:

    This branch does the following:

    Fixes an issue with tr/non_utf8/long_non_utf8/c, where
    length(long_non_utf8) > 0x7fff.

    Fixes an issue with tr/non_utf8/non_utf8/cd: basically, the
    implicit \x{100}-\x{7fffffff} added to the searchlist by /c wasn't being

    Adds a lot of code comments to the various tr/// functions.

    Adds tr///c tests - basically /c was almost completely untested.

    Changes the layout of the op_pv transliteration table: it used to be roughly

          256 x short  - basic table
            1 x short  - length of extended table (n)
            n x short  - extended table

    where the 2 and 3rd items were only present under /c. Its now

            1 x Size_t - length of table (256+n)
      (256+n) x short  - table - both basic and extended

    where n == 0 apart from under /c.

    The new table format also allowed the tr/non_utf8/non_utf8/ code branches
    to be considerably simplified.

    op_dump() now dumps the contents of the (non-utf8 variant) transliteration

    Removes I32's from the tr/non_utf8/non_utf8/ code paths, making it fully
    64-bit clean.

    Improves the pod for tr///.

The other thing of note I did was to move sub attributes back before the
signature, because attributes need to be able to affect the compilation of
code within the signature, e.g.

    sub f :lvalue ($a = do { $x = "abc"; return substr($x,0,1)}) {

      0:20 OP_MULTICONCAT signed/unsigned issue
      6:30 RT #132141: lvalue return broken in signature
     35:58 RT #132608 heap-buffer-overflow in Perl_do_trans
      2:22 RT #132772: MULTICONCAT: Geo-StreetAddress-US-1.04 affected too
      0:56 SEGV in t/re/pat.t
      0:55 [perl #131648] Out-of-bounds read in S_regmatch
      2:26 process p5p mailbox
     49:27 TOTAL (HH::MM)

 224.4 weeks
2962.4 total hours
  13.2 average hours per week

There are 171 hours left on the grant.

Music lesson: a symbiotic relationship whereby a pupil's embellishments
concerning the amount of practice performed since the last lesson are
rewarded with embellishments from the teacher concerning the pupil's
progress over the corresponding period.
2/12/2018 12:40:44 PM
perl.perl5.porters 47002 articles. 0 followers. Follow

0 Replies

Similar Articles

[PageSpeed] 13