November 2018 Archives

The Grants Committee is accepting grant proposals all the time. We evaluate them every two months and another evaluation period is upon us.

September 2018 Grant Votes

The Grants Committee has concluded the voting of the September 2018 round.

There were two proposals this round, both of which were approved and funded.

Original article was published on November 9, 2018

The overview page now shows all data displayed in the previous profiler's page as well as adds a "Start times of threads" chart. "GC" tab has been updated with sub-tabs to customise graphs using different display modes. The routines list now features a "goto" arrow for smooth and easy navigation.

Read more at: Where did I leave my AT-KEYs?


Maintaining Perl 5 (Tony Cook): October 2018 Grant Report

This is a monthly report by Tony Cook on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible.

Approximately 49 tickets were reviewed, and 6 patches were

[Hours]         [Activity]
  2.18          #125760 re-test branch and apply to blead
                #125760 perldelta
 11.90          #126706 get tests working, work on installer with
                #126706 re-work to use @rpath
                #126706 polish, testing
                #126706 fixes, testing, comment with patch
                #126706 look at fixing embed tests, re-work to avoid rpath
                #126706 more re-work, simplify, testing, polish, comment
                with patch
  1.27          #131649 (sec) find fix in blead/5.28, backport to 5.26,
                comment with patch
  1.73          #132147 (sec) review, look for supposed other project
  2.44          #132782 review patches, work on tests, find an existing
                vec() bug, rebuild for debugging
                #132782 debugging, comment
  1.10          #133396 review ticket and code
  1.58          #133423 (sec) check blead, try to forward-port patch, test
                #133423 (sec) testing, comment
  0.35          #133439 retesting, apply to blead
  3.64          #133440 review discussion, research, work on improving the
                error messages
                #133440 more work on improving errors
  0.73          #133442 review, testing
                #133442 push to blead
  0.13          #133494 re-check, apply to blead
  0.75          #133511 review, research and comment
  1.40          #133519 try to reproduce, fail on win7, setup win10
                #133519 try to reproduce on win10
  1.58          #133523 (sec) review regexp code, comment
                #133523 (sec) review regexp code, comment
  2.54          #133535 debugging
                #133535 debugging, comment
  0.85          #133550 research, testing, apply to blead
  0.32          #133567 test, apply to blead
  0.95          #133582 comment with patch
  0.35          #133585 review and comment
  0.12          #133597 (sec) reject
  1.82          #133603 try to reproduce with gcc 8.1.0
                #133603 manage to reproduce, try to debug
  4.54          #133604 push skip, debugging, track down cause, testing
                #133604 work on regression tests, testing, apply to blead
  0.42          #133610 comment
  1.35          #133620 (sec) reproduce, work on bisect
                #133620 (sec) more work on bisect, comment
  0.27          #133630 comment
  0.17          ask khw about two of the issues, some tracking admin
  2.07          bang head against encoding issues trying to apply patches
  0.20          comment on private File::Slurp thread
  0.55          comment svtype thread
  0.50          debugging binmode
  1.37          diagnose :utf8 recv fatal tests on Win32 (binmode doesn’t
                appear to work), encounter some build issues along the way
  2.05          feature sysio_bytes
  2.35          feature sysio_bytes, add some :utf8 fatal tests for recv,
                send, testing
  1.38          feature sysio_bytes, debugging
  1.95          feature sysio_bytes, more testing
  1.00          feature sysio_bytes, rebase, debugging, testing
  1.92          feature sysio_bytes: docs, testing
  1.33          find cause of encoding issues, finish patching
  1.07          more security fix checks
  1.78          polish, perldeta, open RFC 133610
  2.08          reply security email, work on checking security fixes for
  1.25          request CVE IDs
  2.03          respond to security email from sawyerx, try to work out
                broken ranges for security tickets
  0.60          review Jim’s patches
  0.85          security ticket wrangling
  0.42          update tickets with CVE IDs
  1.08          utf8 readline track down problem
  2.02          utf8 readline – debugging
  0.22          utf8-readline testing
 74.55 hours total

Based on hints from the trac ticket for the OS X -Duseshrplib issue,
this has finally been fixed in blead.  [perl #126706]

This is a monthly report by Dave Mitchell on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible.

I've been almost entirely absent from perl stuff for the last couple of
months - due to doing other things and lack of enthusiasm. Hopefully
things will start picking up.

Did a little bit of work on a couple of tickets

      0:40 RT #133518 svref_2object regression in 5.28.0
      0:30 RT #133523 Read from an invalid address
      1:10 TOTAL (HH::MM)

 264.0 weeks
3152.5 total hours
  11.9 average hours per week

There are 313 hours left on the grant

"Overview" tab is now functional but in flux. The "Routines" tab has been improved to include sorting functionality for columns, a minimal view in the "Paths" sub tab and a new "Callers" sub tab. An "Allocations" top level tab has also been added. Read more at: Full Screen Ahead!


Jonathan writes:

My performance work in October focused for the most part on escape analysis and scalar replacement. This work remains in a branch, however it has now reached the milestone of performing its first couple of real-world optimizations, eliminating short-lived boxes and wrapper objects across inline boundaries. I also started with some long-planned work on more aggressive optimization of lexical variables, such that they are stored as "locals" where Rakudo can see they will never be accessed from outside of the current scope. This allows for slightly cheaper access, but more significantly much easier analysis in the specializer. This will later combine with the escape analysis work to eliminate many short-lived Scalar containers, which will in turn reduce the number of guards and allocations. I expect to merge both this work and the initial partial escape analysis and scalar replacement work in November.

On the reliability side of things, I tracked down a couple of problems relating to parametric types and precompilation. When we have a type like Array[Int], many modules may declare it, but we need to ensure that - no matter which modules we load - we only end up with one instance of this type, so that they will match and be considered equal. This was, in some cases, not happening. Now it is.

10:08   Continue work on escape analysis and scalar replacement
3:34    Develop more aggressive lexical to local lowering
        optimizations in the Rakudo optimizer (this will help all
        backends, not just MoarVM)
4:28    Debug and fix problems involving parametric types and

Total: 18:10

Total time spent on current grant period: 126:01
Total time remaining on current grant period: 73:59

Jonathan writes:

My main deliverable in September was a significant improvement to the performance of object construction and initialization. I wrote a blog post describing the ways in which this was achieved. I also improved the performance of array assignment, took on a tricky bug that stood in the way of merging a GC performance improvement, and took another small step with the work on escape analysis.

5:33    Lots of performance improvements to object initialization
3:24    Make ASSIGN-POS inlineable, improving array assignment
        performance; fix an optimization ordering problem while
        doing so, which not only helped array assignment
        performance, but had wider benefit
3:03    Hunt down and fix a bug introduced by an optimization to
        generational GC, allowing the optimization to be merged
1:20    Support scalar replacement of native attribute types in
        the upcoming escape analyzer
1:27    Fix problems with how we handled inlinees with multiple
        returns, such that they don't violate SSA form; this
        allows for more precise analysis of such code, which may
        lead to better optimization
1:16    Assorted other debugging/fixing of smaller bugs

Total: 16:03

About TPF

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

About this Archive

This page is an archive of entries from November 2018 listed from newest to oldest.

October 2018 is the previous archive.

December 2018 is the next archive.

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 6.2.2