develooper Front page | perl.perl5.porters | Postings from February 2018

Re: DAVEM TPF Grant#2 January 2018 report

Thread Previous
From:
Sawyer X
Date:
February 12, 2018 18:36
Subject:
Re: DAVEM TPF Grant#2 January 2018 report
Message ID:
0ff9666e-979a-be44-61df-67cce5a993fc@gmail.com
+1 to this.

Thank you for the work, Dave!

On 02/12/2018 02:40 PM, Dave Mitchell wrote:
> 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
>     added.
>
>     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
>     table.
>
>     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)}) {
>         ....
>     }
>
> SUMMARY:
>       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.
>

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About