develooper Front page | perl.perl5.porters | Postings from April 2012

DAVEM TPF Grant March 2012 report

Thread Next
From:
Dave Mitchell
Date:
April 3, 2012 11:41
Subject:
DAVEM TPF Grant March 2012 report
Message ID:
20120403184127.GC2961@iabyn.com
As per my grant conditions, here is a report for the March period.

Spent the month successfully bringing run-time regex code blocks into the
new way of doing things.

My previous work on this had handled the cases where the code appears
within a literal regex, e.g.

    /ab(?{})/;
    $r = qr/xy(?{})/;
    /z$r/;

In all the above cases, the code block is parsed and compiled by the perl
parser at the same time as the surrounding code is compiled; the compiled
blocks are then retained and passed to the regex engine when the pattern
is compiled, and preserved when for example a qr is interpolated within
another pattern, as above.

My changes this month extend this to run-time patterns, e.g.

    use re 'eval';
    my $code = '(?{})'; /$code/;
    $foo =~ '(?{})'; # this is a string literal, not a regex literal

It does this by making a copy of the pattern string, but with any literal 
code blocks blanked out and \ and ' escaped; it then calls eval_sv()
on an SV containing the string
    qr'pattern with \\,\' escapes and literal (?{}) blanked out'
then any compiled code blocks are extracted from the qr and added to
the pool of code blocks (e.g. from literal code blocks already compiled).

Having reached this point, it means I could then remove all the old-style
re_eval compiling code in the core, including the hated sv_compile_2op()
function, and considerably simplifying S_doeval().

There are three more things I still need to do: the main one is to fix the
way code blocks are invoked, chiefly to give them a proper entry on the
context stack so that things like die,next,and caller don't crash, but
also to make recursion work properly. The other two things are to do a big
list of miscellaneous fixes and tweaks that I've been noting as I go
along; and finally, to check that all the tickets attached to the
meta-ticket have in fact been fixed by these changes.

Over the last month I have averaged 16 hours per week.

As of 2012/03/31: since the beginning of the grant:

 108.4 weeks
1139.9 total hours
  10.5 average hours per week

There are now 160 hours left on the grant.
 
 ---
 
Report for period 2012/03/01 to 2012/03/31 inclusive

SUMMARY
-------

    Effort (HH::MM):

        0:00 diagnosing bugs
       69:10 fixing bugs
        0:00 reviewing other people's bug fixes
        0:00 reviewing ticket histories
        0:00 review the ticket queue (triage)
       -----
       69:10 TOTAL

    Numbers of tickets closed:

           1 tickets closed that have been worked on
           0 tickets closed related to bugs that have been fixed
           0 tickets closed that were reviewed but not worked on (triage)
       -----
           1 TOTAL


SHORT DETAIL
------------

67:40 [perl #34161] METABUG - (?{...}) and (??{...}) regexp issues
 1:30 [perl #111974] 5.15.9 breaks Glib



-- 
"You're so sadly neglected, and often ignored.
A poor second to Belgium, When going abroad."
    -- Monty Python, "Finland"

Thread Next


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