Dave Mitchell writes:

Apart from a bit of time spent on a few miscellaneous bugs, I mainly continued working on refactoring re_intuit_start(). During the course of the month I merged two sets of commits back into blead. At this point I have now audited (and where appropriate fixed), the whole of the body of code for general correctness, and in particular for utf8 bugs and inefficiencies, and for correct treatment of anchors, especially \G.

In fact it was \G that originally set me off looking at this function. Originally the regex optimiser was skipped completely when a pattern contained \G. As part of my work last summer in refactoring how the "intelligence" of matching was distributed between pp_match(), regexec_flags() and re_intuit_start(), I changed it so that re_intuit_start() was called even in the presence of \G. This triggered a couple of bug reports, and in the course of fixing them, I realised I didn't really understand re_intuit_start(). The more I studied it, the less I understood it. It turned out to have lots of subtleties, most of which were undocumented. It used just two generic character pointers s and t, in scope throughout the 600 lines function, which were used to mean different things at different times. It had 32 gotos but no loop structures like while(). You get the general picture.

The code now has only(!) 20 gotos, and variables with more meaningful names, like 'rx_origin', and with a lot more code comments.

There's still a lot more I'd like to do with the code. In particular, there are a couple of significant optimisations that I'm aware of that are now possible, and still considerable scope for simplification; but I'm leaving any further work until after 5.20 is out.

Summary

32:45 RT#120692 Slow global pattern match with input from utf8
1:36 [perl #121230] process group kill on Win32 broken in 5.17.2
3:41 [perl #121362] Bleadperl recently introduced a new SEGV
0:32 [perl #121484] /m causing false negative
2:07 [perl #72028] execute permission missing from some utils
18:55 process p5p mailbox

59:36 Total (HH::MM)

4.4 weeks
59.6 total hours
13.5 average hours per week

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

24.1 weeks
395.1 total hours
16.4 average hours per week

There are 5 hours left on the grant.

As his Maintaining the Perl 5 Core grant is about to be successfully completed, Dave Mitchell has requested an extension of $20,000. This will allow him to dedicate another 400 hours to this work.

During this grant he sent weekly reports to the p5p mailing list as well as providing monthly summary reports that have been published on this blog, the most recent of which are linked below:

Report for Month 5
Report for Month 4
Report for Month 3

Before we make a decision on this extension we would like to have a period of community consultation that will last for one week. Please leave feedback in the comments or if you prefer send email with your comments to karen at perlfoundation.org.

If successful this extension will be funded from the Perl 5 Core Maintenance Fund.

It is my pleasure to announce that Booking.com approached Karen Pauley, President of The Perl Foundation, to announce further sponsorship of the Perl5 Core Maintenance Fund. Booking.com have been generous contributors and supporters of this fund since its inception and this latest generous support is for the incredible amount of €10,000 (ten thousand euros).

Booking.com have sponsored Perl events and initiatives for many years and have also been host to Perl events at their offices in Amsterdam. They employ a large and committed team of Perl developers and use Perl for a vast number of tasks in their business. Booking.com have spoken favourably about how Perl has given them the "flexibility and efficiency that has enabled them to grow quickly".

"Once again we are deeply honoured to receive funding from Booking.com." said Karen Pauley, president of TPF, "Their consistent support for the Perl community, language and events has always been at the core of our relationship and I know I speak for the whole community when I express my gratitude".

Booking.com is one of the world's leading online accommodation reservation services and part of the Priceline.com group (NASDAQ: PCLN). Booking.com was founded in 1996 and is based in Amsterdam, the Netherlands.

Booking.com attracts millions of unique visitors each month who can choose from over 425,000 hotels and other accommodations based in 195 countries worldwide. Booking.com reserves in excess of 625,000 room nights every 24 hours in over forty languages. They have over 115 offices worldwide serving their customers 24 hours a day.

The Grants Committee is pleased to announce the voting results of the March round.

The following grant is approved and funded:

The following grant is approved but not funded as specified in 3.4 of the Rules of Operation. This will be reconsidered in the next round according to 1.2 of the rules.

The following grant applications were rejected:

Tom Hukins has been assigned as a Grant Manager for the funded grant.

We would like to express gratitude for those who took time to give feedback on these proposals.

As a reminder, we will again call for grant proposals on May 1st.

Enroll your Amazon account in Amazon Smile, and The Perl Foundation will receive a donation of 0.5% of all qualifying purchases you make at smile.amazon.com.
Yet Another Society

Jeffrey Ryan Thalhammer reported:

This past May, The Perl Foundation awarded a grant to fund development of a couple features in Pinto. Pinto is a robust tool for curating a private repository of CPAN modules, so you can build your application with the right modules every time. This is my fifth progress report on that work.

Pinto 0.0995 was just shipped to CPAN and it includes a merge command. At the moment, it is only capable of doing a fast-forward merge (that is, when the target stack hasn't changed since you last forked or merged it).

I still plan to support other types of merges, but I actually think fast-forward merging will cover the vast majority of scenarios. Most of the time, stacks are short-lived. You make a copy, upgrade some packages, and then build your app. If your tests fail, you probably throw the new stack away and stay with your current packages. If your tests pass, then you immediately merge the new stack back into the original.

This release also contains reset and revert commands that are similar (but not identical) to the same commands you find in git. All the new commands are experimental, so the interface and behavior are subject to change.

So I'm not calling the grant work "done" just yet. Once these new commands have been battle-tested a bit, then we'll see where things stand.

Dave Mitchell writes:

I spent about half my time last month continuing to work on fixing and refactoring the Perl_re_intuit_start() function, which is the main run-time optimisation facility in the regex engine.

My work so far was merged back into blead on 8th February; I've since done some more work which hasn't been pushed yet.

I also fixed a regression in maint-5.18 regarding whether a variable is seen in a regex that has a hash char class and an embedded newline, like

m{[#]
$foo}x

A side-effect of working on that led me to waste about 5 hours trying to get maint-5.18 to pass under clang/address-sanitiser. The failures appeared random, and bisecting showed that they were "fixed" in blead by a commit that should have made no difference; but cherry-picking that commit made the problem go away. It was also sensitive to re-compiles: touch, but don't change perl.h, and recompile, and the problem changed or went away. Eventually I decided it was probably a weird clang issue, and abandoned the effort.

The rest of my time was spent on a few miscellaneous issues, plus ploughing through my p5p mailbox.

Summary

5:10 RT #119125 /[#]/ and codeblocks in maint
35:14 RT#120692 Slow global pattern match with input from utf8
1:37 [perl #121230] process group kill on Win32 broken in 5.17.2
0:46 [perl #121336] valgrind errors in Perl_hv_iternext_flags
5:00 clang/asan weirdness on maint
1:00 fix locale.t spurious warning output
23:39 process p5p mailbox

72:26 Total (HH::MM)

4.0 weeks
72.4 total hours
18.1 average hours per week

As of 2014/02/28: since the beginning of the grant:

19.7 weeks
335.6 total hours
17.0 average hours per week

There are 64 hours left on the grant.

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at www.perlfoundation.org.

Recent Comments

  • Karen Pauley: The Perl Foundation is a d.b.a. (doing business as) for read more
  • Olivier Mengué (DOLMEN): +1 Dave is doing amazing work that requires deep knowledge read more
  • Olivier Mengué (DOLMEN): The Amazon widget says that the donation will go to read more
  • Olivier Mengué (DOLMEN): Booking.com has been the host of two Perl QA Hackathons, read more
  • Ron Savage: I support granting this extension. read more
  • Steffen Mueller: Dave's work has been consistently outstanding. He's working well below read more
  • mirod: +1 read more
  • Makoto Nozaki: There was a question why the fourth proposal got 9 read more
  • Makoto Nozaki: Will, As you may know, the Grants Committee was unable read more
  • Makoto Nozaki: Will, Grants Committee representative will get in touch with you read more

Find recent content on the main index or look in the archives to find all content.

OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.38