[Valid Atom 1.0] This is a valid Atom 1.0 feed.


This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.


  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <feed xmlns="">
  3.    <title>The Perl Foundation</title>
  4.    <link rel="alternate" type="text/html" href="" />
  5.    <link rel="self" type="application/atom+xml" href="" />
  6.    <id>,2010-03-22://18</id>
  7.    <updated>2017-06-23T09:02:38Z</updated>
  9.    <generator uri="">Movable Type Pro 6.2.2</generator>
  11. <entry>
  12.    <title>Grant Extension Request: Perl 6 Performance and Reliability Engineering</title>
  13.    <link rel="alternate" type="text/html" href="" />
  14.    <id>,2017://18.3884</id>
  16.    <published>2017-06-13T04:00:00Z</published>
  17.    <updated>2017-06-23T09:02:38Z</updated>
  19.    <summary>Jonathan Worthington has requested an extension of $10,000 for his Perl 6 Performance and Reliability Engineering grant. This will allow him to dedicate another 200 hours to this work. His previous work was successfully delivered as reported in the Latest report. This funding will come from the Perl 6 Core Development Fund. Before we make a decision on this extension we would like to have a period of community consultation that will last for seven days. Please leave feedback in...</summary>
  20.    <author>
  21.        <name>Makoto Nozaki</name>
  22.        <uri></uri>
  23.    </author>
  25.        <category term="Grants" scheme="" />
  27.        <category term="Perl 6 Development" scheme="" />
  30.    <content type="html" xml:lang="en-us" xml:base="">
  31.        <![CDATA[<p><strong>Jonathan Worthington</strong> has requested an extension of $10,000 for his <a href="">Perl 6 Performance and Reliability Engineering</a> grant. This will allow him to dedicate another 200 hours to this work.</p>
  33. <p>His previous work was successfully delivered as reported in the <a href="">Latest
  34. report</a>.</p>
  36. <p>This funding will come from the <a href="">Perl 6 Core Development
  37. Fund</a>.</p>
  39. <p>Before we make a decision on this extension we would like to have a
  40. period of community consultation that will last for seven days. Please
  41. leave feedback in the comments or, if you prefer, email your comments
  42. to makoto at</p>
  43. ]]>
  45.    </content>
  46. </entry>
  48. <entry>
  49.    <title>Grant Extension Request: Maintaining the Perl 5 Core</title>
  50.    <link rel="alternate" type="text/html" href="" />
  51.    <id>,2017://18.3883</id>
  53.    <published>2017-06-13T02:00:00Z</published>
  54.    <updated>2017-06-13T03:06:20Z</updated>
  56.    <summary>Dave Mitchell has requested an extension of $20,000 for his Maintaining the Perl 5 Core grant. He also has requested an hourly rate change from $50 to $60. This will allow him to dedicate another 333 hours to this work. During this grant he sent regular reports to the p5p mailing list as well as providing monthly summary reports that have been published on this site, the most recent of which are linked below: May April March February Before we...</summary>
  57.    <author>
  58.        <name>Makoto Nozaki</name>
  59.        <uri></uri>
  60.    </author>
  62.        <category term="Grants" scheme="" />
  64.        <category term="Perl 5 Development" scheme="" />
  67.    <content type="html" xml:lang="en-us" xml:base="">
  68.        <![CDATA[<p><strong>Dave Mitchell</strong> has requested an extension of $20,000 for his
  69. <strong>Maintaining the Perl 5 Core</strong> grant. He also has requested an hourly
  70. rate change from $50 to $60. This will allow him to dedicate another
  71. 333 hours to this work.</p>
  73. <p>During this grant he sent regular reports to the p5p mailing list as
  74. well as providing monthly summary reports that have been published on
  75. this site, the most recent of which are linked below:</p>
  77. <ul>
  78. <li><a href="">May</a></li>
  79. <li><a href="">April</a></li>
  80. <li><a href="">March</a></li>
  81. <li><a href="">February</a></li>
  82. </ul>
  84. <p>Before we make a decision on this extension, we would like to have a
  85. period of community consultation. Please leave feedback in the
  86. comments field below or if you prefer, send email with your comments
  87. to makoto at</p>
  89. <p>If successful this extension will be funded from the <a href="">Perl 5 Core
  90. Maintenance Fund</a>.</p>
  91. ]]>
  93.    </content>
  94. </entry>
  96. <entry>
  97.    <title>Maintaining the Perl 5 Core: May 2017 report</title>
  98.    <link rel="alternate" type="text/html" href="" />
  99.    <id>,2017://18.3882</id>
  101.    <published>2017-06-07T20:00:00Z</published>
  102.    <updated>2017-06-07T23:47:58Z</updated>
  104.    <summary>This is a monthly report by Dave Mitchell on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible. I spent May mainly: * heavily reworking perl&apos;s internal sprintf implementation. I&apos;ve now pushed a smoking branch containing about 100 commits which fixes bugs, audits the code for possible integer overflows, makes the code simpler and simpler to understand, and improves performance by around 15%. * Investigating short-string PVs. I&apos;ve pushed a proof-of-concept...</summary>
  105.    <author>
  106.        <name>Makoto Nozaki</name>
  107.        <uri></uri>
  108.    </author>
  110.        <category term="Grants" scheme="" />
  112.        <category term="Perl 5 Development" scheme="" />
  115.    <content type="html" xml:lang="en-us" xml:base="">
  116.        <![CDATA[<p>This is a monthly report by Dave Mitchell on his grant under <a href="">Perl 5 Core Maintenance Fund</a>. We thank the TPF sponsors to make this grant possible.</p>
  118. <pre>
  119. I spent May mainly:
  121. * heavily reworking perl's internal sprintf implementation.
  122.  I've now pushed a smoking branch containing about 100 commits which
  123.  fixes bugs, audits the code for possible integer overflows, makes the
  124.  code simpler and simpler to understand, and improves performance by
  125.  around 15%.
  127. * Investigating short-string PVs. I've pushed a proof-of-concept branch
  128.  that allows short strings (< 16 bytes) to be stored directly in the
  129.  body of an SV. It also opens up a pathway to improve the COW
  130.  implementation, which I intend to work on at some point.
  132. * helping to write and proofread the perldelta.pod file for the 5.26.0
  133.  release.
  135. SUMMARY:
  136.     96:22 RT #131260 sprintf implementation
  137.      0:58 RT #131296 Time-HiRes/Makefile.PL @INC issue
  138.     18:47 investigate short-string PVs
  139.     16:25 perldelta fixups
  140.      4:34 process p5p mailbox
  141.    ------
  142.    137:06 TOTAL (HH::MM)
  145. 189.4 weeks
  146. 2728.9 total hours
  147.  14.4 average hours per week
  149. There are 71 hours left on the grant
  150. </pre>
  151. ]]>
  153.    </content>
  154. </entry>
  156. <entry>
  157.    <title>The Perl Conference Newsletter</title>
  158.    <link rel="alternate" type="text/html" href="" />
  159.    <id>,2017://18.3881</id>
  161.    <published>2017-06-07T15:27:14Z</published>
  162.    <updated>2017-06-07T15:44:31Z</updated>
  164.    <summary>In this issue: Sunday Arrival Dinner Tuesday Night Social: Get to know your fellow attendees! Tutorials spaces still available Call for Speakers: Lightning Talks Call for Volunteers Arrival Dinner - Sunday June 18 Arrangements have been made with Zikrayet Restaurant and Lounge to host a large crowd for The Perl Conference Arrival Dinner. Given the nature of the place, it will be possible to make this event more of a come and hang out destination than we&apos;ve been able to...</summary>
  165.    <author>
  166.        <name>David Oswald</name>
  168.    </author>
  171.    <content type="html" xml:lang="en-us" xml:base="">
  172.        <![CDATA[<p><strong>In this issue:</strong></p>
  174. <ul>
  175. <li>Sunday Arrival Dinner</li>
  176. <li>Tuesday Night Social: Get to know your fellow attendees!</li>
  177. <li>Tutorials spaces still available</li>
  178. <li>Call for Speakers: Lightning Talks</li>
  179. <li>Call for Volunteers</li>
  180. </ul>
  182. <p><strong>Arrival Dinner - Sunday June 18</strong></p>
  184. <p>Arrangements have been made with Zikrayet Restaurant and Lounge to host a large crowd for The Perl Conference Arrival Dinner.</p>
  186. <p>Given the nature of the place, it will be possible to make this event more of a come and hang out destination than we've been able to have in past years. Just the same we have an official time of 6pm set for the dinner so everyone can have a common plan for arrival.</p>
  188. <p>This is an arrivals dinner but not necessarily the arrivals dinner. It's also a tradition that others who prefer smaller crowds and/or a more vegan-friendly menu organize an Alt Arrival Dinner.</p>
  190. <p>For more information, or to note your intended attendance, please visit: </p>
  192. <p>For more information on the Alt Arrival Dinner: </p>
  194. <p><strong>Tuesday Night Social</strong>
  195. This year we are continuing the very successful event established in Orlando last year, instead of the big banquet of years before.  We will still be having a social at 6 pm with appetizers and drinks.  After a long day of following your favorite track come say hello to friends from far and near over a glass of wine or a pint of beer!</p>
  197. <p><strong>Tutorials</strong>
  198. There’s still time to sign up! Some tutorials have very limited space, so sign up today!  If you’ve already purchased your Conference pass, you can still add tutorials by logging in and making a separate purchase.  The available tutorials are:</p>
  200. <ul>
  201. <li>John Anderson - Perl in a Day - Sunday 6/18, $50</li>
  202. <li>Dave Rolsky - Introduction to Moose -  Sunday 6/18, $150</li>
  203. <li>Randal Schwartz - Perl Second Best Practices - Sunday 6/18 (half day), $125</li>
  204. <li>Ricardo Signes - Unicode and Associated Punishments - Sunday 6/18 (half day), $100</li>
  205. <li>Mark Jason Dominus - Advanced Parsing Techniques - Thursday 6/22, $75</li>
  206. <li>Mark Jason Dominus - Higher Order Perl - Thursday 6/22, $75</li>
  207. <li>David Golden - MongoDB with Perl - Thursday 6/22, $99</li>
  208. <li>Damian Conway - New Perl - Thursday 6/22, $150</li>
  209. <li>Damian Conway - Parsing with Perl 6 Regexes and Grammars - Thursday 6/23, $150</li>
  210. </ul>
  212. <p><strong>Call for Speakers: Lightning Talks</strong></p>
  214. <p>This year there are THREE sessions of lightning talks! Each  will have about 10 Lightning Talks of 5 minutes each.</p>
  216. <p>These Lightning Talks may be serious, funny, or both. They may be given by experienced speakers already giving full length talks or by first time speakers just starting out (this is a great way to get started if you have something to say). If you are a first time speaker you will win a tie with an experience speaker when the schedule is made if it comes to it. Today's first time speaker could be tomorrow's keynote speaker.</p>
  218. <p>In addition to the five minute Lightning Talks where you get to use your computer, slides, and any other tool, we will also have some Lightning Advertisements. These are only 30 seconds, you don't have to submit a proposal, you don't get any slides, and the only AV assistance offered is a microphone. If you have a BOF to announce or any other short message you can use the transition time that would be otherwise wasted between Lightning Talks to share your message. Just show up before we start and take a seat in the assigned seats in the front of the room.</p>
  220. <p><strong>Submit your talk here: <a href=""></a>.</strong></p>
  222. <p><strong>Call for Volunteers</strong>
  223. Volunteer Registration Form Here:   <a href=""></a></p>
  225. <p><strong>Setup / Cleanup Crew</strong>
  226. On Sunday, we will need volunteers to assist with unboxing materials, placing signs, setting up AV equipment, preparing registration area, and working to make the area aesthetically pleasing.  There will be a lot of odd jobs that need to be done.</p>
  228. <p>On Thursday and Friday, we will need to go through everything that is left over, box it, and ship it out.</p>
  230. <p><strong>Room Moderator</strong>
  231. The Moderator will be assigned a room for the day (only during breakout sessions).  Their responsibility is to introduce each speaker prior to their talk.  They work with the Videographer to ensure talks do not start until the videography team is ready to record.  They also ensure that their room keeps to the schedule, cuing the speaker to end their talk as necessary.  They will provide any special announcements between talks as instructed by the organizer staff.</p>
  233. <p><strong>Videographer</strong>
  234. Each room will have a Videographer, who reports to the Videography Team leader.  They are responsible for recording the talks in their assigned room (except where the speaker has opted-out of being recorded).</p>
  236. <p><strong>Assistant Videographer</strong>
  237. Performs tasks as assigned by the videographer.  Acts as a runner if something is needed in the room.</p>
  239. <p><strong>Registration Desk</strong>
  240. Assists people with checking in.  Serves as an information desk attendant.  Assists attendees with retail purchases.</p>
  241. ]]>
  243.    </content>
  244. </entry>
  246. <entry>
  247.    <title>Welcoming New Chair for the Community Advocacy Committee</title>
  248.    <link rel="alternate" type="text/html" href="" />
  249.    <id>,2017://18.3880</id>
  251.    <published>2017-06-06T08:31:01Z</published>
  252.    <updated>2017-06-06T12:44:18Z</updated>
  254.    <summary>As some readers may recall, I mentioned in a previous post that we were evaluating whether to maintain the Community Advocacy Committee. This announcement was enough to move Mark Prather to action. He wrote to me shortly after the blog post went up and asked what he could do to help keep this committee and its mission alive. The answer was become the new committee chair and I&apos;m happy to report that he has accepted. Please join me in welcoming...</summary>
  255.    <author>
  256.        <name>Jim Brandt</name>
  257.        <uri></uri>
  258.    </author>
  261.    <content type="html" xml:lang="en-us" xml:base="">
  262.        <![CDATA[<p>As some readers may recall, I mentioned in a <a href="">previous post</a> that we were evaluating whether to maintain the Community Advocacy Committee. This announcement was enough to move Mark Prather to action. He wrote to me shortly after the blog post went up and asked what he could do to help keep this committee and its mission alive. The answer was become the new committee chair and I'm happy to report that he has accepted.</p>
  264. <p>Please join me in welcoming Mark as the new chair of the Community Advocacy Committee. He has a plan for the year that includes some efforts to help Perl Mongers groups and to reach out to get more input from the broader Perl community. He'll also be looking for new committee members to help out, so if you're interested get in touch with Mark.</p>
  265. ]]>
  267.    </content>
  268. </entry>
  270. <entry>
  271.    <title>Grant Report : Robust Perl 6 Unicode Support - June 2017</title>
  272.    <link rel="alternate" type="text/html" href="" />
  273.    <id>,2017://18.3879</id>
  275.    <published>2017-06-06T03:26:18Z</published>
  276.    <updated>2017-06-06T03:45:24Z</updated>
  278.    <summary>Samantha McVey has made progress on her grant to improve the robustness of Unicode support in Rakudo. She is working in the following repos:, Here are a few highlights from her complete blog post. &quot;In Roast there is a new version of GraphemeBreakTest.t. The script tests the contents of each grapheme individually from the GraphemeClusterBreak.txt file from the Unicode 9.0 test suite. Previously we only checked the total number of ‘.chars’ each for the string as a whole....</summary>
  279.    <author>
  280.        <name>Mark A Jensen</name>
  282.    </author>
  284.        <category term="Grants" scheme="" />
  286.    <category term="grants" label="grants" scheme="" />
  287.    <category term="perl6" label="perl6" scheme="" />
  288.    <category term="rakudo" label="rakudo" scheme="" />
  289.    <category term="unicode" label="unicode" scheme="" />
  291.    <content type="html" xml:lang="en-us" xml:base="">
  292.        <![CDATA[<p>Samantha McVey has made progress on her
  293. <a href="">grant</a> to
  294. improve the robustness of Unicode support in Rakudo. She is working in
  295. the following repos: <a href=""></a>,
  296. <a href=""></a>.</p>
  298. <p>Here are a few highlights from
  299. <a href="">her complete blog post</a>.</p>
  301. <ul>
  302. <li>"In Roast there is a
  303. <a href="">new version of GraphemeBreakTest.t</a>.</li>
  304. </ul>
  306. <blockquote>
  307.  <p>The script tests the contents of each grapheme individually from the
  308. GraphemeClusterBreak.txt file from the Unicode 9.0 test suite.</p>
  310. <p>Previously we only checked the total number of ‘.chars’ each for the
  311. string as a whole. Obviously we want something more precise than that,
  312. since the test specifies the location of each of the breaks between
  313. codepoints. The new code checks that codepoints are put in the correct
  314. graphemes in the proper order. In addition we also check the string
  315. length as well.</p>
  317. <p>This new test uses a grammar to parse the file and generally is much
  318. more robust than the previous script.</p>
  319. </blockquote>
  321. <ul>
  322. <li><p>I have some currently unmerged tests which need to wait to be
  323. merged, although sections of it are complete and are being
  324. incorporated into the larger Unicode Database Retrofit, reusing this
  325. code.</p></li>
  326. <li><p>I have written grammars and modules to process and provide data on
  327. the <a href="">PropertyValueAliases</a>
  328. and <a href="">PropertyAliases</a>.
  329. They will be used for testing that all of the canonical property names and all the property
  330. values themselves properly resolve to separate property codes, as well
  331. as that they are usable in regex.</p></li>
  332. <li><p>As part of my grant work I am working on making Unicode property
  333. values distinct per property, and also on allowing all canonical
  334. Unicode property values to work.</p></li>
  335. <li><p>I've also started adding some documentation to my Unicode-Grant wiki
  336. with information about what is enclosed in each Unicode data files;
  337. there are a few other pages as
  338. well. <a href="">This wiki</a>
  339. is planned to be expanded to have many more sections than it does
  340. currently."</p></li>
  341. </ul>
  343. <p>MAJ</p>
  344. ]]>
  346.    </content>
  347. </entry>
  349. <entry>
  350.    <title>Perl 6 IO Grant: May 2017 Report (Complete)</title>
  351.    <link rel="alternate" type="text/html" href="" />
  352.    <id>,2017://18.3878</id>
  354.    <published>2017-06-06T02:30:11Z</published>
  355.    <updated>2017-06-06T02:53:43Z</updated>
  357.    <summary>Zoffix Znet provided this report on May 29, 2017 The Grants Committee will vote on its completion and payment. If you have feedback or questions, please comment here COMPLETION Report / Perl 6 IO TPF Grant This document is the May, 2017 progress report for TPF Standardization, Test Coverage, and Documentation of Perl 6 I/O Routines grant. I believe I reasonably satisfied the goals of the grant and consider it completed. This is the final report and may reference some...</summary>
  358.    <author>
  359.        <name>Coke</name>
  361.    </author>
  363.        <category term="Grants" scheme="" />
  366.    <content type="html" xml:lang="en-us" xml:base="">
  367.        <![CDATA[<p><em>Zoffix Znet provided this report on May 29, 2017</em></p>
  369. <p><em>The Grants Committee will vote on its completion and payment.
  370. If you have feedback or questions, please comment here</em></p>
  372. <h1>COMPLETION Report / Perl 6 IO TPF Grant</h1>
  374. <p>This document is the May, 2017 progress report for <a href="">TPF Standardization,
  375. Test Coverage, and Documentation of Perl 6 I/O Routines
  376. grant</a>. I believe I reasonably satisfied the goals of the grant and consider it
  377. completed. This is the final report and may reference some of the
  378. work/commits previously mentioned in monthly reports.</p>
  379. ]]>
  380.        <![CDATA[<h1>Thank You!</h1>
  382. <p>I'd like to thank all the donors that
  383. <a href="">support The Perl Foundation</a>
  384. who made this grant possible. It was a wonderful learning experience for me,
  385. and it brings me joy to look back and see Perl 6 improved due to this grant.</p>
  387. <p>Thank You!</p>
  389. <h1>Completeness Criteria</h1>
  391. <p>Here are the original completeness criteria (in bold) that are listed on the
  392. original grant proposal and my comments on their status:</p>
  394. <ul>
  395. <li><strong>rakudo repository will contain the IO Action Plan document and it will
  396. be fully implemented.</strong>
  397. The promised <a href="">document
  398. exists</a>. It's fully implemented except for three items that I listed on the
  399. IO Action Plan, but which are currently a bit beyond my skill level to
  400. implement. I hope to do them eventually, but outside the scope of this grant.
  401. They are:
  402. <ul>
  403. <li><a href="">IO::Handle's Closed status</a>. My original proposal
  404. would cause some perfomance issues, so it was decided to improve MoarVM
  405. errors instead.</li>
  406. <li><a href="">Optimize multiple stat calls</a>. This
  407. involves creating a new nqp op, with code for it implemented in MoarVM and
  408. JVM backends.</li>
  409. <li><a href="">Use typed exceptions instead of X::AdHoc</a>. I
  410. made typed exceptions be thrown whereever I could. The rest require VM-level
  411. exceptions and is on the same level as the handle closed status issue
  412. (first item above).</li>
  413. </ul></li>
  414. <li><strong>All of the I/O routines will have tests in roast and documented on
  415. If any of the currently implemented but unspecced routines
  416. are decided against being included in Perl 6 Language, their implementation
  417. will no longer be available in Rakudo.</strong>
  418. To the best of my knowledge, this is completed in full.</li>
  419. <li><strong>The test coverage tool will report all I/O routines as covered and the
  420. information will be visible on <a href=""></a> (Perl 6's
  421. Wonderful Test Files)
  422. website. Note: due to current experimental status of the coverage tool, its
  423. report may still show some lines or conditionals untested despite them
  424. actually being tested; however, it will show the lines where routines' names
  425. are specified as covered.</strong>
  426. To the best of my knowledge, all IO routines currently have tests covering
  427. them. Due to its experimental status, the coverage tool shows some
  428. attributes as uncovered. I did manually verify all the attributes/routines
  429. whose names the tool shows as uncovered contain tests for them.
  430. One exception is <code>IO::Notification</code> type (and <code></code> method).
  431. While it has full coverage for
  432. OSX operating system, it lacks it for other OSes. I tried writing some tests for it, but
  433. it looks like the behaviour of the nqp op handling these is broken
  434. on Linux and the class needs more work.</li>
  435. </ul>
  437. <h1>Extra Deliverables</h1>
  439. <p>I produced these extra deliverables while working on the grant:</p>
  441. <ul>
  442. <li><strong><a href="">The Definitive I/O Guide</a>.</strong>
  443. Providing tutorial-like documentation for Perl 6's I/O, including
  444. documenting some of the bad practices I noticed in the ecosystem
  445. (and even a Perl 6 book!) and the correct way to perform those tasks.
  446. (N.B. as I write this report, the guide could still use a few extra
  447. sections to be considered "The Definitive"; I'll write them in upcoming
  448. weeks)</li>
  449. <li><strong>Performance improvements.</strong> I made 23 performance-enhancing commits, with
  450. many commits making things more than 200% faster, with highest improvement
  451. making a routine 6300% faster.</li>
  452. <li><strong><a href=""><code>Trait::IO</code> module</a>.</strong>
  453. Provides <code>does auto-close</code> pseudo-trait to simplify closing of IO handles.</li>
  454. <li><strong><a href=""><code>IO::Path::ChildSecure</code> module</a>.</strong> Due to
  455. large ecosystem usage, <code>IO::Path.child</code> was left as is until 6.d language,
  456. at which point it will be made secure (as outlined in the IO Plan). This
  457. module provides the secure version in the mean time.</li>
  458. <li><strong><a href=""><code>IO::Dir</code> module</a>.</strong> Provides
  459. <code>IO::Path.dir</code>-like functionality, with ability to close open directory
  460. without needing to fully exhaust the returned <code>Seq</code>.</li>
  461. <li><strong><a href=""><code>Die</code> module</a>.</strong> Implements
  462. Perl-5-like behaviour for <code>&amp;die</code> routine.</li>
  463. <li><strong>The "Map of Perl 6 Routines"</strong> (or rather the "table") is available on
  464. <a href=""></a> with its code in
  465. <a href="">perl6/routine-map repo</a>. In near
  466. future, I plan to use it to identify incorrect or incomplete entries in
  467. our <a href="">documentation</a></li>
  468. </ul>
  470. <p>In addition, I plan to complete these modules some time in the future; the
  471. ideas for them were birthed while working on the grant:
  472. - <strong><code>NL</code> module.</strong> Targeted for use in one liners, the module will provide
  473.  <code>$*NL</code> dynvar that behaves like Perl 5's <code>$.</code> variable (providing current
  474.    <code>$*ARGFILES</code>'s file's line number). Its implementation became possible
  475.    thanks to newly-implemented
  476.    <a href=""><code>IO::CatHandle</code> type</a>
  477. - <strong><code>FastIO</code> module.</strong> A re-imagination of core IO, the biggest part of which
  478.    will be the removal of (user-exposed) use of <code>IO::Spec::*</code> types
  479.    and <code>$*SPEC</code>
  480.    variable, which—it is believed—will provide improved performance over
  481.    core IO. The module is a prototype for some of the proposals that were
  482.    made during the IO grant and if it offers significant improvements over
  483.    core IO, its ideas will be used by core IO in future language versions.</p>
  485. <h1>Work Performed in May</h1>
  487. <p>For the work done in May,
  488. many of my commits went into going through the IO routine list, and adding
  489. missing tests and documentation, along with fixing bugs (and reporting new
  490. ones I found).</p>
  492. <p>The major work was implementation of the
  493. <a href="">IO::CatHandle class</a> that fixed
  494. all of the bugs and NYIs with the
  495. <a href="/language/variables#index-entry-%24%2AARGFILES"><code>$*ARGFILES</code></a>. This work
  496. saw the addition of <a href="">372 lines of code</a>,
  497. <a href="">800 lines of tests</a> and <a href="">793 lines of documentation</a>.</p>
  499. <h3>Work by Other Core Members</h3>
  501. <p>jnthn++ completed the <a href="">handle encoding
  502. refactor</a>
  503. that will eventually let us get rid of using libuv for syncronous IO and, more
  504. importantly, allow us to support user-defined encoders/decoders.</p>
  506. <p>Along with fixing a bunch of bugs, this work altered the performance landscape
  507. for IO operations (i.e. some operations may now be a bit faster, others
  508. a bit slower), though overall the performance appeared to stay the same.</p>
  510. <h3>Tickets Fixed</h3>
  512. <ul>
  513. <li><a href="">RT#130456 <code>$*HOME blows up if HOME isn't set</code></a></li>
  514. <li><a href="">RT#126935 <code>bad .perl for paths with pipe characters</code></a> (was already fixed; just added an extra test)</li>
  515. <li><a href="">RT#131185 IO::Path.perl doesn't roundtrip</a></li>
  516. <li><a href="">RT#130454 tmpdir tries to change the current working directory</a> (routine was removed as part of IO work)</li>
  517. <li><a href="">RT#130455 Should I be able to change the temporary directory?</a></li>
  518. <li><a href="">RT#130715 IO::Handle::close shouldn't decide what's a failure</a> (not a bug, but user's confusion; explained and rejected)</li>
  519. <li><a href="">RT#131242 IO::Path.move/.copy hangs/trashes file when target/source are same</a></li>
  520. </ul>
  522. <h1>Grant Commits</h1>
  524. <p>During this grant, I've made 417 commits, that are: 134 Rakudo commits + 23
  525. performance-enchancing Rakudo commits + 114 Perl 6 Specification commits + 146
  526. documentation commits,</p>
  528. <h2>Performance Rakudo Commits</h2>
  530. <p>I've made 23 performance enchancing commits to Rakudo's repository:</p>
  532. <ul>
  533. <li><a href="">4032953</a> <code>Make 75% faster</code></li>
  534. <li><a href="">dcf1bb2</a> <code>Make IO::Spec::Unix.rel2abs 35% faster</code></li>
  535. <li><a href="">c13480c</a> <code>IO::Path.slurp: make 12%-35% faster; propagate Failures</code></li>
  536. <li><a href="">0e36bb2</a> <code>Make IO::Spec::Win32!canon-cat 2.3x faster</code></li>
  537. <li><a href="">c6fd736</a> <code>Make about 63x faster</code></li>
  538. <li><a href="">894ba82</a> <code>Make IO::Spec::Win32.split about 82% faster</code></li>
  539. <li><a href="">277b6e5</a> <code>Make IO::Spec::Unix.rel2abs 2.9x faster</code></li>
  540. <li><a href="">74680d4</a> <code>Make about 80% faster</code></li>
  541. <li><a href="">ff23416</a> <code>Make about 2.1x faster</code></li>
  542. <li><a href="">d272667</a> <code>Make IO::Spec::Unix.join about 40% faster</code></li>
  543. <li><a href="">50429b1</a> <code>Make IO::Handle.put($x) about 5%-35% faster</code></li>
  544. <li><a href="">204ea59</a> <code>Make &amp;say([email protected]) 70%− faster</code></li>
  545. <li><a href="">6d7fc8e</a> <code>Make &amp;put([email protected]) up to 70% faster</code></li>
  546. <li><a href="">76af536</a> <code>Make 1-arg IO::Handle.say up to 2x faster</code></li>
  547. <li><a href="">aa72bde</a> <code>Remove dir's :absolute and :Str; make up to 23% faster</code></li>
  548. <li><a href="">48cf0e6</a> <code>Make 21x faster</code></li>
  549. <li><a href="">c96727a</a> <code>Fix combiners on SPEC::Win32.rel2abs; make 6% faster</code></li>
  550. <li><a href="">0547979</a> <code>Make IO::Spec::Unix.path consistent and 4.6x faster</code></li>
  551. <li><a href="">8992af1</a> <code>Fix IO::Spec::Win32.path and make 26x faster</code></li>
  552. <li><a href="">7d6fa73</a> <code>Make IO::Spec::Win32.catpath 47x faster</code></li>
  553. <li><a href="">494659a</a> <code>Make IO::Spec::Win32.join 26x faster</code></li>
  554. <li><a href="">6ca702f</a> <code>Make IO::Spec::Unix.splitdir 7.7x faster</code></li>
  555. <li><a href="">2816ef7</a> <code>Make IO::Spec::Win32.splitdir 25x faster</code></li>
  556. </ul>
  558. <h2>Non-Performance Rakudo Commits</h2>
  560. <p>Other than perf commits, I've also made 134 commits to the Rakudo's repository:</p>
  562. <ul>
  563. <li><a href="">dd4dfb1</a> <code>Fix crash in IO::Special .WHICH/.Str</code></li>
  564. <li><a href="">76f7187</a> <code>Do not cache IO::Path.e results</code></li>
  565. <li><a href="">212cc8a</a> <code>Remove IO::Path.Bridge</code></li>
  566. <li><a href="">a01d679</a> <code>Remove IO::Path.pipe</code></li>
  567. <li><a href="">55abc6d</a> <code>Improve IO::Path.child perf on *nix</code></li>
  568. <li><a href="">4fdebc9</a> <code>Make IO::Spec::Unix.split 36x Faster</code></li>
  569. <li><a href="">0111f10</a> <code>Make IO::Spec::Unix.catdir 3.9x Faster</code></li>
  570. <li><a href="">fa9aa47</a> <code>Make R::I::SET_LINE_ENDING_ON_HANDLE 4.1x Faster</code></li>
  571. <li><a href="">c360ac2</a> <code>Fix smartmatch of Cool ~~ IO::Path</code></li>
  572. <li><a href="">0c7e4a0</a> <code>Do not capture args in .IO method</code></li>
  573. <li><a href="">9d8d7b2</a> <code>Log all changes to plan made during review period</code></li>
  574. <li><a href="">87987c2</a> <code>Remove</code>role IO<code>and its .umask method</code></li>
  575. <li><a href="">36ad92a</a> <code>Remove 15 methods from IO::Handle</code></li>
  576. <li><a href="">a5800a1</a> <code>Implement IO::Handle.spurt</code></li>
  577. <li><a href="">aa62cd5</a> <code>Remove &amp;tmpdir and &amp;homedir</code></li>
  578. <li><a href="">a0ef2ed</a> <code>Improve &amp;chdir, &amp;indir, and IO::Path.chdir</code></li>
  579. <li><a href="">ca1acb7</a> <code>Fix race in &amp;indir(IO::Path …)</code></li>
  580. <li><a href="">2483d68</a> <code>Fix regression in &amp;chdir's failure mode</code></li>
  581. <li><a href="">5464b82</a> <code>Improve &amp;*chdir</code></li>
  582. <li><a href="">4c31903</a> <code>Add S32-io/chdir-process.t to list of test files to run</code></li>
  583. <li><a href="">cb27bce</a> <code>Clean up &amp;open and</code></li>
  584. <li><a href="">099512b</a> <code>Clean up and improve all spurt routines</code></li>
  585. <li><a href="">b62d1a7</a> <code>Give $*TMPDIR a container</code></li>
  586. <li><a href="">b1e7a01</a> <code>Implement IO::Path.extension 2.0</code></li>
  587. <li><a href="">15a25da</a> <code>Fix ambiguity in empty extension vs no extension</code></li>
  588. <li><a href="">50aea2b</a> <code>Restore IO::Handle.IO</code></li>
  589. <li><a href="">966a7e3</a> <code>Implement IO::Path.concat-with</code></li>
  590. <li><a href="">94a6909</a> <code>Clean up IO::Spec::Unix.abs2rel a bit</code></li>
  591. <li><a href="">a432b3d</a> <code>Remove IO::Path.abspath (part 2)</code></li>
  592. <li><a href="">954e69e</a> <code>Fix return value of IO::Special methods</code></li>
  593. <li><a href="">67f06b2</a> <code>Run S32-io/io-special.t test file</code></li>
  594. <li><a href="">a0b82ed</a> <code>Make IO::Path::* actually instantiate a subclass</code></li>
  595. <li><a href="">0c8bef5</a> <code>Implement :parent in IO::Spec::Cygwin.canonpath</code></li>
  596. <li><a href="">0a442ce</a> <code>Remove type constraint in IO::Spec::Cygwin.canonpath</code></li>
  597. <li><a href="">b4358af</a> <code>Delete code for IO::Spec::Win32.catfile</code></li>
  598. <li><a href="">e681498</a> <code>Make IO::Path throw when path contains NUL byte</code></li>
  599. <li><a href="">6a8d63d</a> <code>Implement :completely param in IO::Path.resolve</code></li>
  600. <li><a href="">b6838ee</a> <code>Remove .f check in .z</code></li>
  601. <li><a href="">184d499</a> <code>Make IO::Handle.Supply respect handle's mode</code></li>
  602. <li><a href="">f1b4af7</a> <code>Implement IO::Handle.slurp</code></li>
  603. <li><a href="">90da80f</a> <code>Rework read methods in IO::Path/IO::Handle</code></li>
  604. <li><a href="">8c09c84</a> <code>Fix symlink and link routines</code></li>
  605. <li><a href="">da1dea2</a> <code>Fix &amp;symlink and &amp;link</code></li>
  606. <li><a href="">7f73f92</a> <code>Make private</code></li>
  607. <li><a href="">ff97083</a> <code>Straighten up rename, move, and copy</code></li>
  608. <li><a href="">0d9ecae</a> <code>Remove multi-dir &amp;mkdir</code></li>
  609. <li><a href="">6ee71c2</a> <code>Coerce mode in IO::Path.mkdir to Int</code></li>
  610. <li><a href="">d46e8df</a> <code>Add IO::Pipe .path and .IO methods</code></li>
  611. <li><a href="">c01ebea</a> <code>Make IO::Path.mkdir return invocant on success</code></li>
  612. <li><a href="">1f689a9</a> <code>Fix up IO::Handle.Str</code></li>
  613. <li><a href="">490ffd1</a> <code>Do not use self.Str in IO::Path errors</code></li>
  614. <li><a href="">40217ed</a> <code>Swap .child to .concat-with in all the guts</code></li>
  615. <li><a href="">fd503f8</a> <code>Revert "Remove</code>role IO<code>and its .umask method"</code></li>
  616. <li><a href="">c95c4a7</a> <code>Make IO::Path/IO::Special do IO role</code></li>
  617. <li><a href="">214198b</a> <code>Implement proper args for IO::Handle.lock</code></li>
  618. <li><a href="">9a2446c</a> <code>Move Bool return value to signature</code></li>
  619. <li><a href="">51e4629</a> <code>Amend rules for last part in IO::Path.resolve</code></li>
  620. <li><a href="">b8458d3</a> <code>Reword</code>method child<code>for cleaner code</code></li>
  621. <li><a href="">1887114</a> <code>Implement IO::Path.child-secure</code></li>
  622. <li><a href="">9d8e391</a> <code>Fix IO::Path.resolve with combiners; timotimo++</code></li>
  623. <li><a href="">0b5a41b</a> <code>Rename IO::Path.concat-with to .add</code></li>
  624. <li><a href="">a98b285</a> <code>Remove IO::Path.child-secure</code></li>
  625. <li><a href="">8bacad8</a> <code>Implement IO::Path.sibling</code></li>
  626. <li><a href="">7112a08</a> <code>Add :D on invocant for file tests</code></li>
  627. <li><a href="">b2a64a1</a> <code>Fix $*CWD inside IO::Path.dir's :test Callable</code></li>
  628. <li><a href="">6fa4bbc</a> <code>Straighten out &amp;slurp/&amp;spurt/&amp;get/&amp;getc/&amp;close</code></li>
  629. <li><a href="">34b58d1</a> <code>Straighten out &amp;lines/&amp;words</code></li>
  630. <li><a href="">d0cd137</a> <code>Make dir take any IO(), not just Cool</code></li>
  631. <li><a href="">7412184</a> <code>Make $*HOME default to Nil, not Any</code></li>
  632. <li><a href="">475d9bc</a> <code>Fix display of backslashes in IO::Path.gist</code></li>
  633. <li><a href="">6ef2abd</a> <code>Revert "Fix display of backslashes in IO::Path.gist"</code></li>
  634. <li><a href="">134efd8</a> <code>Fix .perl for IO::Path and subclasses</code></li>
  635. <li><a href="">69320e7</a> <code>Fix .IO on :U of IO::Path subclasses</code></li>
  636. <li><a href="">eb8d006</a> <code>Make IO::Handle.iterator a private lines iterator</code></li>
  637. <li><a href="">08a8075</a> <code>Fix IO::Path.copy/move when source/target are same</code></li>
  638. <li><a href="">973338a</a> <code>Fix IO::Handle.comb/.split; make them .slurp</code></li>
  639. <li><a href="">b43ed18</a> <code>Make IO::Handle.flush fail with typed exceptions</code></li>
  640. <li><a href="">276d4a7</a> <code>Remove .tell info in IO::Handle.gist</code></li>
  641. <li><a href="">f4309de</a> <code>Fix for combiners on /</code></li>
  642. <li><a href="">06d8800</a> <code>Fix crash when setting .nl-in ...</code></li>
  643. <li><a href="">7e9496d</a> <code>Make IO::Handle.encoding settable via .new</code></li>
  644. <li><a href="">95e49dc</a> <code>Make respect attribute values</code></li>
  645. <li><a href="">6ed14ef</a> <code>Remove</code>:directory<code>from IO::Spec::*.split</code></li>
  646. <li><a href="">9021a48</a> <code>Make a Map instead of Hash</code></li>
  647. <li><a href="">a282b8c</a> <code>Fix IO::Handle.perl.EVAL roundtrippage</code></li>
  648. <li><a href="">a412788</a> <code>Make IO::Path.resolve set CWD to $!SPEC.dir-sep</code></li>
  649. <li><a href="">84502dc</a> <code>Implement $limit arg for IO::Handle.words</code></li>
  650. <li><a href="">613bdcf</a> <code>Make IO::Handle.print/.put sig consistent</code></li>
  651. <li><a href="">0646d3f</a> <code>Allow no-arg &amp;prompt</code></li>
  652. <li><a href="">4a8aa27</a> <code>Implement IO::CatHandle.close</code></li>
  653. <li><a href="">4ad8b17</a> <code>Implement IO::CatHandle.get</code></li>
  654. <li><a href="">3b668b6</a> <code>Implement IO::CatHandle.getc</code></li>
  655. <li><a href="">25b664a</a> <code>Implement IO::CatHandle.words</code></li>
  656. <li><a href="">7ebc386</a> <code>Implement IO::CatHandle.slurp</code></li>
  657. <li><a href="">52b34b7</a> <code>Implement IO::CatHandle.comb/.split</code></li>
  658. <li><a href="">beaa925</a> <code>Implement</code></li>
  659. <li><a href="">ccc90fd</a> <code>Implement IO::CatHandle.readchars</code></li>
  660. <li><a href="">40f4dc9</a> <code>Implement IO::CatHandle.Supply</code></li>
  661. <li><a href="">0c9aea7</a> <code>Implement IO::CatHandle.encoding</code></li>
  662. <li><a href="">ee1e185</a> <code>Implement IO::CatHandle.eof</code></li>
  663. <li><a href="">80686a7</a> <code>Implement IO::CatHandle.t/.path/.IO/.native-descriptor</code></li>
  664. <li><a href="">993de50</a> <code>Implement IO::CatHandle.gist/.Str/.opened/.open</code></li>
  665. <li><a href="">677c4ea</a> <code>Implement IO::CatHandle.lock/.unlock/.seek/.tell</code></li>
  666. <li><a href="">e657ed1</a> <code>Implement IO::CatHandle.chomp/.nl-in</code></li>
  667. <li><a href="">a452e42</a> <code>Implement IO::CatHandle.on-switch</code></li>
  668. <li><a href="">f539a62</a> <code>Swap IO::ArgFiles to IO::CatHandle impl</code></li>
  669. <li><a href="">fa7aa1c</a> <code>Implement IO::CatHandle.perl method</code></li>
  670. <li><a href="">21fd2c4</a> <code>Remove</code></li>
  671. <li><a href="">65941b2</a> <code>Revert "Remove"</code></li>
  672. <li><a href="">a47a78f</a> <code>Remove useless :SPEC/:CWD on some IO subs</code></li>
  673. <li><a href="">d13d9c2</a> <code>Throw out</code></li>
  674. </ul>
  676. <h2>Perl 6 Specification Commits</h2>
  678. <p>I've made 114 commits to the Perl 6 Specification (roast) repository:</p>
  680. <ul>
  681. <li><a href="">63370fe</a> <code>Test IO::Special .WHICH/.Str do not crash</code></li>
  682. <li><a href="">465795c</a> <code>Test IO::Path.lines(*) does not crash</code></li>
  683. <li><a href="">091931a</a> <code>Expand &amp;open tests</code></li>
  684. <li><a href="">8d6ca7a</a> <code>Cover IO::Path.ACCEPTS</code></li>
  685. <li><a href="">14b6844</a> <code>Use Numeric instead of IO role in dispatch test</code></li>
  686. <li><a href="">5a7a365</a> <code>Expand IO::Spec::*.tmpdir tests</code></li>
  687. <li><a href="">f48198f</a> <code>Test &amp;indir</code></li>
  688. <li><a href="">bd46836</a> <code>Amend &amp;indir race tests</code></li>
  689. <li><a href="">04333b3</a> <code>Test &amp;indir fails with non-existent paths by default</code></li>
  690. <li><a href="">73a5448</a> <code>Remove two fudged &amp;chdir tests</code></li>
  691. <li><a href="">86f79ce</a> <code>Expand &amp;chdir tests</code></li>
  692. <li><a href="">430ab89</a> <code>Test &amp;*chdir</code></li>
  693. <li><a href="">86c5f9c</a> <code>Delete qp{} tests</code></li>
  694. <li><a href="">3c4e81b</a> <code>Test IO::Path.Str works as advertised</code></li>
  695. <li><a href="">ba3e7be</a> <code>Merge S32-io/path.t and S32-io/io-path.t</code></li>
  696. <li><a href="">79ff022</a> <code>Expand &amp;spurt and IO::Path.spurt tests</code></li>
  697. <li><a href="">1d4e881</a> <code>Test $*TMPDIR can be</code>temp<code>ed</code></li>
  698. <li><a href="">b23e53e</a> <code>Test IO::Path.extension</code></li>
  699. <li><a href="">2f09f18</a> <code>Fix incorrect test</code></li>
  700. <li><a href="">305f206</a> <code>Test empty-string extensions in IO::Path.extension</code></li>
  701. <li><a href="">0e47f25</a> <code>Test IO::Path.concat-with</code></li>
  702. <li><a href="">e5dc376</a> <code>Expand IO::Path.accessed tests</code></li>
  703. <li><a href="">43ec543</a> <code>Cover methods of IO::Special</code></li>
  704. <li><a href="">bd8d167</a> <code>Test IO::Path::* instantiate a subclass</code></li>
  705. <li><a href="">d8707e7</a> <code>Cover IO::Spec::Unix.basename</code></li>
  706. <li><a href="">c3c51ed</a> <code>Cover IO::Spec::Win32.basename</code></li>
  707. <li><a href="">896033a</a> <code>Cover IO::Spec::QNX.canonpath</code></li>
  708. <li><a href="">7c7fbb4</a> <code>Cover :parent arg in IO::Spec::Cygwin.canonpath</code></li>
  709. <li><a href="">8f73ad8</a> <code>Change \0 roundtrip test to \t roundtrip test</code></li>
  710. <li><a href="">b16fbd3</a> <code>Add tests to check nul byte is rejected</code></li>
  711. <li><a href="">ee7f05b</a> <code>Move is-path sub to top so it can be reused</code></li>
  712. <li><a href="">a809f0f</a> <code>Expand IO::Path.resolve tests</code></li>
  713. <li><a href="">feecaf0</a> <code>Expand file tests</code></li>
  714. <li><a href="">a4c53b0</a> <code>Use bin IO::Handle to test its .Supply</code></li>
  715. <li><a href="">7e4a2ae</a> <code>Swap .slurp-rest to .slurp</code></li>
  716. <li><a href="">d4353b6</a> <code>Rewrite .l on broken symlinks test</code></li>
  717. <li><a href="">416b746</a> <code>Test symlink routines</code></li>
  718. <li><a href="">8fa49e1</a> <code>Test</code>link<code>routines</code></li>
  719. <li><a href="">637500d</a> <code>Spec IO::Pipe.path/.IO returns IO::Path type object</code></li>
  720. <li><a href="">64ff572</a> <code>Cover IO::Path/IO::Pipe's .Str/.path/.IO</code></li>
  721. <li><a href="">4194755</a> <code>Test IO::Handle.lock/.unlock</code></li>
  722. <li><a href="">a716962</a> <code>Amend rules for last part in IO::Path.resolve</code></li>
  723. <li><a href="">f3c5dae</a> <code>Test IO::Path.child-secure</code></li>
  724. <li><a href="">92217f7</a> <code>Test IO::Path.child-secure with combiners</code></li>
  725. <li><a href="">39677c4</a> <code>IO::Path.concat-with got renamed to .add</code></li>
  726. <li><a href="">7a063b5</a> <code>Fudge .child-secure tests</code></li>
  727. <li><a href="">3b36d4d</a> <code>Test IO::Path.sibling</code></li>
  728. <li><a href="">41b7f9f</a> <code>Test $*CWD in IO::Path.dir(:test) Callable</code></li>
  729. <li><a href="">18d9c04</a> <code>Cover IO::Handle.spurt</code></li>
  730. <li><a href="">8f78ca6</a> <code>Test &amp;words with IO::ArgFiles</code></li>
  731. <li><a href="">ea137f6</a> <code>Cover IO::Handle.tell</code></li>
  732. <li><a href="">71a6423</a> <code>Add $*HOME tests</code></li>
  733. <li><a href="">95d68a2</a> <code>Test IO::Path.gist does escapes of backslashes</code></li>
  734. <li><a href="">de89d25</a> <code>Revert "Test IO::Path.gist does escapes of backslashes"</code></li>
  735. <li><a href="">9e8b154</a> <code>Test IO::Handle.close can be...</code></li>
  736. <li><a href="">853f76f</a> <code>Test IO::Pipe.close returns pipe's Proc</code></li>
  737. <li><a href="">d543e75</a> <code>Test IO::Handle.DESTROY closes the handle</code></li>
  738. <li><a href="">1ed18b4</a> <code>Add test for .perl.EVAL roundtrip with combiners</code></li>
  739. <li><a href="">704210c</a> <code>Test we can roundtrip IO::Path.perl</code></li>
  740. <li><a href="">2689eb1</a> <code>Test .IO on :U of IO::Path subclasses</code></li>
  741. <li><a href="">40353f1</a> <code>Test for IO::Handle:D { ... } loops over handle</code></li>
  742. <li><a href="">4fdb850</a> <code>Test IO::Path.copy/move when source/target are same</code></li>
  743. <li><a href="">98917dc</a> <code>Test IO::Path.dir's absoluteness behaviour</code></li>
  744. <li><a href="">71eebc7</a> <code>Test IO::Spec::Unix.extension</code></li>
  745. <li><a href="">4495615</a> <code>Test IO::Handle.flush</code></li>
  746. <li><a href="">60f5a6d</a> <code>Test IO::Handle.t when handle is a TTY</code></li>
  747. <li><a href="">31e3993</a> <code>Test IO::Path*.gist</code></li>
  748. <li><a href="">c481433</a> <code>Test .is-absolute method for / with combiners</code></li>
  749. <li><a href="">8ee0a0a</a> <code>Test IO::Spec::Win32.rel2abs with combiners</code></li>
  750. <li><a href="">a41027f</a> <code>Test can be set</code></li>
  751. <li><a href="">e82b798</a> <code>Test respects attributes</code></li>
  752. <li><a href="">2c29150</a> <code>Test attribute</code></li>
  753. <li><a href="">03ce93b</a> <code>Test IO::Handle.encoding can be set</code></li>
  754. <li><a href="">8ae81c0</a> <code>Test no-arg candidate of &amp;note</code></li>
  755. <li><a href="">fb61306</a> <code>Test attribute</code></li>
  756. <li><a href="">7266522</a> <code>Test return type of IO::Spec::Unix.path</code></li>
  757. <li><a href="">6ac3b4a</a> <code>Test IO::Spec::Win32.path</code></li>
  758. <li><a href="">dbbea15</a> <code>Test IO::Handle.perl.EVAL roundtrips</code></li>
  759. <li><a href="">5eb513c</a> <code>Test IO::Path.resolve sets CWD to $!SPEC.dir-sep</code></li>
  760. <li><a href="">b0c4a7a</a> <code>Test &amp;words, IO::Handle.words, and IO::Path.words</code></li>
  761. <li><a href="">f3d1f67</a> <code>Test $limit arg with &amp;lines/IO::*.lines</code></li>
  762. <li><a href="">4f5589b</a> <code>Add test for handle leak in IO::Path.lines</code></li>
  763. <li><a href="">4d0f97a</a> <code>Add &amp;put/IO::Handle.put tests</code></li>
  764. <li><a href="">125fe18</a> <code>Add &amp;prompt tests</code></li>
  765. <li><a href="">939ca8d</a> <code>Test IO::CatHandle.close</code></li>
  766. <li><a href="">9833012</a> <code>Test IO::CatHandle.get</code></li>
  767. <li><a href="">2f65a72</a> <code>Test IO::CatHandle.getc</code></li>
  768. <li><a href="">a4a7eaa</a> <code>Test IO::CatHandle.words</code></li>
  769. <li><a href="">1131c09</a> <code>Add &amp;put/IO::Handle.put tests</code></li>
  770. <li><a href="">80de9b6</a> <code>Add &amp;prompt tests</code></li>
  771. <li><a href="">bacfd9f</a> <code>Test IO::CatHandle.slurp</code></li>
  772. <li><a href="">e78e3c0</a> <code>Test IO::CatHandle.comb/.split</code></li>
  773. <li><a href="">f1c1125</a> <code>Test</code></li>
  774. <li><a href="">e9e78e1</a> <code>Test IO::CatHandle.readchars</code></li>
  775. <li><a href="">0479087</a> <code>Test IO::CatHandle.Supply</code></li>
  776. <li><a href="">71953e3</a> <code>Test IO::CatHandle.encoding</code></li>
  777. <li><a href="">db4847e</a> <code>Test IO::CatHandle.eof</code></li>
  778. <li><a href="">175ba45</a> <code>Test IO::CatHandle.t/.path/.IO/.native-descriptor</code></li>
  779. <li><a href="">c6cc66a</a> <code>Test IO::CatHandle.gist/.Str/.opened/.open</code></li>
  780. <li><a href="">dcdac1a</a> <code>Test IO::CatHandle.lock/.unlock/.seek/.tell</code></li>
  781. <li><a href="">f48c26e</a> <code>Test IO::CatHandle.chomp/.nl-in</code></li>
  782. <li><a href="">8afd758</a> <code>Test IO::CatHandle.DESTROY</code></li>
  783. <li><a href="">c7eff2b</a> <code>Test IO::CatHandle.on-switch</code></li>
  784. <li><a href="">e87e20d</a> <code>Test</code></li>
  785. <li><a href="">28717f0</a> <code>Test IO::CatHandle.perl method</code></li>
  786. <li><a href="">432bf94</a> <code>Test</code></li>
  787. <li><a href="">ce1b637</a> <code>Test IO::Handle.say</code></li>
  788. <li><a href="">0bb6298</a> <code>Test IO::Handle.print-nl</code></li>
  789. <li><a href="">47c88ab</a> <code>Test IO::Pipe.proc attribute</code></li>
  790. <li><a href="">945621d</a> <code>Test IO::Path.SPEC attribute</code></li>
  791. <li><a href="">5fb4b63</a> <code>Test IO::Path.CWD/.path attributes</code></li>
  792. <li><a href="">d0e5701</a> <code>Test IO::Path.Numeric and other .numeric methods</code></li>
  793. <li><a href="">94d7133</a> <code>Test 0-arg &amp;say/&amp;put/&amp;print</code></li>
  794. <li><a href="">38c61cd</a> <code>Test &amp;slurp() and &amp;slurp(IO::Handle)</code></li>
  795. </ul>
  797. <h2>Perl 6 Documentation Commits</h2>
  799. <p>I've made 146 commits to the Perl 6 Documentation repository:</p>
  801. <ul>
  802. <li><a href="">fd7a41b</a> <code>Improve code example</code></li>
  803. <li><a href="">110efb4</a> <code>No need for</code>.ends-with``</li>
  804. <li><a href="">69d32da</a> <code>Remove IO::Handle.z</code></li>
  805. <li><a href="">d02ae7d</a> <code>Remove and .rwx</code></li>
  806. <li><a href="">ccae74a</a> <code>Fix incorrect information for IO::Path.absolute</code></li>
  807. <li><a href="">3cf943d</a> <code>Expand IO::Path.relative</code></li>
  808. <li><a href="">cc496eb</a> <code>Remove mention of IO.umask</code></li>
  809. <li><a href="">335a98d</a> <code>Remove mention of</code>role IO``</li>
  810. <li><a href="">cc6539b</a> <code>Remove 8 methods from IO::Handle</code></li>
  811. <li><a href="">0511e07</a> <code>Document IO::Spec::*.tmpdir</code></li>
  812. <li><a href="">db36655</a> <code>Remove tip to use $*SPEC to detect OS</code></li>
  813. <li><a href="">839a6b3</a> <code>Expand docs for $*HOME and $*TMPDIR</code></li>
  814. <li><a href="">d050d4b</a> <code>Remove IO::Path.chdir prose</code></li>
  815. <li><a href="">1d0e433</a> <code>Document &amp;chdir</code></li>
  816. <li><a href="">3fdc6dc</a> <code>Document &amp;*chdir</code></li>
  817. <li><a href="">e1a299c</a> <code>Reword "defined as" for &amp;*chdir</code></li>
  818. <li><a href="">e5225be</a> <code>Fix URL to &amp;*chdir</code></li>
  819. <li><a href="">bf377c7</a> <code>Document &amp;indir</code></li>
  820. <li><a href="">5aa614f</a> <code>Improve suggestion for Perl 5's opendir</code></li>
  821. <li><a href="">a53015a</a> <code>Clarify value of IO::Path.path</code></li>
  822. <li><a href="">bdd18f1</a> <code>Fix desc of IO::Path.Str</code></li>
  823. <li><a href="">b78d4fd</a> <code>Include type names in links to methods</code></li>
  824. <li><a href="">b8fba97</a> <code>Point out my $*CWD = chdir … is an error</code></li>
  825. <li><a href="">d5abceb</a> <code>Write docs for all spurt routines</code></li>
  826. <li><a href="">b9e692e</a> <code>Document new IO::Path.extension</code></li>
  827. <li><a href="">65cc372</a> <code>Document IO::Path.concat-with</code></li>
  828. <li><a href="">24a6ea9</a> <code>Toss all of the TODO methods in IO::Spec*</code></li>
  829. <li><a href="">1f75ddc</a> <code>Document IO::Spec*.abs2rel</code></li>
  830. <li><a href="">cc62dd2</a> <code>Kill IO::Path.abspath</code></li>
  831. <li><a href="">1973010</a> <code>Document IO::Path.ACCEPTS</code></li>
  832. <li><a href="">b3a9324</a> <code>Expand/fix up IO::Path.accessed</code></li>
  833. <li><a href="">1cd7de0</a> <code>Fix up type graph</code></li>
  834. <li><a href="">56256d0</a> <code>Minor formatting improvements in IO::Special</code></li>
  835. <li><a href="">184342c</a> <code>Document IO::Special.what</code></li>
  836. <li><a href="">6bd0f98</a> <code>Dissuade readers from using IO::Spec*</code></li>
  837. <li><a href="">7afd9c4</a> <code>Remove unrelated related classes</code></li>
  838. <li><a href="">a43ecb9</a> <code>Document IO::Path's $.SPEC and $.CWD</code></li>
  839. <li><a href="">e9b6809</a> <code>Document IO::Path::* subclasses</code></li>
  840. <li><a href="">9102b51</a> <code>Fix up IO::Path.basename</code></li>
  841. <li><a href="">5c1d3b6</a> <code>Document IO::Spec::Unix.basename</code></li>
  842. <li><a href="">a1cb80b</a> <code>Document IO::Spec::Win32.basename</code></li>
  843. <li><a href="">28b6283</a> <code>Document IO::Spec::*.canonpath</code></li>
  844. <li><a href="">50e5565</a> <code>Document IO::Spec::*.catdir and .catfile</code></li>
  845. <li><a href="">dbdc995</a> <code>Document IO::Spec::*.catpath</code></li>
  846. <li><a href="">0ca2295</a> <code>Reword/expand IO::Path intro prose</code></li>
  847. <li><a href="">45e84ad</a> <code>Move IO::Path.path to attributes</code></li>
  848. <li><a href="">b9de84f</a> <code>Remove DateTime tutorial from IO::Path docs</code></li>
  849. <li><a href="">69b2082</a> <code>Document IO::Path.chdir</code></li>
  850. <li><a href="">d436f3c</a> <code>Document IO::Spec::* don't do any validation</code></li>
  851. <li><a href="">4090446</a> <code>Improve chmod docs</code></li>
  852. <li><a href="">1527d32</a> <code>Document :completely arg to IO::Path.resolve</code></li>
  853. <li><a href="">372545c</a> <code>Straighten up file test docs</code></li>
  854. <li><a href="">a30fae6</a> <code>Avoid potential confusion with use of word "object"</code></li>
  855. <li><a href="">2aa3c9f</a> <code>Document new behaviour of IO::Handle.Supply</code></li>
  856. <li><a href="">56b50fe</a> <code>Document IO::Handle.slurp</code></li>
  857. <li><a href="">017acd4</a> <code>Improve docs for IO::Path.slurp</code></li>
  858. <li><a href="">0f49bb5</a> <code>List Rakudo-supported encodings in open()</code></li>
  859. <li><a href="">e60da5c</a> <code>List utf-* alias examples too since they're common</code></li>
  860. <li><a href="">f83f78c</a> <code>Use idiomatic Perl 6 in example</code></li>
  861. <li><a href="">fff866f</a> <code>Fix docs for symlink/link routines</code></li>
  862. <li><a href="">aeeec94</a> <code>Straighten up copy, move, rename</code></li>
  863. <li><a href="">923ea05</a> <code>Straighten up mkdir docs</code></li>
  864. <li><a href="">47b0526</a> <code>Explicitly spell out caveats of IO::Path.Str</code></li>
  865. <li><a href="">60b9227</a> <code>Change return value for</code>mkdir``</li>
  866. <li><a href="">8d95371</a> <code>Expand IO::Handle/IO::Pipe.path docs</code></li>
  867. <li><a href="">fd8a5ed</a> <code>Document IO::Pipe.path</code></li>
  868. <li><a href="">bd4fa68</a> <code>Document IO::Handle/IO::Pipe.IO</code></li>
  869. <li><a href="">2aaf12a</a> <code>Document IO::Handle.Str</code></li>
  870. <li><a href="">53f2b99</a> <code>Document</code>role IO<code>'s new purpose</code></li>
  871. <li><a href="">160c6a2</a> <code>Document IO::Handle.lock/.unlock</code></li>
  872. <li><a href="">3145979</a> <code>Document IO::Path.child-secure</code></li>
  873. <li><a href="">c5524ef</a> <code>Rename IO::Path.concat-with to .add</code></li>
  874. <li><a href="">81a5806</a> <code>Amend IO::Path.resolve: :completely</code></li>
  875. <li><a href="">6ca67e4</a> <code>Start sketching out Definitive IO Guide™</code></li>
  876. <li><a href="">b9c9117</a> <code>Toss IO::Path.child-secure</code></li>
  877. <li><a href="">61cb776</a> <code>Document IO::Path.sibling</code></li>
  878. <li><a href="">0fc39a6</a> <code>Fix typegraph</code></li>
  879. <li><a href="">9a63dc4</a> <code>Document IO::Path.cleanup</code></li>
  880. <li><a href="">2387ce3</a> <code>Re-write IO::Handle.close docs</code></li>
  881. <li><a href="">0def0d1</a> <code>Amend IO::Handle.close docs</code></li>
  882. <li><a href="">c7e32e2</a> <code>Document IO::Spec::Unix.curupdir</code></li>
  883. <li><a href="">fe489dc</a> <code>Document IO::Spec::Unix.curdir</code></li>
  884. <li><a href="">83d5de0</a> <code>Document IO::Spec::Unix.updir</code></li>
  885. <li><a href="">4804128</a> <code>Document IO::Handle.DESTROY</code></li>
  886. <li><a href="">c991862</a> <code>Add warning to dir about...</code></li>
  887. <li><a href="">eca21ff</a> <code>Document copy/move behaviour for same target/source</code></li>
  888. <li><a href="">6c2b8b2</a> <code>Document IO::Path/IO::Handle.comb</code></li>
  889. <li><a href="">fb29e04</a> <code>Include exception used in IO::Path.resolve</code></li>
  890. <li><a href="">69d473f</a> <code>Document IO::Spec::*.devnull</code></li>
  891. <li><a href="">994d671</a> <code>List IO::Dir as one of the means...</code></li>
  892. <li><a href="">4432ef3</a> <code>Finish up IO::Path.dir docs</code></li>
  893. <li><a href="">64355c8</a> <code>Document IO::Spec::*.dir-sep</code></li>
  894. <li><a href="">914c100</a> <code>Finish up IO::Path.dirname</code></li>
  895. <li><a href="">8d5e31c</a> <code>Document IO::Handle.encoding</code></li>
  896. <li><a href="">d5c36aa</a> <code>Finish off IO::Handle.eof</code></li>
  897. <li><a href="">e9de97e</a> <code>Document IO::Spec::*.extension</code></li>
  898. <li><a href="">bf7ec00</a> <code>Document IO::Handle.flush</code></li>
  899. <li><a href="">25bce38</a> <code>Document IO::Path.succ</code></li>
  900. <li><a href="">8233960</a> <code>Improve IO::Handle.t docs</code></li>
  901. <li><a href="">b4006a2</a> <code>Be explicit what IO::Handle.opened returns</code></li>
  902. <li><a href="">c4f27a7</a> <code>Document IO::Path.pred</code></li>
  903. <li><a href="">860333f</a> <code>Remove entirely-invented "File test operators"</code></li>
  904. <li><a href="">ab0bd7a</a> <code>Document IO::Path.Numeric/.Int</code></li>
  905. <li><a href="">4f81f08</a> <code>Improve IO::Handle.get docs</code></li>
  906. <li><a href="">c45d389</a> <code>Finish off IO::Handle.getc/&amp;getc docs</code></li>
  907. <li><a href="">a4012e0</a> <code>Document IO::Handle.gist</code></li>
  908. <li><a href="">d15b0c7</a> <code>Document IO::Path.gist</code></li>
  909. <li><a href="">1cf6932</a> <code>Document IO::Spec::*.is-absolute</code></li>
  910. <li><a href="">4e88b84</a> <code>Finish up</code></li>
  911. <li><a href="">497e7f7</a> <code>Finish off</code></li>
  912. <li><a href="">f7e75c1</a> <code>Document</code></li>
  913. <li><a href="">e309ddd</a> <code>Finish up &amp;note</code></li>
  914. <li><a href="">81900cb</a> <code>Finish off IO::Path.parent</code></li>
  915. <li><a href="">59cbc38</a> <code>Finish off</code></li>
  916. <li><a href="">b99a666</a> <code>Finish off IO::Path.path/.IO</code></li>
  917. <li><a href="">b070999</a> <code>Document IO::Spec::*.path</code></li>
  918. <li><a href="">bace8ff</a> <code>Document IO::Path*.perl</code></li>
  919. <li><a href="">dfdd845</a> <code>Add "The Basics" section to TDIOG</code></li>
  920. <li><a href="">cdc701e</a> <code>Add "What's an IO::Path Anyway?" section to TDIOG</code></li>
  921. <li><a href="">0d6d058</a> <code>Add "Writing into files" Section to TDIOG</code></li>
  922. <li><a href="">a6365f3</a> <code>Document IO::Handle.words/&amp;words</code></li>
  923. <li><a href="">2e25c82</a> <code>Document IO::Spec::*.join</code></li>
  924. <li><a href="">49e58bd</a> <code>Document IO::Handle.lines</code></li>
  925. <li><a href="">1744820</a> <code>Document IO::Path.lines</code></li>
  926. <li><a href="">f3f70a0</a> <code>Document IO::Path.words</code></li>
  927. <li><a href="">509f0e8</a> <code>Fix incorrect suggested routine</code></li>
  928. <li><a href="">a6f1cbf</a> <code>Fix up IO::Handle.print</code></li>
  929. <li><a href="">8f53830</a> <code>Fix up IO::Handle.print-nl</code></li>
  930. <li><a href="">dc50211</a> <code>Fix &amp;prompt</code></li>
  931. <li><a href="">98965b3</a> <code>Fix up IO::Handle.split</code></li>
  932. <li><a href="">bd702e2</a> <code>Fix up IO::Handle.comb</code></li>
  933. <li><a href="">6dd92b8</a> <code>Document IO::CatHandle</code></li>
  934. <li><a href="">edeb069</a> <code>Document IO::Path.split</code></li>
  935. <li><a href="">2d96596</a> <code>Document IO::Spec::*.split</code></li>
  936. <li><a href="">129c097</a> <code>Document IO::Spec::*.splitdir</code></li>
  937. <li><a href="">b946960</a> <code>Document IO::Spec::*.splitpath</code></li>
  938. <li><a href="">dcd7490</a> <code>Fix rmdir docs</code></li>
  939. <li><a href="">2a7bd17</a> <code>Document IO::Spec::*.rel2abs</code></li>
  940. <li><a href="">f45241f</a> <code>Document IO::Spec::*.rootdir</code></li>
  941. <li><a href="">70a80ec</a> <code>Document IO::Handle.put</code></li>
  942. <li><a href="">6f58ed0</a> <code>Polish IO::Handle.say</code></li>
  943. <li><a href="">3790a0f</a> <code>Polish &amp;put/&amp;print/&amp;say</code></li>
  944. <li><a href="">ebb6f53</a> <code>Document attribute</code></li>
  945. <li><a href="">53c9c91</a> <code>Document IO::Handle.chomp attribute</code></li>
  946. <li><a href="">ca2a3a0</a> <code>Improve &amp;open/ docs</code></li>
  947. <li><a href="">856e846</a> <code>Add Reading From Files section to TDIOG</code></li>
  948. </ul>
  949. ]]>
  950.    </content>
  951. </entry>
  953. <entry>
  954.    <title>Grant Proposal: Revitalize</title>
  955.    <link rel="alternate" type="text/html" href="" />
  956.    <id>,2017://18.3877</id>
  958.    <published>2017-06-06T02:14:22Z</published>
  959.    <updated>2017-06-06T02:21:56Z</updated>
  961.    <summary></summary>
  962.    <author>
  963.        <name>Coke</name>
  965.    </author>
  967.        <category term="Grants" scheme="" />
  970.    <content type="html" xml:lang="en-us" xml:base="">
  972.        <![CDATA[<p>The Grants Committee has received the following grant proposal for the May/June round.
  973. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.</p>
  975. <p>Review the proposal below and please comment here by June 15th, 2017.
  976. The Committee members will start the voting process following that
  977. and the conclusion will be announced approximately in one week.</p>
  979. <h1>Revitalize</h1>
  981. <ul>
  982. <li><p>Name:</p>
  984. <p>André Walker</p></li>
  985. <li><p>Amount Requested:</p>
  987. <p>USD 3,000</p></li>
  988. </ul>
  990. <h2>Synopsis</h2>
  992. <p><a href=""></a> is in need of replacement. I
  993. am applying for finishing the work to replace it.</p>
  995. <h2>Benefits to the Perl Community</h2>
  997. <p>For a long time now, BPO ( has suffered from
  998. <a href="">numerous issues</a>. It
  999. is running on a custom MovableType which we cannot fix, has many
  1000. bugs in its behavior, and frankly requires being replaced.</p>
  1002. <p>There was a grant request to this effect in 2015, but development
  1003. stalled, and I would like to complete the work.  What I
  1004. propose to deliver will have many of the same benefits to the Perl
  1005. Community:</p>
  1007. <ul>
  1008. <li>A simple, stable blogging platform for the Perl Community</li>
  1009. <li>Migrated content from the current system</li>
  1010. <li>Open sourced, hackable, publicly available on Github</li>
  1011. </ul>
  1013. <h2>Deliverables</h2>
  1015. <ul>
  1016. <li>Host source on a public GitHub repository</li>
  1017. <li>Add continuous integration and testing</li>
  1018. <li>Migrate database to schema (posts, comments, and users)</li>
  1019. <li>Basic set of features:
  1020. <ul>
  1021. <li>Registration of new users</li>
  1022. <li>Login / Reset password (something missing in BPO now)</li>
  1023. <li>Content editing: Create / Update / Delete</li>
  1024. <li>Support for tags and categories</li>
  1025. <li>Support for comments (create, delete)</li>
  1026. </ul></li>
  1027. <li>Host a preview version for current users to test</li>
  1028. <li>Release and publish final
  1029. <ul>
  1030. <li>Research and resolve hosting platform</li>
  1031. </ul></li>
  1032. <li>After release, respond to issues as they come up</li>
  1033. </ul>
  1035. <h2>Project Details</h2>
  1037. <p>There are currently at least three forks of the PearlBee project. The original
  1038. project, a fork for the 2015 grant (intended for post-grant merge), and another
  1039. created by myself with additional people from</p>
  1041. <p>I plan to review the differences between the BPO-specific version and the
  1042. upstream and merge any useful commits. I intend to remove the snowflake
  1043. nature of BPO and provide a general-purpose blogging platform software
  1044. in Perl which could be used outside BPO.</p>
  1046. <p>This blogging platform (written to host BPO) will be written on top of Dancer2,
  1047. DBIx::Class, and DBI, with a PostgreSQL database imported from the
  1048. existing BPO, and session management provided by Memcached. The nature
  1049. of the work will allow making adjustments to this setup, as I will
  1050. implement generic interfaces instead of depending on specific
  1051. technologies (PostgreSQL, Memcached, etc.).</p>
  1053. <p>Unit and integration tests will be performed through Travis CI, and source code
  1054. made available on GitHub.</p>
  1056. <p>I'll begin by reviewing the code of both forks and preparing a suitable
  1057. base. The fork on which I worked provides a good start, as it cleaned
  1058. up the code considerably and changed the API endpoints to a more
  1059. consistent interface.</p>
  1061. <p>On top of this, I will work on cherry-picking any valuable commits from Evozon's
  1062. official and BPO forks, as noted above.</p>
  1064. <p>Next, I'll make sure all the basic features work, preferably covered by tests.
  1065. Abilities like registering, adding a post, editing, commenting, etc.</p>
  1067. <p>Then I would focus on migrating the existing database into the new schema. As
  1068. the previous grant request stated, it's possible to reuse the password hashing
  1069. scheme so people can log in without having to reset their passwords. If I
  1070. find this to be an issue, we will work on a plan for migrating users' accounts
  1071. without breakage. Existing user accounts will be covered in the grant
  1072. work regardless of which approach I take.</p>
  1074. <p>I will maintain support for the following content formats: HTML, Rich Text,
  1075. and Markdown. I will also verify whether other formats (such as Textile
  1076. 2) are used and require supporting or converting.</p>
  1078. <p>When migrating the posts, I'll also make sure to maintain a compatibility layer
  1079. with existing URLs, so that search engine content, as well as existing links
  1080. online, are preserved.</p>
  1082. <h2>Inch-stones</h2>
  1084. <ul>
  1085. <li>Setup
  1086. <ul>
  1087. <li>Trello dashboard</li>
  1088. <li>Main Github repo under BPO</li>
  1089. <li>Add any possible contributors</li>
  1090. </ul></li>
  1091. <li>Research
  1092. <ul>
  1093. <li>Review forks and differences</li>
  1094. <li>Classify all tickets</li>
  1095. <li>Decide on commits and changes to merge</li>
  1096. </ul></li>
  1097. <li>Implementation work
  1098. <ul>
  1099. <li>Implement the remaining endpoints</li>
  1100. <li>Add support for content formats</li>
  1101. <li>Verify all required features</li>
  1102. <li>Write tests to verify behavior</li>
  1103. <li>Configure Travis CI to maintain working conditions</li>
  1104. <li>Set up hosted version for public testing</li>
  1105. </ul></li>
  1106. <li>Migration
  1107. <ul>
  1108. <li>User migration</li>
  1109. <li>Content migration</li>
  1110. </ul></li>
  1111. <li>Additional testing
  1112. <ul>
  1113. <li>Open beta test for finished product</li>
  1114. </ul></li>
  1115. </ul>
  1117. <h2>Project Schedule</h2>
  1119. <p>I'll be able to begin work by the end of June.</p>
  1121. <p>I have the following estimates for the timeline, but this will be
  1122. subject to slippage, which I will reflect in reports and communication.</p>
  1124. <ul>
  1125. <li><ol start='1'>
  1126. <li>Setup: 19/06 - 25/06</li>
  1127. </ol></li>
  1128. <li><ol start='2'>
  1129. <li>Research: 26/06 - 09/07</li>
  1130. </ol></li>
  1131. <li><ol start='3'>
  1132. <li>Implementation work: 10/07 - 06/08 (*)</li>
  1133. </ol></li>
  1134. <li><ol start='4'>
  1135. <li>Migration: 07/08 - 10/09 (**)</li>
  1136. </ol></li>
  1137. <li><ol start='5'>
  1138. <li>Open beta: 11/09 - 25/09</li>
  1139. </ol></li>
  1140. <li><ol start='6'>
  1141. <li>Planned release: 26/09</li>
  1142. </ol></li>
  1143. </ul>
  1145. <p><strong>Notes:</strong></p>
  1147. <p>(*) At this point, I should have merged all relevant commits from different
  1148. forks, implemented all the essential features that BPO will require, covered
  1149. with tests. This is just before The Perl Conference in Amsterdam. Ideally, we
  1150. can have a hosted preview version of it for people to experiment.</p>
  1152. <p>(**) This is a longer period because it includes The Perl Conference and a
  1153. personal vacation.</p>
  1155. <h2>Completeness Criteria</h2>
  1157. <ul>
  1158. <li>Users can register, post, and browse</li>
  1159. <li>Blog text, code snippets, quoting, and comments display</li>
  1160. <li>Existing users imported</li>
  1161. <li>Existing content imported from MT to the new platform</li>
  1162. </ul>
  1164. <h2>Bio</h2>
  1166. <p>I am a Brazilian developer currently working in Amsterdam at I've
  1167. been interested in programming since I can remember. I'm quite passionate about
  1168. it! I'm experienced with web development in Perl, having used extensively
  1169. popular frameworks such as Moose, DBIx::Class, and Template::Toolkit. I'm also
  1170. familiar with the project I intend to work on with this grant, PearlBee, since
  1171. I refactored a big chunk of it to make it more extensible and robust, along
  1172. with Sawyer X and other people at</p>
  1174. <p>In 2011, I completed a Google Summer of Code project for the Perl
  1175. Foundation for replacing Catalyst's inversion of control system with
  1176. Bread::Board, mentored by Tomas Doran and Eden Cardim.</p>
  1177. ]]>
  1178.    </content>
  1179. </entry>
  1181. <entry>
  1182.    <title>Perl 5 Core Grant Proposal: Zefram maintaining the Perl 5 core</title>
  1183.    <link rel="alternate" type="text/html" href="" />
  1184.    <id>,2017://18.3875</id>
  1186.    <published>2017-06-04T16:00:01Z</published>
  1187.    <updated>2017-06-04T16:53:00Z</updated>
  1189.    <summary>TPF Board has received a new grant application under Perl 5 Core Maintenance Fund. Before we vote on this proposal, we would like to get feedback from the Perl community. Please leave feedback in the comments or, if you prefer, email your comments to makoto at full name: Andrew Main IRC nickname: Zefram project title: Zefram maintaining the Perl 5 core synopsis I&apos;d like a grant to work on the Perl 5 core, concentrating on tricky and obscure issues...</summary>
  1190.    <author>
  1191.        <name>Makoto Nozaki</name>
  1192.        <uri></uri>
  1193.    </author>
  1195.        <category term="Grants" scheme="" />
  1197.        <category term="Perl 5 Development" scheme="" />
  1200.    <content type="html" xml:lang="en-us" xml:base="">
  1201.        <![CDATA[<p>TPF Board has received a new grant application under <a href="">Perl 5 Core Maintenance Fund</a>.</p>
  1203. <p>Before we vote on this proposal, we would like to get feedback from the Perl community. Please leave feedback in the comments or, if you prefer, email your comments to makoto at</p>
  1205. <p><strong>full name:</strong> Andrew Main </p>
  1207. <p><strong>IRC nickname:</strong> Zefram </p>
  1209. <p><strong>project title:</strong> Zefram maintaining the Perl 5 core </p>
  1211. <h3>synopsis</h3>
  1213. <p>I'd like a grant to work on the Perl 5 core, concentrating on
  1214. tricky and obscure issues of the core internals. The grant would extend
  1215. to the full range of a core committer's activities, along the lines of
  1216. my past work on the core. The grant would allow me to put much more
  1217. time into the Perl 5 core than I have been able to recently. </p>
  1219. <h3>benefits to Perl 5 core maintenance</h3>
  1221. <p>this grant would overcome the present
  1222. limitation on the amount of time I can devote to Perl, namely my need for
  1223. an income. The core would benefit from the increased application of my
  1224. rare knowledge and skills, including my deep understanding of much of
  1225. the core internals. It would especially benefit through the fixing of
  1226. troublesome bugs, and more generally through the addressing of issues
  1227. that require in-depth familiarity with the internals. </p>
  1229. <h3>deliverable elements</h3>
  1231. <p>Like the similar grants for Dave Mitchell, Nicholas Clark, and Tony
  1232. Cook, I do not propose specific technical deliverables for this project.
  1233. The details of what work I tackle would be led by the exigencies of bug
  1234. reports and the direction of discussions among core developers (on the
  1235. public mailing list, the IRC channel, and at times on the closed security
  1236. report mailing list). The main deliverable, then, is time spent on core
  1237. maintenance work, at a rate of USD 50 per hour. </p>
  1239. <p>Secondary deliverables are the required reports, weekly to p5p and
  1240. monthly to TPF. These will list the issues worked on. The grant manager
  1241. representing p5p can see how this relates to my code commits and mailing
  1242. list activity, providing an opportunity to raise any concerns. </p>
  1244. <h3>project details</h3>
  1246. <p>This project covers the full range of core maintenance activity that I
  1247. have performed in the past. Within this mix, I would favour activity
  1248. of which the fewest people are capable: work that takes advantage of my
  1249. particular knowledge of core internals and my particular abilities.
  1250. In general, the highest priority work would be the diagnosis and
  1251. resolution of bugs that appear to involve obscure internals. (Note that
  1252. diagnosis can radically change the appearance of a bug in this respect.) </p>
  1254. <p>Activities covered by this grant would include, but are not limited to: </p>
  1256. <ul>
  1257. <li>diagnosing reported bugs </li>
  1258. <li>fixing bugs, whether reported or not </li>
  1259. <li>discussing core issues on the p5p mailing list </li>
  1260. <li>writing and improving documentation </li>
  1261. <li>code refactoring </li>
  1262. <li>release engineering </li>
  1263. <li>implementation of new core features, where approved through discussion </li>
  1264. </ul>
  1266. <p>Specifically excluded from this project scope is work on unapproved new
  1267. features, because of the risk of (perception of) abuse. I do not seek
  1268. a license to arbitrarily perform major speculative work on TPF's dime.
  1269. But where a new feature has been discussed prior to implementation,
  1270. and there is the appropriate consensus that it should be implemented,
  1271. then the endeavour is no longer an individual's speculation, and that
  1272. implementation work can fall within the scope of this project. Looking
  1273. back at features I have added in the past, I developed call-checker
  1274. and parser plugins without discussion, so they would not have been in
  1275. scope for this type of grant. Subroutine signatures, on the other hand,
  1276. I developed in response to a fairly detailed consensus reached on the
  1277. IRC channel, and with the pumpking's specific blessing, so that would
  1278. have been in scope. </p>
  1280. <h3>project schedule</h3>
  1282. <p>This project covers 400 hours of deliverable work, which I anticipate
  1283. delivering at a rate averaging somewhere between 20 and 30 hours per week,
  1284. thus taking somewhere between three and five months. I am not committing
  1285. to any steady rate of work; extensive variance of time worked from week
  1286. to week is to be expected. I can start as soon as approved. </p>
  1288. <p>If the arrangement of this grant turns out to be satisfactory, I would
  1289. likely seek an extension of it on similar terms. </p>
  1291. <h3>biography</h3>
  1293. <p>I'm a freelance computer programmer. I have been using Perl
  1294. since the year 2000, and C since 1990. I've been contributing to CPAN
  1295. since 2004, now having 76 distributions there, many of them XS language
  1296. extensions. I've been contributing code to the Perl 5 core since 2007.
  1297. My core development work has included diagnosis and fixing of daunting
  1298. bugs, design and implementation of new subsystems (such as parser plugins
  1299. and subroutine signatures), and much discourse on the mailing list. </p>
  1301. <p><strong>endorsed by:</strong> Sawyer X, Matthew Horsfall, Dagfinn Ilmari Mannsaker </p>
  1303. <p><strong>amount requested:</strong> USD 20_000 </p>
  1305. <p><strong>suggestions for grant manager:</strong> Sawyer X has agreed to serve as manager. </p>
  1306. ]]>
  1308.    </content>
  1309. </entry>
  1311. <entry>
  1312.    <title>Perl 6 Travel Grant Proposal</title>
  1313.    <link rel="alternate" type="text/html" href="" />
  1314.    <id>,2017://18.3876</id>
  1316.    <published>2017-06-04T16:00:00Z</published>
  1317.    <updated>2017-06-04T16:53:27Z</updated>
  1319.    <summary>TPF Board has received a new grant application as below. Before we vote on this proposal, we would like to get feedback from the Perl community. Please leave feedback in the comments or, if you prefer, email your comments to makoto at Perl 6 Travel Grant Name: brian d foy Amount Requested: $2,500 Synopsis I&apos;m passing through Europe in June and can extend my trip on either side to visit Perl mongers groups. I&apos;m applying for a travel grant...</summary>
  1320.    <author>
  1321.        <name>Makoto Nozaki</name>
  1322.        <uri></uri>
  1323.    </author>
  1325.        <category term="Grants" scheme="" />
  1327.        <category term="Perl 6 Development" scheme="" />
  1330.    <content type="html" xml:lang="en-us" xml:base="">
  1331.        <![CDATA[<p>TPF Board has received a new grant application as below.</p>
  1333. <p>Before we vote on this proposal, we would like to get feedback from the Perl community. Please leave feedback in the comments or, if you prefer, email your comments to makoto at</p>
  1335. <h3>Perl 6 Travel Grant</h3>
  1337. <ul>
  1338. <li>Name: brian d foy</li>
  1339. <li>Amount Requested: $2,500</li>
  1340. </ul>
  1342. <h3>Synopsis</h3>
  1344. <p>I'm passing through Europe in June and can extend my trip on either
  1345. side to visit Perl mongers groups. I'm applying for a travel grant to
  1346. prepare and present Perl 6 talks to and I'm
  1347. also trying to arrange a talk with I'll also give these talks
  1348. to</p>
  1350. <h3>Benefits to the Perl Community</h3>
  1352. <p>Presentations allow me to test material for the book, get people
  1353. excited about the langauge, give Perl 6 some buzz, and provide
  1354. feedback to the Perl 6 core team about rough spots in the language.</p>
  1356. <h3>Deliverables</h3>
  1358. <ul>
  1359. <li>Present to on June 8</li>
  1360. <li>Present to on June 29</li>
  1361. <li>Post slides to Slideshare</li>
  1362. <li>Write articles based on talks for</li>
  1363. <li>Present same talks to on later dates</li>
  1364. <li>Various social media promotions</li>
  1365. </ul>
  1367. <h3>Bio</h3>
  1369. <p>I'm brian d foy, the author or co-author of many of the existing Perl
  1370. 5 books from O'Reilly Media, including Learning Perl, (Editions 4 to
  1371. 7), Intermediate Perl (Editions 1 and 2), Mastering Perl (Editions 1
  1372. and 2), and Programming Perl (4th Edition). I'm working on Learning
  1373. Perl 6. I've given well-received talks all over the world,</p>
  1374. ]]>
  1376.    </content>
  1377. </entry>
  1379. <entry>
  1380.    <title>The Perl Conference 2017 (formerly known as YAPC::NA) is rapidly approaching, and we believe it will be great.</title>
  1381.    <link rel="alternate" type="text/html" href="" />
  1382.    <id>,2017://18.3874</id>
  1384.    <published>2017-05-26T19:57:46Z</published>
  1385.    <updated>2017-05-26T20:24:33Z</updated>
  1387.    <summary>The Perl Conference, 2017 will be held this year in Washington DC, at the US Patent and Trademark Office, from June 18 through June 23rd. This is the conference that many of us have affectionately known as YAPC::NA::17. If you haven&apos;t registered yet, please do so as soon as possible. We want to make sure we&apos;re providing the best possible experience for our participants, and to that end, accurate registration counts are helpful, plus there is still time to get...</summary>
  1388.    <author>
  1389.        <name>David Oswald</name>
  1391.    </author>
  1393.        <category term="Conferences" scheme="" />
  1395.        <category term="Meetings" scheme="" />
  1397.    <category term="perlconferenceyapcnawashingtonuspto2017" label="Perl Conference YAPC::NA Washington USPTO 2017" scheme="" />
  1399.    <content type="html" xml:lang="en-us" xml:base="">
  1400.        <![CDATA[<p>The Perl Conference, 2017 will be held this year in Washington DC, at the US Patent and Trademark Office, from June 18 through June 23rd.
  1401. This is the conference that many of us have affectionately known as YAPC::NA::17.</p>
  1403. <p>If you haven't registered yet, please do so as soon as possible.
  1404. We want to make sure we're providing the best possible experience for our participants, and to that end, accurate registration counts are helpful, plus there is still time to get the early-bird rate.</p>
  1406. <p>The conference website is: <a href=""></a></p>
  1408. <p>We have talks scheduled from many of the best speakers known to the Perl community;
  1409. Damian Conway, Sawyer X, Randal Schwartz, Mark Jason Dominus, Ricardo Signes, and so many other strong speakers that I feel silly having mentioned the few that I did.</p>
  1411. <p>For those seeking additional enlightenment there are tutorials and master classes offered (by additional registration) on topics such as:</p>
  1413. <ul>
  1414. <li>Perl in a Day (John Anderson)</li>
  1415. <li>Introduction to Moose (Dave Rolsky)</li>
  1416. <li>Perl Second Best Practices (Randal Schwartz)</li>
  1417. <li>Unicode and Associated Punishments (Ricardo Signes)</li>
  1418. </ul>
  1420. <p>The conference is being held in the amazing <a href="" title="US Patent and Trademark Office">US Patent and Trademark Office</a>,
  1421. and will feature an event in the <a href="" title="National Inventors Hall of Fame Museum">National Inventors Hall of Fame Museum</a>.</p>
  1423. <p>Early registration cost is $250, and late registration (Main event T-minus 14 days) will be $350, so there is still time to get your ticket, but you'll want to act sooner than later.</p>
  1425. <p>From the Perl Foundation Conferences Committee I would like to thank all of the organizers who have been working for many months on this, and who are currently neck deep in work tying up loose ends and caring for the many details.
  1426. It will be a great conference because of everyone in the Perl community who attends and participates, but it couldn't be a great conference without those organizers who
  1427. have devoted so much of their time and energy laying the foundation for the rest of us to build upon.</p>
  1429. <p>I am excited and can't wait to see everyone there.</p>
  1430. ]]>
  1432.    </content>
  1433. </entry>
  1435. <entry>
  1436.    <title>Call for Grant Proposals (May 2017 Round)</title>
  1437.    <link rel="alternate" type="text/html" href="" />
  1438.    <id>,2017://18.3873</id>
  1440.    <published>2017-05-23T03:22:10Z</published>
  1441.    <updated>2017-06-06T02:38:24Z</updated>
  1443.    <summary></summary>
  1444.    <author>
  1445.        <name>Coke</name>
  1447.    </author>
  1449.        <category term="Grants" scheme="" />
  1452.    <content type="html" xml:lang="en-us" xml:base="">
  1454.        <![CDATA[<p>The Grants Committee is accepting grant proposals all the time.
  1455. We evaluate them every two months and another evaluation period has come.</p>
  1457. <p>If you have an idea for doing some Perl work that will benefit the Perl
  1458. community, consider sending a grant application. <strong>The application deadline
  1459. for this round is 23:59 June 2nd UTC.</strong> We will publish the received applications, get community
  1460. feedback and conclude acceptance by June 12th.</p>
  1462. <p>To apply, please read <a href="">How
  1463. to Write a Proposal</a>. <a href="">Rules of
  1464. Operation</a> and <a href="">Running Grants List</a> will also help you understand how the grant process works. We also got some <a href="">grant ideas</a> from the community. The format is the same as the previous rounds in 2014-2016.</p>
  1466. <p>We will confirm the receipt of application within 24 hours.</p>
  1468. <p>If you have further questions, please contact me at tpf-grants-secretary at</p>
  1469. ]]>
  1470.    </content>
  1471. </entry>
  1473. <entry>
  1474.    <title>Maintaining the Perl 5 Core: April 2017 report</title>
  1475.    <link rel="alternate" type="text/html" href="" />
  1476.    <id>,2017://18.3872</id>
  1478.    <published>2017-05-14T15:00:00Z</published>
  1479.    <updated>2017-06-04T19:29:03Z</updated>
  1481.    <summary>This is a monthly report by Dave Mitchell on his grant under Perl 5 Core Maintenance Fund. We thank the TPF sponsors to make this grant possible. The main things I did last month were: * Fixd require&apos;s &quot;Can&apos;t locate&quot; error message so that it only mentions @INC if @INC was actually searched, and only gives the &quot;you may need to install&quot; hint if the filename maps to a valid module name. * fixed up the usage of &apos;do&apos; in...</summary>
  1482.    <author>
  1483.        <name>Makoto Nozaki</name>
  1484.        <uri></uri>
  1485.    </author>
  1487.        <category term="Grants" scheme="" />
  1490.    <content type="html" xml:lang="en-us" xml:base="">
  1491.        <![CDATA[<p>This is a monthly report by Dave Mitchell on his grant under <a href="">Perl 5 Core Maintenance Fund</a>. We thank the TPF sponsors to make this grant possible.</p>
  1493. <pre>
  1494. The main things I did last month were:
  1496. * Fixd require's "Can't locate" error message so that it only mentions
  1497.  @INC if @INC was actually searched, and only gives the "you may need to
  1498.  install" hint if the filename maps to a valid module name.
  1500. * fixed up the usage of 'do' in core and made tests run without '.' in
  1501.  @INC.  It turns out that all core tests were being run with '.' in @INC
  1502.  even when that was no longer set by default by the perl interpreter. I
  1503.  removed that, and then fixed up the issues it revealed.
  1505. * I made a start on a proof-of-concept branch which stores short strings
  1506.  directly in the body of an SV.
  1508. </pre>
  1509. ]]>
  1510.        <![CDATA[<pre>
  1511. SUMMARY:
  1512.     14:28 RT #131098 Error message for require "./" is wrong
  1513.      2:26 RT #131124 threads::shared panic
  1514.      2:09 RT #131126 various 5.24.1 test failure issues
  1515.      6:44 fix up usage of 'do' in core
  1516.      6:00 investigate short-string PVs
  1517.      7:30 make tests run without '.' in @INC
  1518.      3:01 perldelta entry for the [email protected] issue
  1519.      0:31 process p5p mailbox
  1520.    ------
  1521.     42:49 TOTAL (HH::MM)
  1524. 185.0 weeks
  1525. 2591.8 total hours
  1526.  14.0 average hours per week
  1528. There are 208 hours left on the grant
  1529. </pre>
  1530. ]]>
  1531.    </content>
  1532. </entry>
  1534. <entry>
  1535.    <title>OSCON 2017 Wednesday Update</title>
  1536.    <link rel="alternate" type="text/html" href="" />
  1537.    <id>,2017://18.3871</id>
  1539.    <published>2017-05-11T09:00:00Z</published>
  1540.    <updated>2017-05-18T07:09:22Z</updated>
  1542.    <summary>The first full day of OSCON sessions, the expo hall, and the hallway track was fun and interesting as always. The Perl Foundation has a great booth this year, right by the O&apos;Reilly booth. We had a great day talking to Perl programmers new and veteran about what&apos;s new in the Perl community and in their Perl projects. It&apos;s also great to see that O&apos;Reilly still shows the love for Perl. We&apos;re looking forward to another great day. If you&apos;re...</summary>
  1543.    <author>
  1544.        <name>Jim Brandt</name>
  1545.        <uri></uri>
  1546.    </author>
  1549.    <content type="html" xml:lang="en-us" xml:base="">
  1550.        <![CDATA[<p>The first full day of <a href="">OSCON</a> sessions, the expo hall, and the hallway track was fun and interesting as always. The Perl Foundation has a great booth this year, right by the O'Reilly booth. We had a great day talking to Perl programmers new and veteran about what's <a href="">new in the Perl community</a> and in their Perl projects.</p>
  1552. <p><img alt="oscon_booth_small.jpg" src="" width="500" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>
  1554. <p>It's also great to see that O'Reilly still shows the love for Perl.</p>
  1556. <p><img alt="oscon_camel_small.jpg" src="" width="500" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>
  1558. <p>We're looking forward to another great day. If you're at OSCON, stop by the booth.</p>
  1559. ]]>
  1561.    </content>
  1562. </entry>
  1564. <entry>
  1565.    <title>TPF at OSCON 2017</title>
  1566.    <link rel="alternate" type="text/html" href="" />
  1567.    <id>,2017://18.3870</id>
  1569.    <published>2017-05-09T09:00:00Z</published>
  1570.    <updated>2017-05-09T14:05:47Z</updated>
  1572.    <summary>The Perl Foundation is excited to have a booth at OSCON again this year. As part of our booth information and outreach we&apos;ve put together a summary of some of the activities in the Perl world from 2016. Perl 5 The Perl 5 teams continued the steady release of new versions of Perl 5 with the release of 5.24 in 2016. This release included enhancements to regular expressions, Unicode 8.0 support, and security updates. A full list of changes for...</summary>
  1573.    <author>
  1574.        <name>Jim Brandt</name>
  1575.        <uri></uri>
  1576.    </author>
  1579.    <content type="html" xml:lang="en-us" xml:base="">
  1580.        <![CDATA[<p>The Perl Foundation is excited to have a booth at <a href="">OSCON</a> again this year. As part of our booth information and outreach we've put together a summary of some of the activities in the Perl world from 2016.</p>
  1582. <h2>Perl 5</h2>
  1584. <p>The Perl 5 teams continued the steady release of new versions of Perl 5 with the release of 5.24 in 2016. This release included enhancements to regular expressions, Unicode 8.0 support, and security updates. A full list of changes for all perl versions is available in the <a href="">perl history part of the perl documentation</a>.</p>
  1586. <p>Looking forward, the upcoming 5.26 release includes numerous speed improvements (including speedier subroutine signatures), Unicode 9.0 support, indented here-documents, and many bug fixes.</p>
  1588. <p>The following events supported continued development on the Perl 5 ecosystem:</p>
  1590. <ul>
  1591. <li><a href="">Perl QA Hackathon</a></li>
  1592. <li><a href="">Perl 5 Core Hackathon</a></li>
  1593. </ul>
  1595. <h2>Perl 6</h2>
  1597. <p>In 2016 the emphasis in Perl 6 development has been on stability and performance enhancements. An example of this is a 2.5x speed improvement for a common task such as reading a CSV file with the pure Perl 6 version of Text::CSV. Also, memory usage has dropped significantly in 2016, making it easier to run Perl 6 on smaller devices. Using Perl 5 modules (e.g. from CPAN) using Inline::Perl5 has also become 2x as fast. Check out <a href="">Perl 6 Weekly</a> if you want to keep up-to-date on Perl 6 development.</p>
  1599. <p>In addition to Perl 6 development, brian d foy held a <a href="">successful Kickstarter campaign</a> to fund writing “Learning Perl 6” in the same tradition as O’Reilly’s successful <a href="">“Learning Perl”</a>.</p>
  1601. <h2>Over $1 Million in Grants Awarded</h2>
  1603. <p>The Perl Foundation passed a significant milestone in 2016: since the Foundation’s inception, we have awarded over one million dollars in grants! With the help of our generous supporters, we have made a significant impact on Perl. That legacy continues with these grants awarded from last year:</p>
  1605. <h3>Perl 5 Grants</h3>
  1607. <ul>
  1608. <li>Maintaining Perl 5 (Tony Cook)</li>
  1609. <li>Maintaining the Perl 5 Core (David Mitchell)</li>
  1610. <li>QA Hackathon Travel (Ricardo Signes)</li>
  1611. </ul>
  1613. <h3>Perl 6 Grants</h3>
  1615. <ul>
  1616. <li>Perl 6 Release Goals (Jonathan Worthington)</li>
  1617. <li>Perl 6 Performance and Reliability Engineering (Jonathan Worthington)</li>
  1618. <li>Update on JavaScript Backend For Rakudo (Paweł Murias)</li>
  1619. </ul>
  1621. <h3>Traditional Grants</h3>
  1623. <ul>
  1624. <li>RPerl User Documentation (Will Braswell)</li>
  1625. <li>Test::Simple/Stream Stabilization (Chad 'Exodist' Granum)</li>
  1626. <li>Test2 Manual (Chad 'Exodist' Granum)</li>
  1627. <li>Standardization, Test Coverage, and Documentation of Perl 6 I/O Routines (Zoffix Znet)</li>
  1628. <li>Improving the Robustness of Unicode Support in Rakudo on MoarVM (Samantha McVey)</li>
  1629. </ul>
  1631. <p>This work is made possible by our many sponsors, including:</p>
  1633. <ul>
  1634. <li><a href=""></a></li>
  1635. <li><a href="">cPanel</a></li>
  1636. <li><a href="">Craigslist</a></li>
  1637. <li><a href="">Bluehost</a></li>
  1638. <li><a href="">Signature Information Solutions LLC</a></li>
  1639. <li><a href="">Grant Street Group</a></li>
  1640. <li><a href="">Assurant Mortgage Solutions</a></li>
  1641. </ul>
  1643. <h2>MetaCPAN</h2>
  1645. <p>MetaCPAN is a search engine for CPAN, the Perl module hosting system ( It has brought a huge amount of new metadata to perl modules since its launch in 2015. This year, the team completed a project to update nearly all of the components of the site and version the API. Details of the project are available in <a href="">blog posts from the team</a>.</p>
  1647. <p>CPAN itself continues to be a reliable resource for providing access to over 180,000 Perl modules in over 35,000 distributions. You can view the status of the CPAN mirror network any time on the <a href="">mirrors site</a> and even see a map of <a href="">where they are located worldwide</a>.</p>
  1649. <h2>Perl Events</h2>
  1651. <p>2016 continued the tradition of holding Perl events worldwide. The Perl Conference (formerly YAPC) was held in Orlando in the US and Romania in Europe along with many smaller workshops and one-day events. <a href="">The Perl Conference in the US</a> this year is in Alexandria, VA, and in <a href="">Amsterdam in Europe</a>.</p>
  1652. ]]>
  1654.    </content>
  1655. </entry>
  1657. </feed>

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid Atom 1.0" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda