<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>The Perl Foundation</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/" />
    <link rel="self" type="application/atom+xml" href="http://news.perlfoundation.org/atom.xml" />
    <id>tag:news.perlfoundation.org,2009-02-06://18</id>
    <updated>2010-02-09T01:39:16Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.33-en</generator>

<entry>
    <title>YAPC::NA 2010 Update</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/02/yapcna_2010_update.html" />
    <id>tag:news.perlfoundation.org,2010://18.2538</id>

    <published>2010-02-09T01:33:28Z</published>
    <updated>2010-02-09T01:39:16Z</updated>

    <summary>The YAPC::NA 2010 website has been up for a while, but it is now officially integrated with Act. Be sure to visit soon, create an account if you don&apos;t already have one, and start getting ready for the conference. Remember that the conference is June 21st through 23rd 2010 at Ohio State University. Registration will be $100 ($90 early-bird), which day-passes available....</summary>
    <author>
        <name>Josh McAdams</name>
        <uri>http://www.perlcast.com</uri>
    </author>
    
        <category term="Conferences" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="ohiostateuniversity" label="Ohio State University" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapc" label="YAPC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapc" label="yapc" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapcconferences" label="yapc conferences" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapcna" label="yapc-na" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapc2010" label="yapc2010" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapcna" label="YAPC::NA" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<p>The <a href="http://conferences.mongueurs.net/yn2010/"><span class="caps">YAPC</span>::NA 2010</a> website has been up for a while, but it is now officially integrated with <a href="http://act.mongueurs.net/">Act</a>. Be sure to visit soon, create an account if you don't already have one, and start getting ready for the conference.</p>

<p>Remember that the conference is June 21st through 23rd 2010 at Ohio State University. Registration will be $100 ($90 early-bird), which day-passes available.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Grant Proposal: Fixing Perl5 Core Bugs</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/02/grant_proposal_fixing_perl5_co.html" />
    <id>tag:news.perlfoundation.org,2010://18.2532</id>

    <published>2010-02-07T15:39:23Z</published>
    <updated>2010-02-08T00:10:12Z</updated>

    <summary>David Mitchell has submitted a grant proposal, which if accepted would make use of a portion of the funding generously provided to TPF by Booking.com. Before the Board votes on this proposal we would like to get feedback and endorsements from the Perl community. Please leave feedback in the comments or send email with your comments to karen at perlfoundation.org. Grant Title: Fixing perl5 core bugs Name: David Mitchell Amount Requested: $25,000 Synopsis Recently, booking.com donated $50K for the &quot;further...</summary>
    <author>
        <name>Karen</name>
        <uri>http://martian.org/karen</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<p>David Mitchell has submitted a grant proposal, which if accepted would make use of a portion of the funding generously provided to <span class="caps">TPF </span>by <a href="http://www.booking.com/">Booking.com</a>. </p>

<p>Before the Board votes on this proposal we would like to get feedback and endorsements from the Perl community.  Please leave feedback in the comments or send email with your comments to karen at perlfoundation.org.</p>

<p><b>Grant Title</b>: Fixing perl5 core bugs</p>

<p><b>Name</b>: David Mitchell</p>

<p><b>Amount Requested</b>: $25,000</p>

<p><b>Synopsis</b></p>

<p>Recently, booking.com donated $50K for the "further development and<br />
maintenance of the Perl programming language". I would like part of that<br />
money to to be used to fund me for approximately six months to devote 50%<br />
of my time fixing "hard" core perl5 bugs.</p>

<p><b>Benefits to the Perl Community</b></p>

<p>There are currently approximately 1200 open and 300 new bug reports in the<br />
perl5 bug queue. Although some of these are of the "5.003_08 does not<br />
build on platform X" variety, many are current: for example, almost 500 of<br />
them were created after the release of 5.10.0. As the perl core has become<br />
more and more gnarly, and the pool of experienced but active core hackers<br />
has declined, these bugs are just piling up and not getting fixed,<br />
especially the hard ones. With this funding, I would would be able to<br />
devote serious time and effort to making a dent in this queue.</p>

<p>Note that unlike many large open source projects, perl has no paid<br />
developers devoted to bug fixing.</p>

<p><b>Deliverables</b></p>

<p>Unusually for a <span class="caps">TPF </span>grant, there are not clear-cut deliverables for this<br />
project. I intend to devote 500 hours of my time over the next six months<br />
fixing perl core bugs. The net result will be a list of bug numbers that<br />
have been diagnosed, and (hopefully) fixed. Because it's impossible to<br />
predict in advance how difficult a bug is going to be to diagnose and fix<br />
(or indeed whether it is even fixable), I can't commit in advance to a<br />
fixed list of bugs that I will fix over the course of the grant. Nor is it<br />
realistic to have a bounty per fixed bug; I would end up not getting<br />
rewarded for time spent on difficult bugs, and conversely I would have a<br />
strong incentive to cherry-pick easy bugs, defeating the purpose of the<br />
grant.</p>

<p>Therefore, monitoring of my progress will become important (see below).</p>

<p><b>Project Details</b></p>

<p>I think this has been fully covered above.</p>

<p><b>Inch-stones</b></p>

<p>Note that due to the length and scale of this project, it is suggested<br />
that there be two project managers, who can spread the monitoring load<br />
between them as they see fit.</p>

<p>Since this project is heavily based on hours worked and the monitoring<br />
thereof, I would post a weekly summary on the p5p mailing list which<br />
details, for each bug worked on that week, how many hours were spent on<br />
diagnosis and fixes, plus any bug status changes.  This frequent feedback<br />
would allow the grant managers and active core developers (who will be<br />
aware of any recent commits and other activity of mine) to observe whether<br />
my claimed hours bear any relation to actual activity and results, and<br />
thus allow early flagging of any concerns.</p>

<p>Missing two weekly reports in a row without prior notice would be grounds<br />
for terminating the project.</p>

<p>Once per calendar month I would claim an amount equal to $50 x hours worked.<br />
I would issue a report similar to the weekly ones, but summarizing the<br />
whole month. The report would need to be signed off by one of the<br />
project managers before I get paid. Note that this means I am paid<br />
entirely in arrears.</p>

<p>At the time of my final claim, I would also produce a report summarising<br />
the activity across the whole project period.</p>

<p>Also, (the "nuclear option"), I suggest that either of the project managers<br />
be allowed, at any time, to inform the board that in their opinion the<br />
project is failing badly, and that the <span class="caps">TPF </span>board may then, after allowing<br />
me to present my side of things, to vote whether to terminate the project<br />
at that point (i.e. to not pay me for any hours worked after I was first<br />
informed that a manager had "raised the alarm").</p>

<p>To ensure that at there are at least some visible results for the hours<br />
spent, I would be required have closed at least one bug per 20 hours<br />
before being able to claim money for those hours. (I would hope to close<br />
more bugs than that, but by setting a low baseline, I'm not tying my<br />
hands, while still allowing <span class="caps">TPF </span>to have something visible for publicity<br />
purposes during the interim.)</p>

<p><b>Project Schedule</b></p>

<p>I am available to start work on this project immediately.</p>

<p>The project is expected to take six months. I am self-employed, which<br />
allows me a good deal of flexibility. By promising approximately 50% of my<br />
time, this gives me the ability to continue with my existing commitments<br />
to other clients, while deferring seeking new clients. As such, the weekly<br />
hours I devote to perl are likely to be highly variable, but hopefully<br />
averaging out to about 20 hours per week. If for some reason I find that I<br />
have spent less than 500 hours at the end of the six months, then I will<br />
continue the project until until the 500 hours been spent, with the<br />
proviso that that the <span class="caps">TPF </span>board are free to terminate the project at any<br />
time after the six months. Conversely, if I manage to devote more than 20<br />
hours per week, then my monthly payments will be accordingly larger, and<br />
the project will terminate early (once the 500 hours are spent).</p>

<p>Note that it is currently my intention that the after six months I will<br />
apply for a further $25K extension, although there is no obligation for me<br />
to do so, nor for <span class="caps">TPF </span>to approve it.</p>

<p><b>Bio</b></p>

<p>I'm a freelance <span class="caps">UNIX </span>sysadmin and programmer living in the <span class="caps">UK.</span> I have been<br />
using perl since 1993, and have been fixing core perl 5 bugs since 2001.<br />
I have had commit rights since 2003 and I was pumpking for the 5.10.1 perl<br />
release.</p>

<p>In short, I am one of only a handful of active people who understand large<br />
parts of the perl internals and who can thus fix "hard" bugs.</p>]]>
        
    </content>
</entry>

<entry>
    <title>2010Q1 Grant Proposals</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/02/2010q1_grant_proposals.html" />
    <id>tag:news.perlfoundation.org,2010://18.2520</id>

    <published>2010-02-06T17:00:01Z</published>
    <updated>2010-02-06T17:04:04Z</updated>

    <summary>For this quarter TPF has three grant proposals that were not funded in 2009Q3 round and that will be discussed and voted again in this round, and four new grant proposals: Creating a ctypes-Like Interface for Perl to External Subroutines by Shlomi Fish Enhancing CPANHQ by Shlomi Fish perl core memory improvements by Jim Cromie Enhancing Perl 6 Pattern Matching by Morris M. Siegel Perl Compiler by Reini urban CPAN Reviews by Alexandr Ciornii Improve Dist::Zilla by Ricardo Signes Please...</summary>
    <author>
        <name>Alberto Simões</name>
        <uri>http://null.perl-hackers.net/</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gp2010q1" label="GP2010Q1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<p>For this quarter <span class="caps">TPF </span>has three grant proposals that were not funded in 2009Q3 round and that will be discussed and voted again in this round, and four new grant proposals:</p>


<ul>
<li><a href="http://news.perlfoundation.org/2009/08/2009q3_grant_proposal_creating.html">Creating a ctypes-Like Interface for Perl to External Subroutines</a> by <em>Shlomi Fish</em></li>
<li><a href="http://news.perlfoundation.org/2009/08/2009q3_grant_proposal_enhancin.html">Enhancing <span class="caps">CPANHQ</span></a> by <em>Shlomi Fish</em></li>
<li><a href="http://news.perlfoundation.org/2010/02/2010q1_grant_proposal_perl_cor.html">perl core memory improvements</a> by <em>Jim Cromie</em></li>
<li><a href="http://news.perlfoundation.org/2010/02/2010_grant_proposal_enhancing.html">Enhancing Perl 6 Pattern Matching</a> by <em>Morris M. Siegel</em></li>
<li><a href="http://news.perlfoundation.org/2010/02/2010_grant_proposal_perl_compi.html">Perl Compiler</a> by <em>Reini urban</em></li>
<li><a href="http://news.perlfoundation.org/2010/02/2010_grant_proposal_cpan_revie.html"><span class="caps">CPAN</span> Reviews</a> by <em>Alexandr Ciornii</em></li>
<li><a href="http://news.perlfoundation.org/2010/02/2010_grant_proposal_improve_di.html">Improve Dist::Zilla</a> by <em>Ricardo Signes</em></li>
</ul>



<p>Please take some time to comment on these proposals. <span class="caps">TPF</span> Grants Committee is very interested in community feedback on these projects relevance. Please be polite.</p>]]>
        
    </content>
</entry>

<entry>
    <title>2010 Grant Proposal: Perl Compiler</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/02/2010_grant_proposal_perl_compi.html" />
    <id>tag:news.perlfoundation.org,2010://18.2530</id>

    <published>2010-02-06T17:00:00Z</published>
    <updated>2010-02-06T16:58:46Z</updated>

    <summary><![CDATA[Perl Compiler Name: Reini urban Email: [hidden email] Duration: Until March 2011 Amount Requested: &euro; $1000 (just for motivation) Synopsis Fix most of the remaining perl compiler, i.e. B::C, B::CC, B::Bytecode bugs. Improve documentation a bit. Maintain the planned compiler.perl.org site....]]></summary>
    <author>
        <name>Alberto Simões</name>
        <uri>http://null.perl-hackers.net/</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gp2010q1" label="GP2010Q1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<h1>Perl Compiler</h1>
<dl>
<dt><strong>Name: Reini urban</strong></dt>

<dt><strong>Email: [hidden email]</strong></dt>

<dt><strong>Duration: Until March 2011</strong></dt>

<dt><strong>Amount Requested: &euro; $1000 <em>(just for motivation)</em></strong></dt>

</dl>
<p>
</p>
<h2>Synopsis</h2>
<p>Fix most of the remaining perl compiler, i.e. B::C, B::CC, B::Bytecode bugs.</p>
<p>Improve documentation a bit.</p>
<p>Maintain the planned <strong>compiler.perl.org</strong> site.</p>
]]>
        <![CDATA[<h2>Benefits to the Perl Community</h2>
<p>A working compiler.</p>
<p>Faster startup time.</p>
<p>Optionally faster run-time if the B::CC optimizations work out as
expected.</p>
<p>parrot? I've worked with them. I gave up. Better a half-ass perl5
compiler now, than the ongoing ... with parrot/perl6.</p>
<p>
</p>
<h2>Deliverables</h2>
<p>Extend the testsuite reasonably - but less is more. The full author
tests for all tested perls on all platforms needs 2 days.</p>
<p>Fix the existing SKIPs and TODOs</p>
<p>Testsuite passing on my main platforms cygwin, MSWin32, debian5, 
centos5, freebsd7, solaris10.</p>
<p>compiler.perl.org</p>
<p>More fun, less headaches</p>
<p>
</p>
<h2>Inch-stones</h2>
<p>I don't think I need this.</p>
<p>See below at <a href="#project_schedule">Project Schedule</a>. From now until end of March 2011,
the next surf-season.</p>
<p>
</p>
<h2>Project Details</h2>
<p>I successfully ported the abandoned compiler to 5.10 and blead and
fixed most of the old bugs, so that the tests pass now on most
platforms.</p>
<p>But there's more todo. Finding bugs cannot be detailled here. In the
core suite are some, in the top100 modules are some, the community
will come up with more. Some are known, some not yet. So far all
found bugs could be fixed within 1-2 days, sometimes they are just
hard to catch.</p>
<ol>
<li><strong>Adjust the perl core suite and find limitations (runperl issues) vs bugs</strong>

</li>
<li><strong>Check modules</strong>

</li>
<li><strong>Check user reports</strong>

</li>
<li><strong>Check weird platforms, compilers, programming tricks.</strong>

</li>
</ol>
<p>
</p>
<h3>CC bugs</h3>
<p>Well, some bugs are run-time limitations which will require run-time
solutions. The sortcv bug [CPAN #53536] is easily understood but hard
to fix. Will need at least 2 days concentration on it.</p>
<p>
</p>
<h3>Planned CC Optimizations</h3>
<p>Static initialization of readonly data: SVs, AVs, HVs.</p>
<p>-fcog for strings (copy on grow by using a custom destructor)</p>
<p>Fill in missing Opcodes flags for most optimisable ops. Maybe even automatically.</p>
<p>Check possible type declarations with Devel::TypeCheck, MooseX::Types,
attributes and such.</p>
<p>I've finished 50% of Malcom's Todo during the winter surf-holidays,
and fixed 90% of Malcom bugs in the last year so I'm confident.</p>
<p>I've already got a sponsor for my conference travel expenses. A tip:
They could be persuaded to sponsor this grant also :) <em>(cPanel)</em></p>
<p>
</p>
<h2>Project Schedule</h2>
<p>During summer-time I prefer surfing over coding to keep emotional
stability in the coorporate environment. Winter 2009-2010 was very
productive, because I got a kick by cPanel who needed it.</p>
<p>For the next coding season I might need further kicks, a mini-grant
like this might be enough.</p>
<p>2010: Find and fix all remaining bugs. I suspect there are still 5-6
major ones.</p>
<p>2010: Faster testsuite. Now: 8 min user - 40min author - 2 days all perls + plats.</p>
<p>Until March 2011: CC type and sub optimisations</p>
<p>Later (not part of this proposal)</p>
<p>Until 2012: CC unrolling =&gt; jit within perl (perl -j)</p>
<p>
</p>
<h2>Bio</h2>
<p>Reini Urban, living in Graz, Austria. Born 1963, pretty old, yes.</p>
<p>Born Lisper, but I've been writing perl programs since 1992 and
released my first module to CPAN in 1995, the perl5.hlp file for
Windows, created by some pod2rtf.pl. cygwin maintainer (perl, parrot,
postgresql, clisp, ...) for a couple of years, and several B::*
modules.</p>
<p>I work for a large HW+SW company (&gt;2000 developers), 8-16 o'clock.</p>
<p>Since nobody is able to help me with the compiler it looks like I'm
alone. Hopefully this will change! I even had to write my own
Debugger. Yes, I'm aware of trucks. Surfing is not risky at
all. Bycycling is more dangerous.</p>
]]>
    </content>
</entry>

<entry>
    <title>2010 Grant Proposal: CPAN Reviews</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/02/2010_grant_proposal_cpan_revie.html" />
    <id>tag:news.perlfoundation.org,2010://18.2528</id>

    <published>2010-02-06T17:00:00Z</published>
    <updated>2010-02-06T16:55:05Z</updated>

    <summary>CPAN reviews Name: Alexandr Ciornii (&apos;chorny&apos; on IRC and PAUSE). Email: [hidden email] (backup) [hidden email] Amount Requested: $1200 Synopsis Many CPAN modules have good documentation, many have bad documentation. But there is no such thing as enough documentation. There are many good reviews, examples, descriptions outside CPAN. I propose to collect them and cataloguize. I want to make a site with links to reviews of CPAN modules. In general this site should be community-moderated, community-edited and allow users adding...</summary>
    <author>
        <name>Alberto Simões</name>
        <uri>http://null.perl-hackers.net/</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gp2010q1" label="GP2010Q1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<h1>CPAN reviews</h1>
<dl>
<dt><strong>Name:</strong></dt>

<dd>
<p>Alexandr Ciornii ('chorny' on IRC and PAUSE).</p>
</dd>
<dt><strong>Email:</strong></dt>

<dd>
<p>[hidden email] (backup) [hidden email]</p>
</dd>
<dt><strong>Amount Requested:</strong></dt>

<dd>
<p>$1200</p>
</dd>
</dl>
<p>
</p>
<h2>Synopsis</h2>
<p>Many CPAN modules have good documentation, many have bad documentation. But there is no such
thing as enough documentation. There are many good reviews, examples, descriptions outside CPAN.
I propose to collect them and cataloguize.</p>
<p>I want to make a site with links to reviews of CPAN modules. In general this site should be
community-moderated, community-edited and allow users adding links to do minimal work first and
enhance later, i.e. use this site as a bookmarking service.</p>
]]>
        <![CDATA[<h2>Benefits to the Perl Community</h2>
<p>Simplify learning CPAN modules for novices and mature users - no need to scan google
search results, and be able to see is it worth reading review or not, by opinion of others.</p>
<p>Ability to store list of useful links and share it with others.</p>
<p>Possibility of integrating list of links into author own page.</p>
<p>
</p>
<h3>Additional benefits:</h3>
<p>A ready code of site to copy and use for similar purposes.</p>
<p>Support for OpenID/Bitcard in CGI::Application.</p>
<p>
</p>
<h2>Deliverables</h2>
<p>Code of web app (under open license)</p>
<p>Working site</p>
<p>CPAN module to support for OpenID/Bitcard in CGI::Application.</p>
<p>After release I will maintain and enhance code and site further.</p>
<p>
</p>
<h2>Project Details</h2>
<p>I plan to develop it using CGI::Application. I will need to develop
CGI::Application::Plugin::Authentication plugin for OpenID/Bitcard.</p>
<p>Users will be able to vote up/down for link, report spam or dupe link, comment.
Every link will have title and description (only one from them will be mandatory), language,
date (original), tags, list of modules described in review.
After adding link, some info will be fetched automatically, so user will need to edit it.</p>
<p>No users registration at all, OpenID/Bitcard only.</p>
<p>There would be ready JavaScript widgets for other sites:</p>
<ol>
<li><strong>To display list of links for a module (sorted by popularity).</strong>

</li>
<li><strong>To display number of links for a module.</strong>

</li>
</ol>
<p>They would be customizable, by language of links or language list can be received from HTTP
headers. Also JSON output should be available.</p>
<p>Site would be able to get list of links from RSS feeds by tag (I propose &quot;cpanreview&quot;,
but this will be discussed with Perl community). Also tags like &quot;cpanreview-Module::Name&quot; or
&quot;cpanreview-Dist-Name&quot; would add association with module. Unassociated links would be displayed
separately on special page for anyone who would like to review some links.</p>
<p>It would be possible for any user with sufficient number of upvotes (for ex. 2) to
modify title/description/module_list of link. Number of votes should be customizable for every
operation.</p>
<p>Later I want to ask owners of <a href="http://search.cpan.org">http://search.cpan.org</a> and <a href="http://kobesearch.cpan.org/">http://kobesearch.cpan.org/</a> 
to include links to corresponding pages on modules pages.</p>
<p>Github will be used for hosting code.</p>
<p>
</p>
<h2>Inch-stones</h2>
<ol>
<li><strong>OpenID/Bitcard plugin</strong>

</li>
<li><strong>Adding links</strong>

</li>
<li><strong>Automating fetching data about link added by user (title, modules mentioned)</strong>

</li>
<li><strong>Voting/spam/dupe</strong>

</li>
<li><strong>Comment system</strong>

</li>
<li><strong>Community editing</strong>

</li>
<li><strong>JavaScript output, export to JSON</strong>

</li>
<li><strong>RSS fetching</strong>

</li>
<li><strong>Refactoring based on opinion of Perl community on real version.</strong>

</li>
</ol>
<p>
</p>
<h2>Project Schedule</h2>
<p>I will begin work immediately, with 10-15 hours a week. First version with reduced
capabilities should be available in 1.5 month, full version in 3 month.</p>
<p>
</p>
<h2>Bio</h2>
<p>I'm Perl programmer from Moldova (Europe). I've working in Perl from 2000, joined Strawberry Perl
project in 2006. I'm active memeber of Perl community, maintain 18 modules on CPAN and several
more are planned for release next month. I have big number of patches for Perl modules, including
CGI::Application plugins, ExtUtils::MakeMaker, Module::Install.</p>

]]>
    </content>
</entry>

<entry>
    <title>2010 Grant Proposal: Improve Dist::Zilla</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/02/2010_grant_proposal_improve_di.html" />
    <id>tag:news.perlfoundation.org,2010://18.2526</id>

    <published>2010-02-06T17:00:00Z</published>
    <updated>2010-02-06T16:56:10Z</updated>

    <summary>Improve Dist::Zilla&apos;s Tests, Documentation, and Structure Name: Ricardo Signes Email: rjbs@cpan.org Amount Requested: $2000 Synopsis Dist::Zilla is a tool that helps Perl programmers build distributions for the CPAN. It eliminates boilerplate, handles packaging, interfaces with changelogs and version control, improves prerequisite management, and generally makes it easier to be a CPAN author. This grant will fund work to make it easier for new users to adopt Dist::Zilla and for Dist::Zilla itself to be more easily extended, maintained, and understood....</summary>
    <author>
        <name>Alberto Simões</name>
        <uri>http://null.perl-hackers.net/</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gp2010q1" label="GP2010Q1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<h1>Improve Dist::Zilla's Tests, Documentation, and Structure</h1>
<dl>
<dt><strong>Name:</strong></dt>

<dd>
<p>Ricardo Signes</p>
</dd>
<dt><strong>Email:</strong></dt>

<dd>
<p><code>rjbs@cpan.org</code></p>
</dd>
<dt><strong>Amount Requested:</strong></dt>

<dd>
<p>$2000</p>
</dd>
</dl>
<p>
</p>
<h2>Synopsis</h2>
<p>Dist::Zilla is a tool that helps Perl programmers build distributions for the
CPAN.  It eliminates boilerplate, handles packaging, interfaces with changelogs
and version control, improves prerequisite management, and generally makes it
easier to be a CPAN author.  This grant will fund work to make it easier for
new users to adopt Dist::Zilla and for Dist::Zilla itself to be more easily
extended, maintained, and understood.</p>
]]>
        <![CDATA[<h2>Benefits to the Perl Community</h2>
<p>Dist::Zilla makes the CPAN better.  More code can be released because the work
required to do so is greatly lessened.  The code that is released can be of a
higher quality because more time can be spent on the code rather than the
packaging.  It can also improve the lives of CPAN authors in general: if you
don't want to spend the time that Dist::Zilla saves you on writing more code,
you can spend it on anything else you like: skiing, sleeping, or eating ice
cream.</p>
<p>Dist::Zilla has already been adopted by dozens of authors and used to release
hundreds of distributions.</p>
<p>
</p>
<h2>Deliverables</h2>
<p>Each deliverable below is also an &quot;inch-stone.&quot;</p>
<p>
</p>
<h3>proper logging facility</h3>
<p>Right now, Dist::Zilla logs with &quot;print.&quot;  It has always been meant to use
Log::Dispatch (via Log::Dispatchouli) but these changes need to be made,
presumably before testing begins, so that the testing system can incorporate
logged data.</p>
<p>Estimated time: one half day</p>
<p>
</p>
<h3>reusable testing tools</h3>
<p>Dist::Zilla and most of its plugins (both core and otherwise) are not well
tested, because testing it is tedious.  This could be greatly improved by
writing a few test classes or mock plugins.</p>
<p>Estimated time: two days</p>
<p>
</p>
<h3>extensive testing of the core</h3>
<p>The reusable test tools will be put to use (and thus proven useful) when tests
are written for all the core functionality.  These tests may not be exhaustive,
but they will be extensive and will be written with the goal of making
contributors feel that they can trust the test suite to catch most regressions.</p>
<p>Estimated time: four days</p>
<p>
</p>
<h3>simplification of the command line tool's code</h3>
<p>Right now, a number of hookable events are defined only in the code
implementing the <em class="file">dzil</em> command, which too tightly couples the main class
behavior to the command line tool.  As much as is possible, the App::Cmd-based
code for <em class="file">dzil</em> will be turned into a very thin wrapper around Dist::Zilla's
methods.</p>
<p>Estimated time: one half day</p>
<p>
</p>
<h3>event structure for distribution creation</h3>
<p>In other words, plugins will be able to attach more behavior to distribution
creation, to create new source code repositories, start files, and so on.</p>
<p>Estimated time: one half day</p>
<p>
</p>
<h3>core set of well-known FileFinder plugins</h3>
<p>The FileFinder plugin role allows other plugins to operate on dynamically
located sets of files like &quot;all Perl modules that will be installed&quot; or &quot;all
files marked executable.&quot;  At present, there are no predefined FileFinder
plugins with Dist::Zilla.  By providing a few core finders with well-known
names, it is easier for new third-party plugins to behave more like core
plugins.</p>
<p>This requires writing the finders, testing them, and updating existing plugins
to use them.  It also must be possible for a user to override the behavior at
the well-defined name.</p>
<p>Estimated time; one day</p>
<p>
</p>
<h3>improved prerequisite handling</h3>
<p>This will include improved methods for specifying versions required by allowing
shorthand identifiers for the latest version of a prerequisite, or the version
with which the author has tested.</p>
<p>(If the META.json 2.0 specification is sufficiently finalized by the time this
work is approved, the core Dist::Zilla prerequisite system will be improved to
match it.  I am familiar with the proposed changes to META and have a plan for
how to support them.)</p>
<p>Estimated time: one day</p>
<p>
</p>
<h3>improvements for authoring distributions containing XS</h3>
<p>I do not write XS code or C, but a number of users of Dist::Zilla do and have
asked whether I can improve Dist::Zilla's ability to accomodate them.  Florian
Ragwitz has given me some ideas on how to do this, and I would like to carry
out his plan so that Dist::Zilla does not discriminate against XS authors.</p>
<p>Estimated time: one half day</p>
<p>
</p>
<h3>documentation: improved new user's guide</h3>
<p>This will extend and supplement the existing Dist::Zila::Tutorial, starting
from the position, &quot;So you want to release code to the CPAN...&quot;  There will be
a Pod version shipped with Dist::Zilla, but also an HTML document and slidecast
or screencast to more clearly walk new users through the process.</p>
<p>Estimated time: four days</p>
<p>
</p>
<h2>Project Schedule</h2>
<p>I can begin work immediately upon receipt of first-third payment.  I predict
about ten or twelve Saturdays of work.  I believe that work can be completed
this quarter.</p>
<p>
</p>
<h2>Bio</h2>
<p>I'm RJBS on the CPAN.  I have released or adopted hundreds of modules, and
Dist::Zilla is the result of my own desire for a tool to make maintenance of
CPAN distributions simpler.  My previous TPF grant-supported work on
Pod-munging tools was also in furtherance of making it easier to maintain CPAN
distributions.  That work was completed without problems and the released code
has been succesfully adopted by a number of CPAN authors.</p>

]]>
    </content>
</entry>

<entry>
    <title>2010 Grant Proposal: Enhancing Perl 6 Pattern Matching</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/02/2010_grant_proposal_enhancing.html" />
    <id>tag:news.perlfoundation.org,2010://18.2524</id>

    <published>2010-02-06T17:00:00Z</published>
    <updated>2010-02-06T16:51:13Z</updated>

    <summary>Enhancing Perl 6 Pattern Matching with Ideas from Snobol4 and Other Sources Name: Morris M. Siegel, Ph.D. Email: [hidden email] Amount Requested: $3000 (negotiable) The substance of my proposed alternative pattern-matching specification has already been essentially worked out as a self-funded research project, as it were. I felt this project was of such importance that it was worthwhile giving myself a sort of sabbatical to develop it. It has taken rather longer than I originally anticipated, and my personal funds...</summary>
    <author>
        <name>Alberto Simões</name>
        <uri>http://null.perl-hackers.net/</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gp2010q1" label="GP2010Q1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<h1>Enhancing Perl 6 Pattern Matching with Ideas from Snobol4 and Other Sources</h1>
<dl>
<dt><strong>Name:</strong></dt>

<dd>
<p>Morris M. Siegel, Ph.D.</p>
</dd>
<dt><strong>Email:</strong></dt>

<dd>
<p>[hidden email]</p>
</dd>
<dt><strong>Amount Requested:</strong></dt>

<dd>
<p>$3000 (negotiable)</p>
<p>The substance of my proposed alternative pattern-matching specification has
already been essentially worked out as a self-funded research project, as it
were.  I felt this project was of such importance that it was worthwhile
giving myself a sort of sabbatical to develop it.  It has taken rather longer
than I originally anticipated, and my personal funds have dropped to an
uncomfortably low level.  I can no longer afford to keep concentrating my
efforts on this project on an unfunded basis.</p>
<p>My grant request is intended to retroactively fund some of my past
development, and as well to enable me to continue focusing my efforts on the
project.  (The main task remaining is to write it up carefully and precisely,
but there are some aspects that still need to be thought out.)  Without a
grant I would have to relegate the project to my limited spare time, and by
the time it would be done it could well be too late for serious consideration.</p>
<p>I selected the figure of $3000 since I understand it is the upper range of
typical Perl Foundation grants.  I think the merits of the project, plus
its time requirement (past and future), would justify a larger sum if the money is
available.  In addition, a larger sum would enable me to spend more time on
fleshing out those ideas that still need to be thought out.</p>
</dd>
</dl>
]]>
        <![CDATA[<h2>Synopsis</h2>
<p>One of the chief reasons for Perl's popularity is its regex pattern-matching
facility; no other part of Perl has been made into a stand-alone package
(PCRE) or borrowed so extensively by other languages.  The very name &quot;Perl&quot;
alludes to the fundamental nature of pattern matching:  the &quot;E&quot; of the acronym
&quot;PERL&quot; stands for &quot;extraction,&quot; which mostly means pattern matching.
Perl 6 pattern matching is substantially more powerful than that of Perl 5.</p>
<p>Snobol4 is arguably the first widely-available language providing a
pattern-matching facility, and despite its age, and despite all the new
features of Perl 6, there are still some aspects in which Snobol4
pattern matching is more powerful than that of Perl 6.</p>
<p>Aside from the above, the current specification for Perl 6 pattern matching,
Synopsis 05 (available as
<a href="http://svn.pugscode.org/pugs/docs/Perl6/Spec/S05-regex.pod">http://svn.pugscode.org/pugs/docs/Perl6/Spec/S05-regex.pod</a>,
<a href="http://perlcabal.org/syn/S05.html">http://perlcabal.org/syn/S05.html</a>, or
<a href="http://perl6.cz/wiki/Synopses/S05">http://perl6.cz/wiki/Synopses/S05</a>),
is quite complicated to learn and remember, as is evident simply by reading
through all of S05.  Moreover, many of its multitudinous capture mechanisms
lead to code which is brittle, hard to read and maintain, and often
non-mnemonic.  These complications and problems do not conform to the
practical usability which is supposed to be a hallmark of Perl (the &quot;P&quot; of the
acronym), and are <em>not</em> a necessary price that must be unfortunately be paid
for the power.</p>
<p>The purpose of this project is to formulate an alternative specification for
Perl 6 pattern matching that is (1) enhanced by ideas inspired by Snobol4
and other sources but adapted to Perl's idiom, (2) simpler to learn and
use, and leading to code which is easier to read and maintain, and (3) at
least as powerful, and arguably more powerful, than the current specification.</p>
<p>
</p>
<h2>Benefits to the Perl Community</h2>
<p>If pattern matching is enhanced as indicated by the preceding paragraph,
then potentially all Perl programmers needing to do non-trivial pattern
matching will benefit.</p>
<p>In addition, the very acceptance of Perl 6 in the wider computing community
could well be facilitated, since I think it quite probable that many would
be put off by the complexity of the current pattern-matching specification.
Along these lines, enhanced pattern matching would be more likely to inspire
the adaptation of PCRE to Perl 6 and similar imitation by other languages, and
thereby benefit not just the Perl community but the entire computing
community.</p>
<p>I am well aware that much work has already been done in the implementation
of the current specification, and that much development has been done based on
the current specification, notably Larry Wall's STD grammar for Perl 6,
and also the grammars for the various Parrot-based languages.  As such,
it is admittedly bold to suggest at this late stage that the specification
be significantly revised.  However, I believe the advantages afforded by the
alternative specification warrant its serious consideration.  (In a
conversation I had once with Larry Wall, he stated that although he does not
agree with all my ideas, he finds it worthwhile to listen to them.)</p>
<p>At YAPC|10 in Pittsburgh, on Jun 24, 2009, I gave a talk entitled 
&quot;Enhancing Perl 6 Pattern-Matching with Ideas from Snobol4&quot;
(<a href="http://yapc10.org/yn2009/talk/1988">http://yapc10.org/yn2009/talk/1988</a>), whereby I intended to present my
ideas to the Perl community and get feedback.
Unfortunately, I did not time my talk well, and by the time I finished
presenting an overview of Snobol4 (to provide background for my ideas)
and a sampling of problems with the current specification (to justify revising
it), there was not enough time left to actually explain the alternative
specification.  Conversations with other YAPC participants did reveal interest
in hearing my ideas.  In particular, in discussions with Patrick Michaud, who
is the chief if not sole implementer of the current specification, he (1)
acknowledged that the core Perl 6 developers realize that S05 is hard to read
(Larry Wall confirmed this), (2) complimented me on my examples illustrating
the brittleness and other problems of the current capture mechanism, and (3)
stated that if an alternative specification were even better than the current
one, he would be happy to implement it.</p>
<p>Technically it would be possible for both the current and the alternative
specifications to coexist in the same implementation, so on-going
Perl 6 development efforts could proceed unimpeded while the alternative
specification was being implemented and refined.  If at some point it were
decided to actually replace the current specification with the alternative
(which is the ultimate intent), I believe the conversion of existing code
should not be too laborious, so the initial release of Perl 6 would not
be unduly delayed.  There is some precedent for this, viz. the two different
threading models of Perl 5.</p>
<p>
</p>
<h2>Deliverables</h2>
<p>This project should initially result in a document published on the Web
presenting (1) an overview of the relevant parts of Snobol4, to help motivate
the Snobol4-inspired features of the alternative specification,
(2) a discussion of problems with the current specification,
and (3) the alternative specification, in fairly complete detail.</p>
<p>After publication, a notice would be emailed to the appropriate mailing lists
(perl6-language, yapc, snobol, perhaps others) informing subscribers of the
existence of the document and inviting feedback.  Based on feedback, the
alternative specification might be revised.  After a few iterations of this,
assuming sufficient interest expressed by the Perl community, the alternative
specification should be stable enough to proceed to implementation and further
refinement as appropriate.</p>
<p>
</p>
<h2>Project Details</h2>
<p>The alternative specification document would assume the reader knows Perl 5
and has read S05 at least cursorily, and would rely on S05 to provide details
on those features common to the alternative and current specifications.
However, the alternative specification has a sufficiently different flavor
from the current one that the document would have to present many ideas from
scratch, so it should be reasonably accessible even to someone whose understands
pattern matching conceptually but is unfamiliar with S05.</p>
<p>It is difficult to go into more detail on the content of the alternative
specification document without summarizing it, which I feel is beyond the
scope of a grant proposal.  The &quot;inch-stones&quot; listed below are far too terse
to give the reader any notion of the content.  However, to provide some sort
of glimpse of the content, we list the following features of Snobol4 pattern
matching that are absent from Perl 6 as it stands now but would be present in
alternative pattern matching:</p>
<dl>
<dt><strong>(A) Compile time vs. build time vs. match time</strong></dt>

<dd>
<p>The pattern structures used in Snobol4 pattern matching are not built at
compile time.  Rather, at run time, a pattern structure is built as a result
of evaluating a pattern-valued expression; once built, this structure can be
used to do pattern matching, either immediately or later on.</p>
<p>As a result of having two distinct run-time operations, pattern building and
pattern matching, the Snobol4 programmer has the ability (1) to chose during
which operation to bind the value of pattern components (e.g. <code>LEN(N)</code> vs.
<code>LEN(*N)</code>), and (2) to define new pattern-matching functions in a convenient
high-level manner, without having to resort to writing macros or low-level
code.</p>
<p>Understanding this three-way distinction among compile time, build time, and
match time is crucial.  On one hand, a careless or novice programmer who
conflates compile time and build time can inadvertently write a program that
inefficiently reconstructs the same pattern numerous times (although to
mitigate this an optimizing compiler can precompute constant patterns or
subpatterns).  On the other hand, this distinction encourages a mind-set and
facilitates a programming style in which the programmer writes pattern-valued
functions to effectively extend the language of pattern-matching expressions,
since the execution of these functions takes place during build time and does
not cost anything at match time.  Writing such pattern-valued functions seems
at least conceptually easier than writing macros, and the ability to do so
enhances the expressiveness of the programming language.</p>
<p>If the equivalent distinction existed in Perl 6, then not only would the
expressiveness of pattern notation be increased, but also some of the
complexity of the core pattern-matching specification could be offloaded to
modules that define pattern-valued functions or methods.</p>
</dd>
<dt><strong>(B) Conditional capture</strong></dt>

<dd>
<p>In the Snobol4 operation of conditional value assignment (binary &quot;<code>.</code>&quot;),
assignment (&quot;capture,&quot; in Perl terminology) takes place only if the value is
captured from a subpattern that is part of an ultimately successful match.
That is, in the semantics of Snobol4 pattern matching, there is a distinct
&quot;conditional&quot; phase following the successful conclusion of a match and
prior to the substitution phase, in which conditional value assignments
(which may include arbitrary side effects) are carried out.  This phase, which
currently has no analogue in Perl whatsoever, enables the Snobol4 programmer
to write patterns that backtrack without having to undo side effects performed
by alternands that initially succeed but are later backtracked out of.
Although unrestricted backtracking can result in unacceptably slow
performance, limited backtracking can be quite efficient, and reworking a
pattern to avoid backtracking entirely can be tedious and result in code that
is less natural.  If Perl 6 had a similar conditional phase, then the
programmer would no longer have to rid his patterns of backtracking in order
to avoid performing inappropriate side effects.  This would clearly facilitate
the task of formulating patterns, especially complex ones.</p>
</dd>
<dt><strong>(C) Miscellaneous primitive patterns</strong></dt>

<dd>
<p>Snobol4 has some useful primitive patterns which cannot easily be emulated
in Perl 6:  <code>TAB</code> and <code>RTAB</code>, which move the cursor to a given position
from the beginning or the end of a string, and (in the Snobol4+ dialect)
<code>ATAB</code>, <code>ARTAB</code>, and <code>LEN</code>, which can move the cursor to the left as part
of normal pattern matching (not as look-behind).  Unlike (A) and (B) above,
these do not reflect a fundamental difference between the Snobol4 and Perl 6
pattern-matching models, and thus could be included (if desired) even into the
current specification.</p>
</dd>
</dl>
<p>A significant part of the challenge of adapting these features for inclusion
in Perl 6 lies not merely in altering the notation to conform to the style of
Perl 6, but rather in appropriately generalizing the features themselves to
harmonize with the rest of Perl 6 pattern matching, and in particular to
accord with Perl features absent from Snobol4 such as lexical scope.</p>
<p>
</p>
<h2>Inch-stones and Project Schedule</h2>
<p>Experience with my dissertation and other long papers I have written has shown
that writing up even already-worked-out ideas is more time-consuming than one
anticipates, so I have tried to be conservative in the timing estimates for
the inch-stones listed below.  The estimates are in units of work days and
appear in curly braces following each milestone.  The sum total comes to 46
work days, or (allowing for slippage) about 10 work weeks.  Taking into
account some personal obligations during this period, I believe the essential
deliverable -- the initial specification document -- could be completed in
<strong>three elapsed months, which could begin at once</strong>.  How much time would be
needed after that for revision would obviously depend heavily on the
promptness, quantity, and content of feedback.</p>
<p>I mentioned above that although the ideas are essentially worked out, there are
still some aspects needing further reflection.  They are:
(a) verifying conformity with the other Synopses (which is non-trivial, given
how voluminous and dense the Synopses are);
(b) fleshing out details of a possible <code>Pattern</code> role; and
(c) providing additional examples of patterns written according to the
alternate specification.
These are the issues that, given a larger grant, could get extra attention.
Even if the project is expanded to include them, the initial document would
not be delayed:  I think it important that the Perl community be able to
begin considering the alternative specification as soon as feasible, and any
expansion of the project could be done thereafter while feedback would be
(hopefully) received and considered.</p>
<p>The inch-stones of the specification document are:--</p>
<p>I. Summary of salient parts of Snobol4 {2}</p>
<p>II. Problems with the current specification of Perl 6 pattern matching (S05);
justification for considering an alternate specification {2}</p>
<p>III. The alternative specification</p>
<p>0. influence of prior work; disclaimer: possible Perl5ish spirit; perhaps
could be simplified {.4}</p>
<p>1. terminology: &quot;pattern&quot;, &quot;special form&quot;, &quot;subpattern&quot;, &quot;subrule&quot;,
&quot;P6c&quot;, &quot;P6a&quot; {.3}</p>
<p>2. overview of model: data structure, with arbitrary embedded values, that
acts like code during pattern matching {1}</p>
<p>2.1. pattern code vs. normal code (PE vs. NE [PNE, listNE, numNE]  {.2}</p>
<p>2.2. p{PE}, p/PE/, /PE/, p(@args):attrs{PE}; perhaps pat{PE} or pattern{PE};
rule, token {1}</p>
<p>2.3. incorporation (similar to Lisp quasiquotation) {.3}</p>
<p>2.4. compile time vs. build time vs. match time {.2}</p>
<p>2.5. named patterns (declared rather than assigned); build time at
UNITCHECK/INIT/BEGIN {.2}</p>
<p>2.6. substantiation, persubstantiation {.2}</p>
<p>3. matching a string, :i etc., :approx (cf. agrep, TRE) {.4}</p>
<p>4. matching a Boolean (True, &lt;null&gt;, False, &lt;fail&gt;), &lt;do&gt; {.4}</p>
<p>5. matching a number, :fuzzy {.3}</p>
<p>6. matching a CharSet (O-O character classes -- &lt;[ ... ]&gt;; cf. Icon charsets)
{1.3}</p>
<p>7. matching a [sub]pattern (primitive or composite) {.5}</p>
<p>8. matching a closure {.3}</p>
<p>9. parametrized patterns; &lt;bind&gt; {.5}</p>
<p>10. quantification with separation {.2}</p>
<p>11. scoping [sub]patterns: [ ... ], &lt;LABEL&gt;:[ ... ] {.5}</p>
<p>11.1. unique properties: $/ (pattern-local, not normal-local), emission,
conditional emission {.5}</p>
<p>11.2. possible &quot;minor scope&quot;: e.g. (:i PE) vs. [:i PE] {.1}</p>
<p>11.3. &lt;my&gt;, &lt;state&gt;, NORMAL:: {.3}</p>
<p>11.4. &lt;abort&gt;, undef {.1}</p>
<p>11.5. &lt;commit&gt;, :: {.2}</p>
<p>11.6. &lt;emit&gt;, @() or @EMIT; uncaptured emissions {.5}</p>
<p>11.7. &lt;yield&gt; {.3}</p>
<p>11.8. @($/.quant) {.2}</p>
<p>11.9. identities and other examples {.5}</p>
<p>12. :P5 {.2}</p>
<p>13. capture (of emission of scoping subpattern) {.5}</p>
<p>13.1. overview: data flow model, &quot;~&gt;&quot; (if not &quot;&gt;&gt;&quot;), target lists, repetition,
using coroutine logic to capture to next target not yet processed, :take(n)
{ 2 }</p>
<p>13.2. passive targets: scalars, arrays, slices, * {.5}</p>
<p>13.3. active targets: functions, code references, (perhaps) $*TAKE {.8}</p>
<p>13.3. active targets: plain blocks, pointy blocks, &lt;do&gt; {.8}</p>
<p>13.4. active targets: p{PE}, [PE], &lt;named_pattern&gt; {.8}</p>
<p>13.5. secondary targets, splitting and joining of data streams {.5}</p>
<p>13.6. chaining of subpatterns {.5}</p>
<p>13.7. examples {1}</p>
<p>14. conditional phase {.5}</p>
<p>14.1. &quot;~&gt;?&quot;: conditional capture {.5}</p>
<p>14.2. &lt;do?&gt;: conditional side-effect {.5}</p>
<p>14.3. &lt;confirm&gt; {.5}</p>
<p>14.4. behavior w.r.t. backtracking {.5}</p>
<p>14.5. examples {1}</p>
<p>15. &lt;tell&gt;, &lt;seek&gt;, &lt;at&gt;, :forward, :bidi {.5}</p>
<p>16. &lt;reverse&gt; {.2}</p>
<p>17. :decl (or :par or :parallel), :proc (or :seq or :sequential),
(:proc) to establish sequence point {.8}</p>
<p>18. :canon, :quick {.5}</p>
<p>19. generic meaning of &lt;name&gt; and of &lt;op args&gt; {.3}</p>
<p>20. &lt;before PE&gt;, &lt;after PE&gt;, &lt;!before PE&gt;, &lt;!after PE&gt; {.5}</p>
<p>21. &lt;eval&gt;, :memo {.3}</p>
<p>22. {any @arr}, {cat @arr}, {all @arr}, :eval, :lazyeval, :memo {.6}</p>
<p>23. &lt;to&gt;, &lt;from&gt;, &lt;(PE)&gt; {.2}</p>
<p>24. &lt;cut&gt;; &lt;subst&gt; {.7}</p>
<p>25. Rationalized m, M, s {.3}</p>
<p>25.1. m {.4}</p>
<p>25.2. M {.1}</p>
<p>25.3. s {.3}</p>
<p>25.4. possible generalization of m {.3}</p>
<p>25.5. possible generalization of s {.3}</p>
<p>25.6. relation to &quot;~~&quot; {.1}</p>
<p>25.7. dwimmy laxity in placement of attributes for m, s, and p {.3}</p>
<p>26. OO interface {.2}</p>
<p>26.1 m {.4}</p>
<p>26.2 s {.3}</p>
<p>26.3 resumed matching after &lt;yield&gt; (coroutine-style) {.4}</p>
<p>27. :keepall {1}</p>
<p>28. :g -- top-level result is list/array of Match objects {.3}</p>
<p>29. &lt;try&gt;, &lt;catch&gt; {.6}</p>
<p>30. perhaps: &lt;lazy PE&gt; -- like {{ p{PE} }}, but when p{PE} is first evaluated
it replaces (memoizingly) the closure { p{PE} } in the pattern structure.
{.3}</p>
<p>31. &lt;literal&gt;, :eval {.4}</p>
<p>32. matching a Range {.3}</p>
<p>33. matching an arbitrary object: Pattern role (patternization method) {1}</p>
<p>34. summary of members of $/ {.5}</p>
<p>35. other notational differences {.1}</p>
<p>35.1. :sigspace should retain the colon (m:s, s:s, p:s).  (If not, at least
let m:s abbreviate to ms, not mm .) {.1}</p>
<p>35.2. {overlay(p,q)} instead of [p &amp; q] or [p &amp;&amp; q] {.2}</p>
<p>35.3. {juxta(a,b,c)} instead of [a ~ c b] {.3}</p>
<p>36. :panic {.1}</p>
<p>37. comparison of P6a with P6c; features of P6c not directly present in P6a --
i.e. handled differently or (like ~~ and &lt;prior&gt;) subsumed by other features
{2}</p>
<p>38. more examples {3}</p>
<p>39. co-existence with current specification {.8}</p>
<p>40. concluding remarks {1}</p>
<p>
</p>
<h2>Bio</h2>
<p>I have a Ph.D. in Computer Science from Cornell University; my dissertation is
entitled <em>Proving Properties of Snobol4 Patterns</em>.  I have long been
interested in regular expressions, context-free and other formal languages,
and pattern matching.</p>
<p>As mentioned above, the ideas constituting my proposal are basically already
worked out, and there was interest expressed by some participants at YAPC|10
in seeing them.  As far as I know, no one else has proposed or intends to
propose an alternate pattern-matching specification for Perl, so it would
follow that I am the best person to do this.</p>

]]>
    </content>
</entry>

<entry>
    <title>2010Q1 Grant Proposal: perl core memory improvements</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/02/2010q1_grant_proposal_perl_cor.html" />
    <id>tag:news.perlfoundation.org,2010://18.2522</id>

    <published>2010-02-06T17:00:00Z</published>
    <updated>2010-02-06T16:48:18Z</updated>

    <summary><![CDATA[perl core memory improvements Name: Jim Cromie Email: [hidden email] Amount Requested: How much is your project worth? $3000 Synopsis Memory allocation enhancements in core (sv.c). Perl's variable namespace model is very flexible, users can: - create vars, in any package, or in my scope, by naming them; - give them complex values: my $foo = [ 1, { a =&gt; 2}, 3 ]; - share/assign/shallow-copy them: $main::bar = $foo; - crosslink or self ref them: $a[2] = [$a[2], $a[1]];...]]></summary>
    <author>
        <name>Alberto Simões</name>
        <uri>http://null.perl-hackers.net/</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="gp2010q1" label="GP2010Q1" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<h1>perl core memory improvements</h1>
<dl>
<dt><strong>Name:</strong></dt>

<dd>
<p>Jim Cromie</p>
</dd>
<dt><strong>Email:</strong></dt>

<dd>
<p>[hidden email]</p>
</dd>
<dt><strong>Amount Requested:</strong></dt>

<dd>
<p>How much is your project worth? $3000</p>
</dd>
</dl>
<p>
</p>
<h2>Synopsis</h2>
<p>Memory allocation enhancements in core (sv.c).</p>
<p>Perl's variable namespace model is very flexible, users can:</p>
<pre>
 - create vars, in any package, or in my scope, by naming them;
 - give them complex values: my $foo = [ 1, { a =&gt; 2}, 3 ];
 - share/assign/shallow-copy them: $main::bar = $foo;
 - crosslink or self ref them: $a[2] = [$a[2], $a[1]];
 - other hairy stuff</pre>
<p>This user data is all built on-demand from an inventory of sv-parts
which is kept on the interpreter's freelists (sv_root, PL_body_roots).
These are refilled periodically by S_more_bodies, which gets-an-arena,
slices it into sv-parts, and threads them onto the freelist.</p>
<p>This can result in user data spread across memory like a spiderweb in
a corner; its hard to clean the corner without destroying the web.
IOW, it makes memory reclaim &quot;hard&quot;, and probably ineffective.  As a
result I think, perl core has never really seen the need/benefit to
bother reclaiming arenas.</p>
<p>One important workload however could benefit; Storable::freeze() uses
a ptr-table to track SVs that it has %seen, but its PTEs hang off the
interpreter until process termination.  For a long-running process,
this is clearly suboptimal.</p>
]]>
        <![CDATA[<h2>Benefits to the Perl Community</h2>
<p>1st, theres this in perltodo:</p>
<pre>
  use less 'memory'
       Investigate trade offs to switch out perl's choices on memory
       usage.  Particularly perl should be able to give memory back.</pre>
<pre>
       This task is incremental - even a little bit of work on it will help.</pre>
<p>This is deep core work, benefits accrue to users of 5.14, which is
eventual target.  Since the interfaces changed are internal, it may be
possible to get it into 5.12.x.</p>
<p>Currently, Storable::freeze() uses ptr-tables to track seen SVs as it
freezes them, so that it honors shared linkages.  Doing this on large
datasets will allocate a huge ptr-table, which when freed, releases
all those PTEs back to the interpreter-global freelist, where they
hang uselessly until process death (or interpreter shutdown).</p>
<p>The work proposed below appears to provide a workable mechanism to
implement the private-arenas that Tim Bunce expressed want/need for,
with Nicholas Clark's comments, here:</p>
<p><a href="http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-12/msg00821.html">http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-12/msg00821.html</a></p>
<p>By my 1st reads, Tim wants to coax a set of SV allocations to be taken
out of separate arenas, to protect them from others.  Nick outlined a
solution that largely fits with my earlier revision of this grant
proposal (Aug, 09), but added a discussion of savestacks, and implied
(to me, at any rate) a need for a robust underlying mechanism,
prompting this revision of the proposal.</p>
<p>General benefits will likely flow from finding out what nytprof needs,
and figuring out how to provide it :-D</p>
<p>
</p>
<h2>Deliverables, Project Details</h2>
<p>here are the major elements</p>
<p>
</p>
<h3>Private Arenas</h3>
<pre>
  The short version:
  - adapt get-arenas(sig): sv_type arg2 -&gt; (void*) reqid
    and track allocs by the reqid
  - propagate that to S_more_bodies and its macro wrappers
  - add release-arenas() stub 1st</pre>
<p>With get-arenas(reqid), we can track arenas by its users, with
S_more_bodies we can extend that tracking to the interpreter's svtype
consumers individually.  With unique tracking of arena users, we can
offer release-arenas(reqid), and since we're an internal sub-system
interface, expect them to use it properly.</p>
<p>
</p>
<h4>Design Benefits</h4>
<p><code>S_more_bodies()</code> outer-users (disregarding the macro-wrapper) keep
their current interface, the arenas provisioned by it for each sv_type
are transparently tracked, and can soon be reclaimed.</p>
<p>get-arena/release-arena give a balanced api for clients to manage
slabs of memory themselves.  The api is minimal, allowing and
requiring simply that callers of get-arena(reqid) do:</p>
<pre>
 - call release-arenas(reqid) when done with mem.
 - know theyre not sharing parts of the arenas when done.
 - dont abuse the reqids of others, ref your own object.
 - users can create and abandon arenas (be careful!)</pre>
<p>With this, users hacking in core can allocate many slabs, of various
sizes, using just one reqid, assemble them with pointers into
arbitrary structures, and when done, know that they're all cleaned up
together.  Users may also use multiple reqids to simplify their memory
reclaim operations.</p>
<p>It should also be flexible and efficient enough for use by XS
libraries, given their tolerance for newness.</p>
<p>
</p>
<h3>Private-Arenas 1st user: ptr-tables</h3>
<p>Given the Storable use case, this has potential merit; being
parsimonious with PTE mem by default will work for some users.</p>
<p>But for less specific cases, the global PTE freelist probably wins a
performance contest; the malloc demand is intrinsically less when PTEs
are reused, not only <code>freeze()</code> uses ptr-tables, and its only
pathological cases that would even cause notice.</p>
<p>Nonetheless, it provides a test-case for 1st use of the new interface,
and an alternate ptr-table implementation, possibly providing support
for 'use less memory'</p>
<p>Note that with the stubbed release_arenas, we only pretend to free the
private allocations; this may cause problems in <code>make test</code>, but the
overall demand for ptr-tables is quite limited (iirc the big user,
t/re/regexp_qr_embed_thr.t creates ~2000 ptr-tables), and on 1GB
machines, we may not run out of memory.</p>
<p>This has some probitive value for OOM handling also, especially in a
setrlimit()d sandbox.</p>
<p>
</p>
<h4>Design Benefit</h4>
<p>private arenas in ptr-tables provides a concrete basis to consider
other resource reclaim strategies, narrowly 1st, but perhaps also
broadly for other potential users.</p>
<p>When ptr_table_free is called, we know that:</p>
<pre>
  - we start with an empty, private PTE freelist, fill it as needed
  - pt-store consumes PTEs from private PTE freelist
  - all PTEs in the table came from our arenas
  - all PTEs cleared back to it are from our arenas
  - no other users of those PTEs exist
  - all our arenas have our reqid</pre>
<p>With this, we should be able to just whack the whole table (by finding
and freeing the arenas with the reqid), skipping all the rethreading
to the global freelist, and immediately releasing the memory back to
the system.  This sounds possibly useful later.</p>
<p>
</p>
<h3>release_arenas(reqid)</h3>
<p>Ive separated this deliverable because private-arenas in ptr-tables
can be mostly validated without it (using the stub) and because in
some respects its our 1st new feature, where the previous focus was on
refactoring the existing code to accommodate the feature.</p>
<p>The 1st test of this code will be in perl_destruct</p>
<pre>
  release_arenas(&amp;PL_body_roots[$_]) foreach @sv_types;
  release_arenas(&amp;PL_sv_root);</pre>
<p>Then we call it from ptr_table_clear.</p>
<p>
</p>
<h3>support for NYTProf</h3>
<p>Given the recent p5p traffic 12/20 (link above), I think this path to
private arenas helps; it adds support needed beneath the fancy
freelist pushing-and-popping briefly described there.  What nytprof
needs will take further study.</p>
<p>
</p>
<h3>register_arena_consumer</h3>
<p>The design thus far does nothing to protect (or even advise) of reqid
trampling between 2 users, <code>get_arena()</code> implicitly allows callers to
start new reservations with the given ID, which allows sharing amongst
knowing users.  Formal registration will provide at least advisory
protection.  This could be done with a flag too.</p>
<p>
</p>
<h2>Semi-Deliverables</h2>
<p>These have real merit in my estimation, but are rather speculative,
and I'm reluctant to call them committable deliverables.  I think
think they help illustrate the potential of the above work.</p>
<p>
</p>
<h3>use less memory, pte</h3>
<p>One way to nudge this rock foward is to plug in a 2nd (private)
ptr-table-* function set, addressing the Storable::freeze use case.</p>
<p>I suspect however that freelist pushing and popping, along with
<code>get_arenas()</code> and <code>release_arenas()</code>, will ultimately be a better tool
than this specialized fix for PTEs, but it serves as a point of
discussion (strawman); we dont even have decent terminology yet, let
alone a few paths forward.</p>
<p>
</p>
<h2>use my_arenas</h2>
<p>Storable::thaw() might want to put the perl-data it vivifies into a
constrained region of memory, as this may improve processor cache
performance, especially with their modern prefetch systems.  So would
perl routines, such as parsers, data generators, etc.</p>
<pre>
  # Doing it lexically would be nice;
  get_tight_hash {
    my $var;
    use my_arenas depth =&gt; 1, 'xs';
    return { Storable::thaw($packet) };
  }</pre>
<p>Here, my_arenas seeks to capture only SVs in the contained xs scope
(the thaw), and those in {} composition.  depth =&gt; 1 sounds safest wrt
the spiderweb problem, N might be nice if it makes sense (depth=&gt;0
makes me nervous).  I also suppose that xs might somehow be different
than just depth =&gt; 1.</p>
<p>This doesnt attempt to migrate perl data into a container; that would
be tantamount to lifting the spiderweb without damaging it, and is out
of scope here.  But this may shed some light in a dimly lit corner.</p>
<p>
</p>
<h2>Inch-stones</h2>
<p>The deliverables above are largely self explanatory, but will also
include responding and resolving issues; they're then largely defined
by porters and particularly pumpkings.</p>
<p>Tim Bunce, given his interest for nytprof, will hopefully offer 
guidance as to what he needs, Id treat those as immediate goals.</p>
<p>There are no doubt numerous knock-on effects to the rest of core,
some of these will be in-scope, though I hope not all.</p>
<p>setrlimit()d sandbox, oom tests.  work this into fresh_perl, maybe
wrap this as <code>sandboxed_perl()</code>.</p>
<p>p5p discussion, review, responses, revisions, variations, etc.</p>
<p>
</p>
<h2>Project Schedule</h2>
<p>1-2 months</p>
<p>
</p>
<h2>Bio</h2>
<p>Ive been hacking in perl for a while</p>
<pre>
  [jimc@groucho perl-git]$ git log blead | grep Cromie | wc -l
     102</pre>
<pre>
  Ive also hacked in pertinent parts of core, ext/ code:
  - added arena-sets into the arena allocator
  - reworked the body-allocator around S_more_bodies
  - helped refactor sv_upgrade (Nick did the heavy lifting)
  - added struct body_details (says the blamelog)
  - extended B::Concise feature set
  - implemented OptreeCheck and tests using it</pre>

]]>
    </content>
</entry>

<entry>
    <title>2010Q1 Call for Grants Proposals</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/02/2010q1_call_for_grants_proposa.html" />
    <id>tag:news.perlfoundation.org,2009://18.2512</id>

    <published>2010-02-01T00:00:00Z</published>
    <updated>2010-02-01T14:01:57Z</updated>

    <summary>NOTE: perl.org Request Tracker was down for about a week (hardware problems). As this happened in the last days of the call for grants period we are extending it till the end of the week (day 5). The Perl Foundation is looking at giving some grants ranging from $500 to $3000 in February/March 2010. In the past, we&apos;ve supported Adam Kennedy&apos;s PPI, Strawberry Perl and Perl on a Stick, Nicholas Clark&apos;s work on Perl internals, Jouke Visser&apos;s pVoice, Chris Dolan...</summary>
    <author>
        <name>Alberto Simões</name>
        <uri>http://null.perl-hackers.net/</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<p><big><big><b><span class="caps">NOTE</span>:</b> <b>perl.org Request Tracker was down for about a week (hardware problems). As this happened in the last days of the call for grants period we are extending it till the end of the week (day 5).</b></big></big></p>

<p>The Perl Foundation is looking at giving some grants ranging from $500 to $3000 in February/March 2010.</p>

<p>In the past, we've supported Adam Kennedy's <span class="caps">PPI,</span> Strawberry Perl and Perl on a Stick, Nicholas Clark's work on Perl internals, Jouke Visser's pVoice, Chris Dolan on Perl::Critic and many others (just check http://www.perlfoundation.org/grants for more references).</p>

<p>You don't have to have a large, complex, or lengthy project. You don't even have to be a Perl master or guru. If you have a good idea and the means and ability to accomplish it, we want to hear from you!</p>

<p>Do you have something that could benefit the Perl community but just need that little extra help? Submit a grant proposal by January 31.</p>

<p>As a general rule, a properly formatted grant proposal is more likely to be approved if it meets the following criteria</p>


<ul>
<li>It has widespread benefit to the Perl community or a large segment of it.</li>
<li>We have reasons to believe that you can accomplish your goals.</li>
<li>We can afford it (please, respect the limits or your proposal should be rejected immediately).</li>
</ul>



<p>To submit a proposal see the guidelines at <a href="http://www.perlfoundation.org/how_to_write_a_proposal">http://www.perlfoundation.org/how_to_write_a_proposal</a> and <span class="caps">TPF </span>rules of operation at <a href="http://www.perlfoundation.org/rules_of_operation">http://www.perlfoundation.org/rules_of_operation</a>. Then send your proposal to tpf-proposals@perl-foundation.org. Note that proposals should be properly formatted accordingly with our <span class="caps">POD </span>template.</p>

<p>On February 1st, proposals will be made available publicly (on this blog) for public discussion, as it happened in the previous round. So, please make it clear in your proposal if it should not be public.</p>

<p><strong>Note that accepted but not funded proposals in the previous round do not need to be re-submitted.</strong></p>]]>
        
    </content>
</entry>

<entry>
    <title>YAPC::NA 2010 Dates Announced!</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/01/yapcna_2010_dates_announced.html" />
    <id>tag:news.perlfoundation.org,2010://18.2516</id>

    <published>2010-01-13T02:55:01Z</published>
    <updated>2010-01-13T02:59:13Z</updated>

    <summary>The dates for YAPC::NA 2010 were announced recently. The conference will be the week of June 20th 2010 at Knowlton Hall on the Campus of the Ohio State University. The primary conference days will be June 21st, 22nd, 23rd, but if history tells us anything, there will be events, classes, and hackathons spread out for days before and after the official conference....</summary>
    <author>
        <name>Josh McAdams</name>
        <uri>http://www.perlcast.com</uri>
    </author>
    
        <category term="Conferences" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="yapc" label="YAPC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapc" label="yapc" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapcconferences" label="yapc conferences" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapcna" label="yapc-na" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="yapcna" label="YAPC::NA" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<p>The dates for <a href="http://yapc2010.com/"><span class="caps">YAPC</span>::NA 2010</a> were announced recently. The conference will be the week of June 20th 2010 at Knowlton Hall on the Campus of the Ohio State University.  The primary conference days will be June 21st, 22nd, 23rd, but if history tells us anything, there will be events, classes, and hackathons spread out for days before and after the official conference.</p>]]>
        
    </content>
</entry>

<entry>
    <title>TPF Booth at CeBIT</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2010/01/tpf_booth_at_cebit.html" />
    <id>tag:news.perlfoundation.org,2010://18.2514</id>

    <published>2010-01-07T09:34:23Z</published>
    <updated>2010-01-07T10:17:07Z</updated>

    <summary>I am pleased to announce that TPF will be represented for the first time this year at CeBIT. The conference is taking place between the 2nd and 6th of March in Hannover, Germany. The events team is still looking for more volunteers to staff the booth. If you want to help out you&apos;ll find information on the events mailing list and the events wiki....</summary>
    <author>
        <name>Karen</name>
        <uri>http://martian.org/karen</uri>
    </author>
    
        <category term="Conferences" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Marketing" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<p>I am pleased to announce that <span class="caps">TPF </span>will be represented for the first time this year at <a href="http://www.cebit.de/homepage_e">CeBIT</a>.  The conference is taking place between the 2nd and 6th of March in Hannover, Germany.</p>

<p>The events team is still looking for more volunteers to staff the booth.  If you want to help out you'll find information on the <a href="http://www.mail-archive.com/events@lists.perlfoundation.org/">events mailing list</a> and the <a href="http://www.perlfoundation.org/perl5/index.cgi?events">events wiki</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Events Mailing List</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2009/12/events_mailing_list.html" />
    <id>tag:news.perlfoundation.org,2009://18.2510</id>

    <published>2009-12-21T05:22:34Z</published>
    <updated>2009-12-22T13:39:37Z</updated>

    <summary>Over the past few weeks discussions have been taking place on our Marketing list regarding different ways to promote Perl. One idea we are running with is promoting Perl at technical conferences where the main focus isn&apos;t Perl. Gabor has announced that there will be a Perl booth at FOSDEM in February next year. This is, hopefully, the first of many conferences that are targeted. To help co-ordinate our efforts we have created an events mailing list. To subscribe to...</summary>
    <author>
        <name>Karen</name>
        <uri>http://martian.org/karen</uri>
    </author>
    
        <category term="Marketing" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="marketingconferences" label="marketing conferences" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<p>Over the past few weeks discussions have been taking place on our Marketing list regarding different ways to promote Perl.  One idea we are running with is promoting Perl at technical conferences where the main focus isn't Perl.  </p>

<p>Gabor has <a href="http://szabgab.com/blog/2009/12/1260171050.html">announced</a> that there will be a Perl booth at <a href="http://www.fosdem.org/2010/"><span class="caps">FOSDEM</span></a> in February next year.  This is, hopefully, the first of many conferences that are targeted.</p>

<p>To help co-ordinate our efforts we have created an events mailing list.</p>

<p>To subscribe to the list please send a message to events-subscribe@lists.perlfoundation.org .</p>

<p>Once you are registered you can send messages to events@lists.perlfoundation.org.  The list also has a <a href="http://www.mail-archive.com/events@lists.perlfoundation.org/">public archive</a>. </p>]]>
        
    </content>
</entry>

<entry>
    <title>Grant Complete: learn.perl.org</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2009/12/grant_complete_learnperlorg.html" />
    <id>tag:news.perlfoundation.org,2009://18.2508</id>

    <published>2009-12-07T14:01:08Z</published>
    <updated>2009-12-07T14:10:21Z</updated>

    <summary>Eric Wilhelm has finished his grant improving learn.perl.org&quot;. He has written six tutorials - from &quot;Getting Started with Perl&quot; to &quot;Your First GUI Desktop Application&quot;. The six tutorials are Getting Started with Perl Control, Structures, Scoping, and Subroutines Using and Creating Modules An Introduction to Objects Perl/CPAN Configuration Howto Your First GUI Desktop Application The tutorials are currently hosted http://learnperl.scratchcomputing.com, but if Eric finds a better permanent home for them, he will setup redirects for that. In addition to the...</summary>
    <author>
        <name>reneeb</name>
        <uri>http://foo-magazin.de</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="learnperlorg" label="learn.perl.org" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<p>Eric Wilhelm has finished his grant <a href="http://news.perlfoundation.org/mt/mt-search.cgi?blog_id=18&amp;tag=learn.perl.org&amp;limit=20">improving learn.perl.org</a>". He has written<br />
six tutorials - from "Getting Started with Perl" to "Your First <span class="caps">GUI</span> Desktop<br />
Application".</p>

<p>The six tutorials are</p>



<ul>
<li><a href="http://learnperl.scratchcomputing.com/tutorials/getting_started/">Getting Started with Perl</a></li>
<li><a href="http://learnperl.scratchcomputing.com/tutorials/csss/">Control, Structures, Scoping, and Subroutines</a></li>
<li><a href="http://learnperl.scratchcomputing.com/tutorials/modules/">Using and Creating Modules</a></li>
<li><a href="http://learnperl.scratchcomputing.com/tutorials/objects/">An Introduction to Objects</a></li>
<li><a href="http://learnperl.scratchcomputing.com/tutorials/configuration/">Perl/CPAN Configuration Howto</a></li>
<li><a href="http://learnperl.scratchcomputing.com/tutorials/wxperl/">Your First <span class="caps">GUI</span> Desktop Application</a></li>
</ul>



<p>The tutorials are currently hosted <a href="http://learnperl.scratchcomputing.com">http://learnperl.scratchcomputing.com</a>, but if<br />
Eric finds a better permanent home for them, he will setup redirects for that.</p>

<p>In addition to the original plan, Eric has created the <br />
<a href="http://search.cpan.org/perldoc?Combust%3A%3ASpontaneously">Combust::Spontaneously</a> module and published it on the <span class="caps">CPAN. </span> This <br />
lowers the technical barrier for contributing to perl.org sites by <br />
allowing editors to preview their changes without needing to be an <br />
apache admin.  Eric hopes that this tool ultimately leads to perl.org <br />
improvements which exceed what he had planned in terms of site rework <br />
(perhaps it already has).</p>

<p>Eric's grant proposal included a website redesign, but the whole *.perl.org family<br />
was redesigned by Leo Lapworth and friends (see <a href="http://news.perlfoundation.org/2009/11/new_look_on_wwwperlorg.html">http://news.perlfoundation.org/2009/11/new_look_on_wwwperlorg.html</a>).</p>

<p>The initial Grant proposal can be found at <br />
<a href="http://www.perlfoundation.org/eric_and_tina_improving_learn_perl_org">http://www.perlfoundation.org/eric_and_tina_improving_learn_perl_org</a>.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Tcl::Tk for parrot/rakudo grant updates</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2009/12/tcltk_for_parrotrakudo_grant_u.html" />
    <id>tag:news.perlfoundation.org,2009://18.2506</id>

    <published>2009-12-04T21:40:58Z</published>
    <updated>2009-12-04T21:44:16Z</updated>

    <summary>Follows the update from Vadim on his grant:I&apos;ve implemented &apos;call&apos; method for interpreter object, which takes already parsed parameters and passes them to tcl/tk interpreter. It is similar to &apos;eval&apos; method, but it should be faster, and also safer to use, because there will be no need to protect/escape special characters before calls. Also, widget calls to tcl/tk library are based on this method. (this method will be improved from some technical POV, but it is quite usable right now)Also,...</summary>
    <author>
        <name>Alberto Simões</name>
        <uri>http://null.perl-hackers.net/</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="parrot" label="parrot" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rakudo" label="rakudo" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="tcltk" label="tcltk" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[Follows the update from Vadim on his grant:<br /><br /><blockquote><i>I've implemented 'call' method for interpreter object, which takes already parsed parameters and passes them to tcl/tk interpreter. It is similar to 'eval' method, but it should be faster, and also safer to use, because there will be no need to protect/escape special characters before calls. Also, widget calls to tcl/tk library are based on this method. (this method will be improved from some technical POV, but it is quite usable right now)<br /><br />Also, 'tk' widgets could be created within parrot as objects, which then could be used like<br />&nbsp;&nbsp;&nbsp; wbutton.'call'('configure','-command','.t insert end $w_e')<br /><br />I very much believe that I'll finish this implementation to the next Friday. Right after that, I'll move to implementing cross-compilation, where I currently have no news.<br /></i></blockquote><br />]]>
        
    </content>
</entry>

<entry>
    <title>Grant Update: wxPerl Documentation (20.11.2009)</title>
    <link rel="alternate" type="text/html" href="http://news.perlfoundation.org/2009/11/grant_update_wxperl_documentat.html" />
    <id>tag:news.perlfoundation.org,2009://18.2504</id>

    <published>2009-11-20T08:27:43Z</published>
    <updated>2009-11-20T08:32:53Z</updated>

    <summary>Eric Roode sent the following update: The status is basically that the writing is taking much, much longer than I had expected. I had thought I&apos;d be able to document a couple classes per hour; instead, it&apos;s taking me a few hours per class. I don&apos;t really know what to do to speed up the process, so I am just continuing to plug along. At the rate I&apos;m going, however, the project is going to take much longer than the...</summary>
    <author>
        <name>reneeb</name>
        <uri>http://foo-magazin.de</uri>
    </author>
    
        <category term="Grants" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="grants" label="grants" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wxperl_documentation" label="wxperl_documentation" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://news.perlfoundation.org/">
        <![CDATA[<p>Eric Roode sent the following update:</p>

<blockquote><p><br />
The status is basically that the writing is taking much, much longer than I had expected.  I had thought I'd be able to document a couple classes per hour; instead, it's taking me a few hours per class.  I don't really know what to do to speed up the process, so I am just continuing to plug along.  At the rate I'm going, however, the project is going to take much longer than the three months I had estimated.</p></blockquote>


<p>See <a href="http://news.perlfoundation.org/2009/08/wxperl_documentation.html">http://news.perlfoundation.org/2009/08/wxperl_documentation.html</a> for more information about this grant.</p>]]>
        
    </content>
</entry>

</feed>
