FAQ

[Perl6-internals] Looking for help updating Perl 6 and Parrot part of Perl Myths talk

Tim Bunce
Sep 14, 2009 at 11:15 am
I'm working on an update to my "Perl - Baseless Myths and Startling
Realities" talk. (Which I'll be giving in Dublin, Moscow and Pisa in the
few weeks!)

I got great help on the Perl 5 portion of the talk when I asked via my blog
http://blog.timbunce.org/2009/08/13/help-me-update-my-perl-myths-talk-for-2009/
but I've not had any input for the later slides on Perl 6 and Parrot.

You can find my current draft at http://files.me.com/tim.bunce/65oikg (2.3MB PDF)

It's worth reading just to see the great health and vigour of the Perl
community. The updated CPAN graphs are quite amazing in themselves.

I'd be grateful for feedback on any of the slides, but I'm especially
interested in updates for:

page 73 - Perl 6 implementations
I've added Mildew, with links, to the SMOP line
anything I should add / change / remove?
What's the status of KindaPerl6?

page 77 - quantity of code writen in Perl 6
are there any other significant perl6 codebases?

page 80 - graph of parrot commits and releases
I don't have a url for that graph. Do you?
Is it maintained? Can anyone update it for me?
Can anyone produce a similar one for rakudo?

page 81 - size of parrot test suite
I can update the basic number myself, but how many
runcores are considered useful?

page 85 - Rakudo test progress
I've just updated this to the latest myself.

Anything else I should add, change or remove? I'm especially interested
in verifyable metrics showing effort, progress, or use. Ideally graphical.
Any interesting nuggets that fit with the theme will be most welcome.

Thanks!

Tim.
reply

Search Discussions

6 responses

  • Carl Mäsak at Sep 14, 2009 at 1:47 pm

    Tim (>):
    I'd be grateful for feedback on any of the slides, but I'm especially
    interested in updates for:

    page 73 - Perl 6 implementations
    I've added Mildew, with links, to the SMOP line
    anything I should add / change / remove?
    What's the status of KindaPerl6?
    I think Elf could very well be added to those.
    page 77 - quantity of code writen in Perl 6
    are there any other significant perl6 codebases?
    Again, Elf is a nice, large example. :)

    Counting up the lines of code in November:

    $ find lib -name \*.pm | xargs wc
    [...]
    1618 5351 46558 total

    So 1600. But as always it depends on how you count:

    * Blank lines, comments...
    * We have another 1697 lines of tests.
    * We've factored out the module HTML::Template so that it sits in its
    own project, but those 500 lines of code could still be considered to
    be part of November, since they're run when November is.

    Depending on what you mean by significant, I'd also like to direct
    your attention towards SVG::Plot, proto, Gamebase, CSV, Druid, Form,
    HTTP::Daemon, Perl6::SQLite and Web.pm. All of those can be downloaded
    via proto.
    Anything else I should add, change or remove? I'm especially interested
    in verifyable metrics showing effort, progress, or use. Ideally graphical.
    Any interesting nuggets that fit with the theme will be most welcome.
    Moritz++ and I were talking about making a graph showing the increase
    of Perl 6 projects lately. Proto's project.list contains all the
    pertinent history, so half an hour with git-log and SVG::Plot ought to
    be able to produce something nice. If no-one else takes that as a
    hint, I might look at it soonish. :)

    // Carl
  • Moritz Lenz at Sep 14, 2009 at 10:07 pm

    Carl Mäsak wrote:
    Tim (>):
    Anything else I should add, change or remove? I'm especially interested
    in verifyable metrics showing effort, progress, or use. Ideally graphical.
    Any interesting nuggets that fit with the theme will be most welcome.
    Moritz++ and I were talking about making a graph showing the increase
    of Perl 6 projects lately. Proto's project.list contains all the
    pertinent history, so half an hour with git-log and SVG::Plot ought to
    be able to produce something nice. If no-one else takes that as a
    hint, I might look at it soonish. :)
    I know produced this plot, attached is a .png, the perl script that
    generates the data file and gnuplot file which turns that into a .png.

    I'll also look into putting that plot up on rakudo.de and updating it by
    cron job regularly.

    Cheers,
    Moritz
  • Raphael Descamps at Sep 14, 2009 at 7:19 pm
    A few other interesting metrics could be for example:

    * Work done on the Specification (Synopses):
    svn log docs/Perl6/Spec/

    * TimToady hacking ;)
    svn log src/perl6/
    svn log src/perl6/STD.pm

    * Work done on the Official Testsuite:
    svn log t/spec/

    * Work done on the Testsuite:
    svn log t/
    (It's interresting to compare it with the developement of the
    specification as the correlation are obvious and it also show the Pugs
    contribution)

    Please note that the parrot commit curve seems to have slow down a
    little lately...

    It's because the parrot HLL languages have left the nest :)
    page 80 - graph of parrot commits and releases
    I don't have a url for that graph. Do you?
    Is it maintained? Can anyone update it for me?
    In the Pugs Repository there is the 4 years old util/svnlog2graph.pl,
    but beware because it is buggy and not delivering correct results:
    (the dayify function and developers counting are both buggy...)

    On the old wiki there is a somewhat newer Version of this file as
    attachment but it has the same bugs:
    http://www.perlfoundation.org/parrot/index.cgi?search_term=svnlog2graph.pl&action=search

    An other old file delivering some statistik is parrot_dev_stat.pl:
    http://www.perlfoundation.org/parrot/index.cgi?search_term=parrot_dev_stat.pl&action=search

    (The parrot repository have moved but otherwise it seems to works, I
    don't know if the results delivered are accurate)

    Here a proposed fix for the version of svnlog2graph.pl found in the pugs
    repository:
    Index: util/svnlog2graph.pl
    ===================================================================
    --- util/svnlog2graph.pl (Revision 28206)
    +++ util/svnlog2graph.pl (Arbeitskopie)
    @@ -1,7 +1,7 @@
    #!/usr/bin/perl
    # Creates a statistic of Pugs' development.
    -# Usage: svn log | util/svnlog2graph.pl > /tmp/graph.png --or
    -# svn log > /tmp/log; util/svnlog2graph /tmp/log
    /tmp/graph.png
    +# Usage: LANG=C svn log | util/svnlog2graph.pl > /tmp/graph.png --or
    +# LANG=C svn log > /tmp/log; util/svnlog2graph /tmp/log
    /tmp/graph.png
    use warnings;
    use strict;
    @@ -23,10 +23,12 @@
    INFO

    # Read the logfile
    -while(<>) {
    +my @lines = reverse <>;
    +foreach my $line (@lines) {
    +#while(<>) {
    # Only process headlines
    - next unless m/^r/ and m/lines?$/ and m/\|/;
    - my ($dev, $date) = (split / \| /)[1, 2];
    + next unless $line =~ m/^r/ and $line =~ m/lines?$/ and $line =~
    m/\|/;
    + my ($dev, $date) = (split / \| /, $line)[1, 2];
    $date =~ s/ [+-]\d+ \(.*$//;

    # Example: $date is now "2005-02-06 17:52:06"
    @@ -36,10 +38,6 @@
    $num_commits++;
    }

    -# $commits[0] should be first commit, not last
    -@commits = reverse @commits;
    -@developers = reverse @developers;
    -
    # Collect commits in days
    # E.g. $commits_till_day[42] = 1500 (1500 commits from day 1 to day 42)
    my @commits_till_day = dayify(@commits);
    @@ -52,17 +50,22 @@
    # Create the graph.
    my $graph = GD::Graph::lines->new(500, 350);
    $graph->set(
    - title => "Pugs development",
    + title => "Perl 6 development",
    x_label => "Days",
    - y_label => "Commits/Developers",
    - x_label_skip => 10,
    - y_max_value => (int(@commits / 500) + 1) * 500,
    + two_axes => 1,
    + use_axis => [1,2],
    + y1_label => "Commits",
    + y2_label => "Developers",
    + x_label_skip => 365,
    + logo => "misc/camelia.jpg",
    + logo_resize => 0.1,
    + logo_position => "UL",
    ) or die $graph->error;

    my @data = (
    [ 0..@commits_till_day ], # Day#
    [ 0, @commits_till_day ], # Commits
    - [ 0, map { 50 * $_ } @devs_till_day ], # Developers (scaled)
    + [ 0, @devs_till_day ], # Developers
    );

    my $gd = $graph->plot(\@data) or die $graph->error;
    @@ -80,9 +83,8 @@
    if($cur_day != $#till_day) {
    push @till_day, $till_day[-1] || 0
    while $#till_day < $cur_day;
    - } else {
    - $till_day[-1]++;
    }
    + $till_day[-1]++;
    }

    return @till_day;
  • Nathan Gray at Sep 15, 2009 at 4:15 pm

    On Mon, Sep 14, 2009 at 12:15:05PM +0100, Tim Bunce wrote:
    You can find my current draft at http://files.me.com/tim.bunce/65oikg (2.3MB PDF)
    page 73 - Haskell should be spelled with two Ls

    -kolibrie
  • Tim Bunce at Sep 15, 2009 at 8:54 pm

    On Tue, Sep 15, 2009 at 12:15:10PM -0400, Nathan Gray wrote:
    On Mon, Sep 14, 2009 at 12:15:05PM +0100, Tim Bunce wrote:
    You can find my current draft at http://files.me.com/tim.bunce/65oikg (2.3MB PDF)
    page 73 - Haskell should be spelled with two Ls
    Thank you! I kept wondering if that was spelt right but never got round
    to checking. (The Mac's spell checker wan't to change it to Hassle :)

    Tim.
  • Tim Bunce at Sep 25, 2009 at 9:48 am
    I gave the talk at OSSBarcamp in Dublin last weekend and it went well.
    My sincere thanks to everyone who contributed.

    The slides are available at:

    http://www.slideshare.net/Tim.Bunce/perl-myths-200909

    The graphs and stats charting the continuing growth of perl and the perl
    community were surprising (and delighting) even to me.

    The presentation was even featured on the slideshare.net home page for a
    while. Yeah!

    I'll be giving the talk again at HighLoad++ in Moscow in a couple of
    weeks time, and possibly again at IPW09 in Pisa later in October (though
    it's not been scheduled yet). So I'd be grateful for any feedback on
    the talk. Corrections, improvements, extra data etc.

    Thanks again!

    Tim.

    p.s. I've already fixed the suprious reference to CPANTS.

Related Discussions

Discussion Navigation
viewthread | post