[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-07-14T15:50:31Z</updated>
  9.    <generator uri="">Movable Type Pro 6.2.2</generator>
  11. <entry>
  12.    <title>What did I get myself into?</title>
  13.    <link rel="alternate" type="text/html" href="" />
  14.    <id>,2017://18.3888</id>
  16.    <published>2017-07-14T14:42:36Z</published>
  17.    <updated>2017-07-14T15:50:31Z</updated>
  19.    <summary>Too Long need Limerick: There once was a Trog in Houston He saw a committee being reduced in Now he&apos;s a chair and full of despair He needs people introduced in. (It needs work but so does the committee) If you didn&apos;t happen to make it to the TPC this year and see one of the cutest lightening talks this year, this may come as news to you. There is still a Community Advocacy Committee. For those who did see...</summary>
  20.    <author>
  21.        <name>trog</name>
  23.    </author>
  25.        <category term="Meetings" scheme="" />
  28.    <content type="html" xml:lang="en-us" xml:base="">
  29.        <![CDATA[<p>Too Long need Limerick:</p>
  31. <p>There once was a Trog in Houston <br>
  32. He saw a committee being reduced in<br>
  33. Now he's a chair<br>
  34. and full of despair <br>
  35. He needs people introduced in.<br></p>
  37. <p>(It needs work but so does the committee) </p>
  39. <p>If you didn't happen to make it to the TPC this year and see one of the cutest lightening talks this year, this may come as news to you. There is still a Community Advocacy Committee. For those who did see the talk. Check Twitter for updates on the continuing saga of homing so many puppies.</p>
  41. <p>I've taken up the mantle and am working to help you the community in the projects you want to take up. I've got a few of my own I'd like some help with too.
  42. I'm looking for members. </p>
  44. <p>My first goal is to help set up a monthly newsletter with ideas for having Perl Monger meetings. I'd like some help in getting it out, having some content, and other things that would make it easier to have a meeting when you have no idea what to do. </p>
  46. <p>Your first goal is to introduce yourself to me if you want to be involved in either this project or have another one for the community that you think I could help with. </p>
  48. <p>find me on the twitters<br>
  49. @trg404<br>
  50. or find me on<br>
  51. trog<br>
  52. or email me<br>
  53. that twitter handle<br></p>
  54. ]]>
  56.    </content>
  57. </entry>
  59. <entry>
  60.    <title>Grant Report : Robust Perl 6 Unicode Support - July 2017</title>
  61.    <link rel="alternate" type="text/html" href="" />
  62.    <id>,2017://18.3887</id>
  64.    <published>2017-07-09T00:08:36Z</published>
  65.    <updated>2017-07-09T00:15:06Z</updated>
  67.    <summary>Samantha continues to address the addition of Unicode features and long-standing Unicode bugs in her grant to improve the robustness of Unicode support in Rakudo. In her complete blog post, she describes: the Unicode collation algorithm in a very readable overview, and her improvements to enable customizable collation at all three main collation levels (base, diacritic, case); support for the Prepend property in code that avoids grapheme breaking, leading to increases in pass rates for standard tests; fixes to an...</summary>
  68.    <author>
  69.        <name>Mark A Jensen</name>
  71.    </author>
  73.        <category term="Grants" scheme="" />
  75.        <category term="Perl 6 Development" scheme="" />
  77.    <category term="grants" label="grants" scheme="" />
  78.    <category term="unicode" label="unicode" scheme="" />
  80.    <content type="html" xml:lang="en-us" xml:base="">
  81.        <![CDATA[<p>Samantha continues to address the addition of Unicode features
  82. and long-standing Unicode bugs in her <a href="">grant</a> to improve the robustness of Unicode support in Rakudo.</p>
  84. <p>In
  85. <a href="">her complete blog post</a>,
  86. she describes:</p>
  88. <ul>
  89. <li><p>the
  90. <a href="">Unicode collation algorithm</a>
  91. in a very readable overview, and her improvements to enable
  92. customizable collation at all three main collation levels (base,
  93. diacritic, case);</p></li>
  94. <li><p>support for the <code>Prepend</code> property in code that avoids grapheme
  95. breaking, leading to increases in pass rates for standard tests;</p></li>
  96. <li><p>fixes to an old bug in regex matching when both ignorecase and
  97. ignoremark adverbs are in force, along with some refactoring that
  98. eliminates some special-case-hairball code in this area.</p></li>
  99. </ul>
  101. <p>Also, she says: </p>
  103. <p>"I released a new module,
  104. <a href="">Font::QueryInfo</a>,
  105. which allows you to query font information using FreeType. It can even
  106. return the codepoints a font supports as a list of ranges!"</p>
  108. <p>MAJ</p>
  109. ]]>
  111.    </content>
  112. </entry>
  114. <entry>
  115.    <title>Test2 Documentation Grant Progress Report</title>
  116.    <link rel="alternate" type="text/html" href="" />
  117.    <id>,2017://18.3886</id>
  119.    <published>2017-07-06T15:43:05Z</published>
  120.    <updated>2017-07-06T15:44:55Z</updated>
  122.    <summary>In the The Perl Conference month, Chad reports some improvements in the documentation, that is available at, with some new sections. He also used this manual to give two presentations at YAPC....</summary>
  123.    <author>
  124.        <name>Alberto Simões</name>
  125.        <uri></uri>
  126.    </author>
  128.        <category term="Grants" scheme="" />
  130.    <category term="grants" label="grants" scheme="" />
  132.    <content type="html" xml:lang="en-us" xml:base="">
  133.        <![CDATA[<p>In the The Perl Conference month, Chad reports some improvements in the documentation, that is available at, with some new sections. He also used this manual to give two presentations at YAPC.</p>
  134. ]]>
  136.    </content>
  137. </entry>
  139. <entry>
  140.    <title>Perl 6 Travel Grant Approved</title>
  141.    <link rel="alternate" type="text/html" href="" />
  142.    <id>,2017://18.3885</id>
  144.    <published>2017-07-04T02:08:34Z</published>
  145.    <updated>2017-07-04T02:10:05Z</updated>
  147.    <summary>brian d foy&apos;s Perl 6 Travel Grant Proposal has been approved. The payment will be made after Presentation at and Slides are published Articles are published based on the talks Recorded presentation is published Thank you for those who gave us valuable feedback and thank you for the TPF donors for making it happen....</summary>
  148.    <author>
  149.        <name>Makoto Nozaki</name>
  150.        <uri></uri>
  151.    </author>
  153.        <category term="Grants" scheme="" />
  156.    <content type="html" xml:lang="en-us" xml:base="">
  157.        <![CDATA[<p>brian d foy's <a href="">Perl 6 Travel Grant Proposal</a> has been approved.</p>
  159. <p>The payment will be made after</p>
  161. <ul>
  162. <li>Presentation at and</li>
  163. <li>Slides are published</li>
  164. <li>Articles are published based on the talks</li>
  165. <li>Recorded presentation is published</li>
  166. </ul>
  168. <p>Thank you for those who gave us valuable feedback and thank you for the TPF donors for making it happen.</p>
  169. ]]>
  171.    </content>
  172. </entry>
  174. <entry>
  175.    <title>Grant Extension Request: Perl 6 Performance and Reliability Engineering</title>
  176.    <link rel="alternate" type="text/html" href="" />
  177.    <id>,2017://18.3884</id>
  179.    <published>2017-06-13T04:00:00Z</published>
  180.    <updated>2017-06-23T09:02:38Z</updated>
  182.    <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>
  183.    <author>
  184.        <name>Makoto Nozaki</name>
  185.        <uri></uri>
  186.    </author>
  188.        <category term="Grants" scheme="" />
  190.        <category term="Perl 6 Development" scheme="" />
  193.    <content type="html" xml:lang="en-us" xml:base="">
  194.        <![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>
  196. <p>His previous work was successfully delivered as reported in the <a href="">Latest
  197. report</a>.</p>
  199. <p>This funding will come from the <a href="">Perl 6 Core Development
  200. Fund</a>.</p>
  202. <p>Before we make a decision on this extension we would like to have a
  203. period of community consultation that will last for seven days. Please
  204. leave feedback in the comments or, if you prefer, email your comments
  205. to makoto at</p>
  206. ]]>
  208.    </content>
  209. </entry>
  211. <entry>
  212.    <title>Grant Extension Request: Maintaining the Perl 5 Core</title>
  213.    <link rel="alternate" type="text/html" href="" />
  214.    <id>,2017://18.3883</id>
  216.    <published>2017-06-13T02:00:00Z</published>
  217.    <updated>2017-06-13T03:06:20Z</updated>
  219.    <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>
  220.    <author>
  221.        <name>Makoto Nozaki</name>
  222.        <uri></uri>
  223.    </author>
  225.        <category term="Grants" scheme="" />
  227.        <category term="Perl 5 Development" scheme="" />
  230.    <content type="html" xml:lang="en-us" xml:base="">
  231.        <![CDATA[<p><strong>Dave Mitchell</strong> has requested an extension of $20,000 for his
  232. <strong>Maintaining the Perl 5 Core</strong> grant. He also has requested an hourly
  233. rate change from $50 to $60. This will allow him to dedicate another
  234. 333 hours to this work.</p>
  236. <p>During this grant he sent regular reports to the p5p mailing list as
  237. well as providing monthly summary reports that have been published on
  238. this site, the most recent of which are linked below:</p>
  240. <ul>
  241. <li><a href="">May</a></li>
  242. <li><a href="">April</a></li>
  243. <li><a href="">March</a></li>
  244. <li><a href="">February</a></li>
  245. </ul>
  247. <p>Before we make a decision on this extension, we would like to have a
  248. period of community consultation. Please leave feedback in the
  249. comments field below or if you prefer, send email with your comments
  250. to makoto at</p>
  252. <p>If successful this extension will be funded from the <a href="">Perl 5 Core
  253. Maintenance Fund</a>.</p>
  254. ]]>
  256.    </content>
  257. </entry>
  259. <entry>
  260.    <title>Maintaining the Perl 5 Core: May 2017 report</title>
  261.    <link rel="alternate" type="text/html" href="" />
  262.    <id>,2017://18.3882</id>
  264.    <published>2017-06-07T20:00:00Z</published>
  265.    <updated>2017-06-07T23:47:58Z</updated>
  267.    <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>
  268.    <author>
  269.        <name>Makoto Nozaki</name>
  270.        <uri></uri>
  271.    </author>
  273.        <category term="Grants" scheme="" />
  275.        <category term="Perl 5 Development" scheme="" />
  278.    <content type="html" xml:lang="en-us" xml:base="">
  279.        <![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>
  281. <pre>
  282. I spent May mainly:
  284. * heavily reworking perl's internal sprintf implementation.
  285.  I've now pushed a smoking branch containing about 100 commits which
  286.  fixes bugs, audits the code for possible integer overflows, makes the
  287.  code simpler and simpler to understand, and improves performance by
  288.  around 15%.
  290. * Investigating short-string PVs. I've pushed a proof-of-concept branch
  291.  that allows short strings (< 16 bytes) to be stored directly in the
  292.  body of an SV. It also opens up a pathway to improve the COW
  293.  implementation, which I intend to work on at some point.
  295. * helping to write and proofread the perldelta.pod file for the 5.26.0
  296.  release.
  298. SUMMARY:
  299.     96:22 RT #131260 sprintf implementation
  300.      0:58 RT #131296 Time-HiRes/Makefile.PL @INC issue
  301.     18:47 investigate short-string PVs
  302.     16:25 perldelta fixups
  303.      4:34 process p5p mailbox
  304.    ------
  305.    137:06 TOTAL (HH::MM)
  308. 189.4 weeks
  309. 2728.9 total hours
  310.  14.4 average hours per week
  312. There are 71 hours left on the grant
  313. </pre>
  314. ]]>
  316.    </content>
  317. </entry>
  319. <entry>
  320.    <title>The Perl Conference Newsletter</title>
  321.    <link rel="alternate" type="text/html" href="" />
  322.    <id>,2017://18.3881</id>
  324.    <published>2017-06-07T15:27:14Z</published>
  325.    <updated>2017-06-07T15:44:31Z</updated>
  327.    <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>
  328.    <author>
  329.        <name>David Oswald</name>
  331.    </author>
  334.    <content type="html" xml:lang="en-us" xml:base="">
  335.        <![CDATA[<p><strong>In this issue:</strong></p>
  337. <ul>
  338. <li>Sunday Arrival Dinner</li>
  339. <li>Tuesday Night Social: Get to know your fellow attendees!</li>
  340. <li>Tutorials spaces still available</li>
  341. <li>Call for Speakers: Lightning Talks</li>
  342. <li>Call for Volunteers</li>
  343. </ul>
  345. <p><strong>Arrival Dinner - Sunday June 18</strong></p>
  347. <p>Arrangements have been made with Zikrayet Restaurant and Lounge to host a large crowd for The Perl Conference Arrival Dinner.</p>
  349. <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>
  351. <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>
  353. <p>For more information, or to note your intended attendance, please visit: </p>
  355. <p>For more information on the Alt Arrival Dinner: </p>
  357. <p><strong>Tuesday Night Social</strong>
  358. 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>
  360. <p><strong>Tutorials</strong>
  361. 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>
  363. <ul>
  364. <li>John Anderson - Perl in a Day - Sunday 6/18, $50</li>
  365. <li>Dave Rolsky - Introduction to Moose -  Sunday 6/18, $150</li>
  366. <li>Randal Schwartz - Perl Second Best Practices - Sunday 6/18 (half day), $125</li>
  367. <li>Ricardo Signes - Unicode and Associated Punishments - Sunday 6/18 (half day), $100</li>
  368. <li>Mark Jason Dominus - Advanced Parsing Techniques - Thursday 6/22, $75</li>
  369. <li>Mark Jason Dominus - Higher Order Perl - Thursday 6/22, $75</li>
  370. <li>David Golden - MongoDB with Perl - Thursday 6/22, $99</li>
  371. <li>Damian Conway - New Perl - Thursday 6/22, $150</li>
  372. <li>Damian Conway - Parsing with Perl 6 Regexes and Grammars - Thursday 6/23, $150</li>
  373. </ul>
  375. <p><strong>Call for Speakers: Lightning Talks</strong></p>
  377. <p>This year there are THREE sessions of lightning talks! Each  will have about 10 Lightning Talks of 5 minutes each.</p>
  379. <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>
  381. <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>
  383. <p><strong>Submit your talk here: <a href=""></a>.</strong></p>
  385. <p><strong>Call for Volunteers</strong>
  386. Volunteer Registration Form Here:   <a href=""></a></p>
  388. <p><strong>Setup / Cleanup Crew</strong>
  389. 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>
  391. <p>On Thursday and Friday, we will need to go through everything that is left over, box it, and ship it out.</p>
  393. <p><strong>Room Moderator</strong>
  394. 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>
  396. <p><strong>Videographer</strong>
  397. 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>
  399. <p><strong>Assistant Videographer</strong>
  400. Performs tasks as assigned by the videographer.  Acts as a runner if something is needed in the room.</p>
  402. <p><strong>Registration Desk</strong>
  403. Assists people with checking in.  Serves as an information desk attendant.  Assists attendees with retail purchases.</p>
  404. ]]>
  406.    </content>
  407. </entry>
  409. <entry>
  410.    <title>Welcoming New Chair for the Community Advocacy Committee</title>
  411.    <link rel="alternate" type="text/html" href="" />
  412.    <id>,2017://18.3880</id>
  414.    <published>2017-06-06T08:31:01Z</published>
  415.    <updated>2017-06-06T12:44:18Z</updated>
  417.    <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>
  418.    <author>
  419.        <name>Jim Brandt</name>
  420.        <uri></uri>
  421.    </author>
  424.    <content type="html" xml:lang="en-us" xml:base="">
  425.        <![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>
  427. <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>
  428. ]]>
  430.    </content>
  431. </entry>
  433. <entry>
  434.    <title>Grant Report : Robust Perl 6 Unicode Support - June 2017</title>
  435.    <link rel="alternate" type="text/html" href="" />
  436.    <id>,2017://18.3879</id>
  438.    <published>2017-06-06T03:26:18Z</published>
  439.    <updated>2017-06-06T03:45:24Z</updated>
  441.    <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>
  442.    <author>
  443.        <name>Mark A Jensen</name>
  445.    </author>
  447.        <category term="Grants" scheme="" />
  449.    <category term="grants" label="grants" scheme="" />
  450.    <category term="perl6" label="perl6" scheme="" />
  451.    <category term="rakudo" label="rakudo" scheme="" />
  452.    <category term="unicode" label="unicode" scheme="" />
  454.    <content type="html" xml:lang="en-us" xml:base="">
  455.        <![CDATA[<p>Samantha McVey has made progress on her
  456. <a href="">grant</a> to
  457. improve the robustness of Unicode support in Rakudo. She is working in
  458. the following repos: <a href=""></a>,
  459. <a href=""></a>.</p>
  461. <p>Here are a few highlights from
  462. <a href="">her complete blog post</a>.</p>
  464. <ul>
  465. <li>"In Roast there is a
  466. <a href="">new version of GraphemeBreakTest.t</a>.</li>
  467. </ul>
  469. <blockquote>
  470.  <p>The script tests the contents of each grapheme individually from the
  471. GraphemeClusterBreak.txt file from the Unicode 9.0 test suite.</p>
  473. <p>Previously we only checked the total number of ‘.chars’ each for the
  474. string as a whole. Obviously we want something more precise than that,
  475. since the test specifies the location of each of the breaks between
  476. codepoints. The new code checks that codepoints are put in the correct
  477. graphemes in the proper order. In addition we also check the string
  478. length as well.</p>
  480. <p>This new test uses a grammar to parse the file and generally is much
  481. more robust than the previous script.</p>
  482. </blockquote>
  484. <ul>
  485. <li><p>I have some currently unmerged tests which need to wait to be
  486. merged, although sections of it are complete and are being
  487. incorporated into the larger Unicode Database Retrofit, reusing this
  488. code.</p></li>
  489. <li><p>I have written grammars and modules to process and provide data on
  490. the <a href="">PropertyValueAliases</a>
  491. and <a href="">PropertyAliases</a>.
  492. They will be used for testing that all of the canonical property names and all the property
  493. values themselves properly resolve to separate property codes, as well
  494. as that they are usable in regex.</p></li>
  495. <li><p>As part of my grant work I am working on making Unicode property
  496. values distinct per property, and also on allowing all canonical
  497. Unicode property values to work.</p></li>
  498. <li><p>I've also started adding some documentation to my Unicode-Grant wiki
  499. with information about what is enclosed in each Unicode data files;
  500. there are a few other pages as
  501. well. <a href="">This wiki</a>
  502. is planned to be expanded to have many more sections than it does
  503. currently."</p></li>
  504. </ul>
  506. <p>MAJ</p>
  507. ]]>
  509.    </content>
  510. </entry>
  512. <entry>
  513.    <title>Perl 6 IO Grant: May 2017 Report (Complete)</title>
  514.    <link rel="alternate" type="text/html" href="" />
  515.    <id>,2017://18.3878</id>
  517.    <published>2017-06-06T02:30:11Z</published>
  518.    <updated>2017-06-06T02:53:43Z</updated>
  520.    <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>
  521.    <author>
  522.        <name>Coke</name>
  524.    </author>
  526.        <category term="Grants" scheme="" />
  529.    <content type="html" xml:lang="en-us" xml:base="">
  530.        <![CDATA[<p><em>Zoffix Znet provided this report on May 29, 2017</em></p>
  532. <p><em>The Grants Committee will vote on its completion and payment.
  533. If you have feedback or questions, please comment here</em></p>
  535. <h1>COMPLETION Report / Perl 6 IO TPF Grant</h1>
  537. <p>This document is the May, 2017 progress report for <a href="">TPF Standardization,
  538. Test Coverage, and Documentation of Perl 6 I/O Routines
  539. grant</a>. I believe I reasonably satisfied the goals of the grant and consider it
  540. completed. This is the final report and may reference some of the
  541. work/commits previously mentioned in monthly reports.</p>
  542. ]]>
  543.        <![CDATA[<h1>Thank You!</h1>
  545. <p>I'd like to thank all the donors that
  546. <a href="">support The Perl Foundation</a>
  547. who made this grant possible. It was a wonderful learning experience for me,
  548. and it brings me joy to look back and see Perl 6 improved due to this grant.</p>
  550. <p>Thank You!</p>
  552. <h1>Completeness Criteria</h1>
  554. <p>Here are the original completeness criteria (in bold) that are listed on the
  555. original grant proposal and my comments on their status:</p>
  557. <ul>
  558. <li><strong>rakudo repository will contain the IO Action Plan document and it will
  559. be fully implemented.</strong>
  560. The promised <a href="">document
  561. exists</a>. It's fully implemented except for three items that I listed on the
  562. IO Action Plan, but which are currently a bit beyond my skill level to
  563. implement. I hope to do them eventually, but outside the scope of this grant.
  564. They are:
  565. <ul>
  566. <li><a href="">IO::Handle's Closed status</a>. My original proposal
  567. would cause some perfomance issues, so it was decided to improve MoarVM
  568. errors instead.</li>
  569. <li><a href="">Optimize multiple stat calls</a>. This
  570. involves creating a new nqp op, with code for it implemented in MoarVM and
  571. JVM backends.</li>
  572. <li><a href="">Use typed exceptions instead of X::AdHoc</a>. I
  573. made typed exceptions be thrown whereever I could. The rest require VM-level
  574. exceptions and is on the same level as the handle closed status issue
  575. (first item above).</li>
  576. </ul></li>
  577. <li><strong>All of the I/O routines will have tests in roast and documented on
  578. If any of the currently implemented but unspecced routines
  579. are decided against being included in Perl 6 Language, their implementation
  580. will no longer be available in Rakudo.</strong>
  581. To the best of my knowledge, this is completed in full.</li>
  582. <li><strong>The test coverage tool will report all I/O routines as covered and the
  583. information will be visible on <a href=""></a> (Perl 6's
  584. Wonderful Test Files)
  585. website. Note: due to current experimental status of the coverage tool, its
  586. report may still show some lines or conditionals untested despite them
  587. actually being tested; however, it will show the lines where routines' names
  588. are specified as covered.</strong>
  589. To the best of my knowledge, all IO routines currently have tests covering
  590. them. Due to its experimental status, the coverage tool shows some
  591. attributes as uncovered. I did manually verify all the attributes/routines
  592. whose names the tool shows as uncovered contain tests for them.
  593. One exception is <code>IO::Notification</code> type (and <code></code> method).
  594. While it has full coverage for
  595. OSX operating system, it lacks it for other OSes. I tried writing some tests for it, but
  596. it looks like the behaviour of the nqp op handling these is broken
  597. on Linux and the class needs more work.</li>
  598. </ul>
  600. <h1>Extra Deliverables</h1>
  602. <p>I produced these extra deliverables while working on the grant:</p>
  604. <ul>
  605. <li><strong><a href="">The Definitive I/O Guide</a>.</strong>
  606. Providing tutorial-like documentation for Perl 6's I/O, including
  607. documenting some of the bad practices I noticed in the ecosystem
  608. (and even a Perl 6 book!) and the correct way to perform those tasks.
  609. (N.B. as I write this report, the guide could still use a few extra
  610. sections to be considered "The Definitive"; I'll write them in upcoming
  611. weeks)</li>
  612. <li><strong>Performance improvements.</strong> I made 23 performance-enhancing commits, with
  613. many commits making things more than 200% faster, with highest improvement
  614. making a routine 6300% faster.</li>
  615. <li><strong><a href=""><code>Trait::IO</code> module</a>.</strong>
  616. Provides <code>does auto-close</code> pseudo-trait to simplify closing of IO handles.</li>
  617. <li><strong><a href=""><code>IO::Path::ChildSecure</code> module</a>.</strong> Due to
  618. large ecosystem usage, <code>IO::Path.child</code> was left as is until 6.d language,
  619. at which point it will be made secure (as outlined in the IO Plan). This
  620. module provides the secure version in the mean time.</li>
  621. <li><strong><a href=""><code>IO::Dir</code> module</a>.</strong> Provides
  622. <code>IO::Path.dir</code>-like functionality, with ability to close open directory
  623. without needing to fully exhaust the returned <code>Seq</code>.</li>
  624. <li><strong><a href=""><code>Die</code> module</a>.</strong> Implements
  625. Perl-5-like behaviour for <code>&amp;die</code> routine.</li>
  626. <li><strong>The "Map of Perl 6 Routines"</strong> (or rather the "table") is available on
  627. <a href=""></a> with its code in
  628. <a href="">perl6/routine-map repo</a>. In near
  629. future, I plan to use it to identify incorrect or incomplete entries in
  630. our <a href="">documentation</a></li>
  631. </ul>
  633. <p>In addition, I plan to complete these modules some time in the future; the
  634. ideas for them were birthed while working on the grant:
  635. - <strong><code>NL</code> module.</strong> Targeted for use in one liners, the module will provide
  636.  <code>$*NL</code> dynvar that behaves like Perl 5's <code>$.</code> variable (providing current
  637.    <code>$*ARGFILES</code>'s file's line number). Its implementation became possible
  638.    thanks to newly-implemented
  639.    <a href=""><code>IO::CatHandle</code> type</a>
  640. - <strong><code>FastIO</code> module.</strong> A re-imagination of core IO, the biggest part of which
  641.    will be the removal of (user-exposed) use of <code>IO::Spec::*</code> types
  642.    and <code>$*SPEC</code>
  643.    variable, which—it is believed—will provide improved performance over
  644.    core IO. The module is a prototype for some of the proposals that were
  645.    made during the IO grant and if it offers significant improvements over
  646.    core IO, its ideas will be used by core IO in future language versions.</p>
  648. <h1>Work Performed in May</h1>
  650. <p>For the work done in May,
  651. many of my commits went into going through the IO routine list, and adding
  652. missing tests and documentation, along with fixing bugs (and reporting new
  653. ones I found).</p>
  655. <p>The major work was implementation of the
  656. <a href="">IO::CatHandle class</a> that fixed
  657. all of the bugs and NYIs with the
  658. <a href="/language/variables#index-entry-%24%2AARGFILES"><code>$*ARGFILES</code></a>. This work
  659. saw the addition of <a href="">372 lines of code</a>,
  660. <a href="">800 lines of tests</a> and <a href="">793 lines of documentation</a>.</p>
  662. <h3>Work by Other Core Members</h3>
  664. <p>jnthn++ completed the <a href="">handle encoding
  665. refactor</a>
  666. that will eventually let us get rid of using libuv for syncronous IO and, more
  667. importantly, allow us to support user-defined encoders/decoders.</p>
  669. <p>Along with fixing a bunch of bugs, this work altered the performance landscape
  670. for IO operations (i.e. some operations may now be a bit faster, others
  671. a bit slower), though overall the performance appeared to stay the same.</p>
  673. <h3>Tickets Fixed</h3>
  675. <ul>
  676. <li><a href="">RT#130456 <code>$*HOME blows up if HOME isn't set</code></a></li>
  677. <li><a href="">RT#126935 <code>bad .perl for paths with pipe characters</code></a> (was already fixed; just added an extra test)</li>
  678. <li><a href="">RT#131185 IO::Path.perl doesn't roundtrip</a></li>
  679. <li><a href="">RT#130454 tmpdir tries to change the current working directory</a> (routine was removed as part of IO work)</li>
  680. <li><a href="">RT#130455 Should I be able to change the temporary directory?</a></li>
  681. <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>
  682. <li><a href="">RT#131242 IO::Path.move/.copy hangs/trashes file when target/source are same</a></li>
  683. </ul>
  685. <h1>Grant Commits</h1>
  687. <p>During this grant, I've made 417 commits, that are: 134 Rakudo commits + 23
  688. performance-enchancing Rakudo commits + 114 Perl 6 Specification commits + 146
  689. documentation commits,</p>
  691. <h2>Performance Rakudo Commits</h2>
  693. <p>I've made 23 performance enchancing commits to Rakudo's repository:</p>
  695. <ul>
  696. <li><a href="">4032953</a> <code>Make 75% faster</code></li>
  697. <li><a href="">dcf1bb2</a> <code>Make IO::Spec::Unix.rel2abs 35% faster</code></li>
  698. <li><a href="">c13480c</a> <code>IO::Path.slurp: make 12%-35% faster; propagate Failures</code></li>
  699. <li><a href="">0e36bb2</a> <code>Make IO::Spec::Win32!canon-cat 2.3x faster</code></li>
  700. <li><a href="">c6fd736</a> <code>Make about 63x faster</code></li>
  701. <li><a href="">894ba82</a> <code>Make IO::Spec::Win32.split about 82% faster</code></li>
  702. <li><a href="">277b6e5</a> <code>Make IO::Spec::Unix.rel2abs 2.9x faster</code></li>
  703. <li><a href="">74680d4</a> <code>Make about 80% faster</code></li>
  704. <li><a href="">ff23416</a> <code>Make about 2.1x faster</code></li>
  705. <li><a href="">d272667</a> <code>Make IO::Spec::Unix.join about 40% faster</code></li>
  706. <li><a href="">50429b1</a> <code>Make IO::Handle.put($x) about 5%-35% faster</code></li>
  707. <li><a href="">204ea59</a> <code>Make &amp;say([email protected]) 70%− faster</code></li>
  708. <li><a href="">6d7fc8e</a> <code>Make &amp;put([email protected]) up to 70% faster</code></li>
  709. <li><a href="">76af536</a> <code>Make 1-arg IO::Handle.say up to 2x faster</code></li>
  710. <li><a href="">aa72bde</a> <code>Remove dir's :absolute and :Str; make up to 23% faster</code></li>
  711. <li><a href="">48cf0e6</a> <code>Make 21x faster</code></li>
  712. <li><a href="">c96727a</a> <code>Fix combiners on SPEC::Win32.rel2abs; make 6% faster</code></li>
  713. <li><a href="">0547979</a> <code>Make IO::Spec::Unix.path consistent and 4.6x faster</code></li>
  714. <li><a href="">8992af1</a> <code>Fix IO::Spec::Win32.path and make 26x faster</code></li>
  715. <li><a href="">7d6fa73</a> <code>Make IO::Spec::Win32.catpath 47x faster</code></li>
  716. <li><a href="">494659a</a> <code>Make IO::Spec::Win32.join 26x faster</code></li>
  717. <li><a href="">6ca702f</a> <code>Make IO::Spec::Unix.splitdir 7.7x faster</code></li>
  718. <li><a href="">2816ef7</a> <code>Make IO::Spec::Win32.splitdir 25x faster</code></li>
  719. </ul>
  721. <h2>Non-Performance Rakudo Commits</h2>
  723. <p>Other than perf commits, I've also made 134 commits to the Rakudo's repository:</p>
  725. <ul>
  726. <li><a href="">dd4dfb1</a> <code>Fix crash in IO::Special .WHICH/.Str</code></li>
  727. <li><a href="">76f7187</a> <code>Do not cache IO::Path.e results</code></li>
  728. <li><a href="">212cc8a</a> <code>Remove IO::Path.Bridge</code></li>
  729. <li><a href="">a01d679</a> <code>Remove IO::Path.pipe</code></li>
  730. <li><a href="">55abc6d</a> <code>Improve IO::Path.child perf on *nix</code></li>
  731. <li><a href="">4fdebc9</a> <code>Make IO::Spec::Unix.split 36x Faster</code></li>
  732. <li><a href="">0111f10</a> <code>Make IO::Spec::Unix.catdir 3.9x Faster</code></li>
  733. <li><a href="">fa9aa47</a> <code>Make R::I::SET_LINE_ENDING_ON_HANDLE 4.1x Faster</code></li>
  734. <li><a href="">c360ac2</a> <code>Fix smartmatch of Cool ~~ IO::Path</code></li>
  735. <li><a href="">0c7e4a0</a> <code>Do not capture args in .IO method</code></li>
  736. <li><a href="">9d8d7b2</a> <code>Log all changes to plan made during review period</code></li>
  737. <li><a href="">87987c2</a> <code>Remove</code>role IO<code>and its .umask method</code></li>
  738. <li><a href="">36ad92a</a> <code>Remove 15 methods from IO::Handle</code></li>
  739. <li><a href="">a5800a1</a> <code>Implement IO::Handle.spurt</code></li>
  740. <li><a href="">aa62cd5</a> <code>Remove &amp;tmpdir and &amp;homedir</code></li>
  741. <li><a href="">a0ef2ed</a> <code>Improve &amp;chdir, &amp;indir, and IO::Path.chdir</code></li>
  742. <li><a href="">ca1acb7</a> <code>Fix race in &amp;indir(IO::Path …)</code></li>
  743. <li><a href="">2483d68</a> <code>Fix regression in &amp;chdir's failure mode</code></li>
  744. <li><a href="">5464b82</a> <code>Improve &amp;*chdir</code></li>
  745. <li><a href="">4c31903</a> <code>Add S32-io/chdir-process.t to list of test files to run</code></li>
  746. <li><a href="">cb27bce</a> <code>Clean up &amp;open and</code></li>
  747. <li><a href="">099512b</a> <code>Clean up and improve all spurt routines</code></li>
  748. <li><a href="">b62d1a7</a> <code>Give $*TMPDIR a container</code></li>
  749. <li><a href="">b1e7a01</a> <code>Implement IO::Path.extension 2.0</code></li>
  750. <li><a href="">15a25da</a> <code>Fix ambiguity in empty extension vs no extension</code></li>
  751. <li><a href="">50aea2b</a> <code>Restore IO::Handle.IO</code></li>
  752. <li><a href="">966a7e3</a> <code>Implement IO::Path.concat-with</code></li>
  753. <li><a href="">94a6909</a> <code>Clean up IO::Spec::Unix.abs2rel a bit</code></li>
  754. <li><a href="">a432b3d</a> <code>Remove IO::Path.abspath (part 2)</code></li>
  755. <li><a href="">954e69e</a> <code>Fix return value of IO::Special methods</code></li>
  756. <li><a href="">67f06b2</a> <code>Run S32-io/io-special.t test file</code></li>
  757. <li><a href="">a0b82ed</a> <code>Make IO::Path::* actually instantiate a subclass</code></li>
  758. <li><a href="">0c8bef5</a> <code>Implement :parent in IO::Spec::Cygwin.canonpath</code></li>
  759. <li><a href="">0a442ce</a> <code>Remove type constraint in IO::Spec::Cygwin.canonpath</code></li>
  760. <li><a href="">b4358af</a> <code>Delete code for IO::Spec::Win32.catfile</code></li>
  761. <li><a href="">e681498</a> <code>Make IO::Path throw when path contains NUL byte</code></li>
  762. <li><a href="">6a8d63d</a> <code>Implement :completely param in IO::Path.resolve</code></li>
  763. <li><a href="">b6838ee</a> <code>Remove .f check in .z</code></li>
  764. <li><a href="">184d499</a> <code>Make IO::Handle.Supply respect handle's mode</code></li>
  765. <li><a href="">f1b4af7</a> <code>Implement IO::Handle.slurp</code></li>
  766. <li><a href="">90da80f</a> <code>Rework read methods in IO::Path/IO::Handle</code></li>
  767. <li><a href="">8c09c84</a> <code>Fix symlink and link routines</code></li>
  768. <li><a href="">da1dea2</a> <code>Fix &amp;symlink and &amp;link</code></li>
  769. <li><a href="">7f73f92</a> <code>Make private</code></li>
  770. <li><a href="">ff97083</a> <code>Straighten up rename, move, and copy</code></li>
  771. <li><a href="">0d9ecae</a> <code>Remove multi-dir &amp;mkdir</code></li>
  772. <li><a href="">6ee71c2</a> <code>Coerce mode in IO::Path.mkdir to Int</code></li>
  773. <li><a href="">d46e8df</a> <code>Add IO::Pipe .path and .IO methods</code></li>
  774. <li><a href="">c01ebea</a> <code>Make IO::Path.mkdir return invocant on success</code></li>
  775. <li><a href="">1f689a9</a> <code>Fix up IO::Handle.Str</code></li>
  776. <li><a href="">490ffd1</a> <code>Do not use self.Str in IO::Path errors</code></li>
  777. <li><a href="">40217ed</a> <code>Swap .child to .concat-with in all the guts</code></li>
  778. <li><a href="">fd503f8</a> <code>Revert "Remove</code>role IO<code>and its .umask method"</code></li>
  779. <li><a href="">c95c4a7</a> <code>Make IO::Path/IO::Special do IO role</code></li>
  780. <li><a href="">214198b</a> <code>Implement proper args for IO::Handle.lock</code></li>
  781. <li><a href="">9a2446c</a> <code>Move Bool return value to signature</code></li>
  782. <li><a href="">51e4629</a> <code>Amend rules for last part in IO::Path.resolve</code></li>
  783. <li><a href="">b8458d3</a> <code>Reword</code>method child<code>for cleaner code</code></li>
  784. <li><a href="">1887114</a> <code>Implement IO::Path.child-secure</code></li>
  785. <li><a href="">9d8e391</a> <code>Fix IO::Path.resolve with combiners; timotimo++</code></li>
  786. <li><a href="">0b5a41b</a> <code>Rename IO::Path.concat-with to .add</code></li>
  787. <li><a href="">a98b285</a> <code>Remove IO::Path.child-secure</code></li>
  788. <li><a href="">8bacad8</a> <code>Implement IO::Path.sibling</code></li>
  789. <li><a href="">7112a08</a> <code>Add :D on invocant for file tests</code></li>
  790. <li><a href="">b2a64a1</a> <code>Fix $*CWD inside IO::Path.dir's :test Callable</code></li>
  791. <li><a href="">6fa4bbc</a> <code>Straighten out &amp;slurp/&amp;spurt/&amp;get/&amp;getc/&amp;close</code></li>
  792. <li><a href="">34b58d1</a> <code>Straighten out &amp;lines/&amp;words</code></li>
  793. <li><a href="">d0cd137</a> <code>Make dir take any IO(), not just Cool</code></li>
  794. <li><a href="">7412184</a> <code>Make $*HOME default to Nil, not Any</code></li>
  795. <li><a href="">475d9bc</a> <code>Fix display of backslashes in IO::Path.gist</code></li>
  796. <li><a href="">6ef2abd</a> <code>Revert "Fix display of backslashes in IO::Path.gist"</code></li>
  797. <li><a href="">134efd8</a> <code>Fix .perl for IO::Path and subclasses</code></li>
  798. <li><a href="">69320e7</a> <code>Fix .IO on :U of IO::Path subclasses</code></li>
  799. <li><a href="">eb8d006</a> <code>Make IO::Handle.iterator a private lines iterator</code></li>
  800. <li><a href="">08a8075</a> <code>Fix IO::Path.copy/move when source/target are same</code></li>
  801. <li><a href="">973338a</a> <code>Fix IO::Handle.comb/.split; make them .slurp</code></li>
  802. <li><a href="">b43ed18</a> <code>Make IO::Handle.flush fail with typed exceptions</code></li>
  803. <li><a href="">276d4a7</a> <code>Remove .tell info in IO::Handle.gist</code></li>
  804. <li><a href="">f4309de</a> <code>Fix for combiners on /</code></li>
  805. <li><a href="">06d8800</a> <code>Fix crash when setting .nl-in ...</code></li>
  806. <li><a href="">7e9496d</a> <code>Make IO::Handle.encoding settable via .new</code></li>
  807. <li><a href="">95e49dc</a> <code>Make respect attribute values</code></li>
  808. <li><a href="">6ed14ef</a> <code>Remove</code>:directory<code>from IO::Spec::*.split</code></li>
  809. <li><a href="">9021a48</a> <code>Make a Map instead of Hash</code></li>
  810. <li><a href="">a282b8c</a> <code>Fix IO::Handle.perl.EVAL roundtrippage</code></li>
  811. <li><a href="">a412788</a> <code>Make IO::Path.resolve set CWD to $!SPEC.dir-sep</code></li>
  812. <li><a href="">84502dc</a> <code>Implement $limit arg for IO::Handle.words</code></li>
  813. <li><a href="">613bdcf</a> <code>Make IO::Handle.print/.put sig consistent</code></li>
  814. <li><a href="">0646d3f</a> <code>Allow no-arg &amp;prompt</code></li>
  815. <li><a href="">4a8aa27</a> <code>Implement IO::CatHandle.close</code></li>
  816. <li><a href="">4ad8b17</a> <code>Implement IO::CatHandle.get</code></li>
  817. <li><a href="">3b668b6</a> <code>Implement IO::CatHandle.getc</code></li>
  818. <li><a href="">25b664a</a> <code>Implement IO::CatHandle.words</code></li>
  819. <li><a href="">7ebc386</a> <code>Implement IO::CatHandle.slurp</code></li>
  820. <li><a href="">52b34b7</a> <code>Implement IO::CatHandle.comb/.split</code></li>
  821. <li><a href="">beaa925</a> <code>Implement</code></li>
  822. <li><a href="">ccc90fd</a> <code>Implement IO::CatHandle.readchars</code></li>
  823. <li><a href="">40f4dc9</a> <code>Implement IO::CatHandle.Supply</code></li>
  824. <li><a href="">0c9aea7</a> <code>Implement IO::CatHandle.encoding</code></li>
  825. <li><a href="">ee1e185</a> <code>Implement IO::CatHandle.eof</code></li>
  826. <li><a href="">80686a7</a> <code>Implement IO::CatHandle.t/.path/.IO/.native-descriptor</code></li>
  827. <li><a href="">993de50</a> <code>Implement IO::CatHandle.gist/.Str/.opened/.open</code></li>
  828. <li><a href="">677c4ea</a> <code>Implement IO::CatHandle.lock/.unlock/.seek/.tell</code></li>
  829. <li><a href="">e657ed1</a> <code>Implement IO::CatHandle.chomp/.nl-in</code></li>
  830. <li><a href="">a452e42</a> <code>Implement IO::CatHandle.on-switch</code></li>
  831. <li><a href="">f539a62</a> <code>Swap IO::ArgFiles to IO::CatHandle impl</code></li>
  832. <li><a href="">fa7aa1c</a> <code>Implement IO::CatHandle.perl method</code></li>
  833. <li><a href="">21fd2c4</a> <code>Remove</code></li>
  834. <li><a href="">65941b2</a> <code>Revert "Remove"</code></li>
  835. <li><a href="">a47a78f</a> <code>Remove useless :SPEC/:CWD on some IO subs</code></li>
  836. <li><a href="">d13d9c2</a> <code>Throw out</code></li>
  837. </ul>
  839. <h2>Perl 6 Specification Commits</h2>
  841. <p>I've made 114 commits to the Perl 6 Specification (roast) repository:</p>
  843. <ul>
  844. <li><a href="">63370fe</a> <code>Test IO::Special .WHICH/.Str do not crash</code></li>
  845. <li><a href="">465795c</a> <code>Test IO::Path.lines(*) does not crash</code></li>
  846. <li><a href="">091931a</a> <code>Expand &amp;open tests</code></li>
  847. <li><a href="">8d6ca7a</a> <code>Cover IO::Path.ACCEPTS</code></li>
  848. <li><a href="">14b6844</a> <code>Use Numeric instead of IO role in dispatch test</code></li>
  849. <li><a href="">5a7a365</a> <code>Expand IO::Spec::*.tmpdir tests</code></li>
  850. <li><a href="">f48198f</a> <code>Test &amp;indir</code></li>
  851. <li><a href="">bd46836</a> <code>Amend &amp;indir race tests</code></li>
  852. <li><a href="">04333b3</a> <code>Test &amp;indir fails with non-existent paths by default</code></li>
  853. <li><a href="">73a5448</a> <code>Remove two fudged &amp;chdir tests</code></li>
  854. <li><a href="">86f79ce</a> <code>Expand &amp;chdir tests</code></li>
  855. <li><a href="">430ab89</a> <code>Test &amp;*chdir</code></li>
  856. <li><a href="">86c5f9c</a> <code>Delete qp{} tests</code></li>
  857. <li><a href="">3c4e81b</a> <code>Test IO::Path.Str works as advertised</code></li>
  858. <li><a href="">ba3e7be</a> <code>Merge S32-io/path.t and S32-io/io-path.t</code></li>
  859. <li><a href="">79ff022</a> <code>Expand &amp;spurt and IO::Path.spurt tests</code></li>
  860. <li><a href="">1d4e881</a> <code>Test $*TMPDIR can be</code>temp<code>ed</code></li>
  861. <li><a href="">b23e53e</a> <code>Test IO::Path.extension</code></li>
  862. <li><a href="">2f09f18</a> <code>Fix incorrect test</code></li>
  863. <li><a href="">305f206</a> <code>Test empty-string extensions in IO::Path.extension</code></li>
  864. <li><a href="">0e47f25</a> <code>Test IO::Path.concat-with</code></li>
  865. <li><a href="">e5dc376</a> <code>Expand IO::Path.accessed tests</code></li>
  866. <li><a href="">43ec543</a> <code>Cover methods of IO::Special</code></li>
  867. <li><a href="">bd8d167</a> <code>Test IO::Path::* instantiate a subclass</code></li>
  868. <li><a href="">d8707e7</a> <code>Cover IO::Spec::Unix.basename</code></li>
  869. <li><a href="">c3c51ed</a> <code>Cover IO::Spec::Win32.basename</code></li>
  870. <li><a href="">896033a</a> <code>Cover IO::Spec::QNX.canonpath</code></li>
  871. <li><a href="">7c7fbb4</a> <code>Cover :parent arg in IO::Spec::Cygwin.canonpath</code></li>
  872. <li><a href="">8f73ad8</a> <code>Change \0 roundtrip test to \t roundtrip test</code></li>
  873. <li><a href="">b16fbd3</a> <code>Add tests to check nul byte is rejected</code></li>
  874. <li><a href="">ee7f05b</a> <code>Move is-path sub to top so it can be reused</code></li>
  875. <li><a href="">a809f0f</a> <code>Expand IO::Path.resolve tests</code></li>
  876. <li><a href="">feecaf0</a> <code>Expand file tests</code></li>
  877. <li><a href="">a4c53b0</a> <code>Use bin IO::Handle to test its .Supply</code></li>
  878. <li><a href="">7e4a2ae</a> <code>Swap .slurp-rest to .slurp</code></li>
  879. <li><a href="">d4353b6</a> <code>Rewrite .l on broken symlinks test</code></li>
  880. <li><a href="">416b746</a> <code>Test symlink routines</code></li>
  881. <li><a href="">8fa49e1</a> <code>Test</code>link<code>routines</code></li>
  882. <li><a href="">637500d</a> <code>Spec IO::Pipe.path/.IO returns IO::Path type object</code></li>
  883. <li><a href="">64ff572</a> <code>Cover IO::Path/IO::Pipe's .Str/.path/.IO</code></li>
  884. <li><a href="">4194755</a> <code>Test IO::Handle.lock/.unlock</code></li>
  885. <li><a href="">a716962</a> <code>Amend rules for last part in IO::Path.resolve</code></li>
  886. <li><a href="">f3c5dae</a> <code>Test IO::Path.child-secure</code></li>
  887. <li><a href="">92217f7</a> <code>Test IO::Path.child-secure with combiners</code></li>
  888. <li><a href="">39677c4</a> <code>IO::Path.concat-with got renamed to .add</code></li>
  889. <li><a href="">7a063b5</a> <code>Fudge .child-secure tests</code></li>
  890. <li><a href="">3b36d4d</a> <code>Test IO::Path.sibling</code></li>
  891. <li><a href="">41b7f9f</a> <code>Test $*CWD in IO::Path.dir(:test) Callable</code></li>
  892. <li><a href="">18d9c04</a> <code>Cover IO::Handle.spurt</code></li>
  893. <li><a href="">8f78ca6</a> <code>Test &amp;words with IO::ArgFiles</code></li>
  894. <li><a href="">ea137f6</a> <code>Cover IO::Handle.tell</code></li>
  895. <li><a href="">71a6423</a> <code>Add $*HOME tests</code></li>
  896. <li><a href="">95d68a2</a> <code>Test IO::Path.gist does escapes of backslashes</code></li>
  897. <li><a href="">de89d25</a> <code>Revert "Test IO::Path.gist does escapes of backslashes"</code></li>
  898. <li><a href="">9e8b154</a> <code>Test IO::Handle.close can be...</code></li>
  899. <li><a href="">853f76f</a> <code>Test IO::Pipe.close returns pipe's Proc</code></li>
  900. <li><a href="">d543e75</a> <code>Test IO::Handle.DESTROY closes the handle</code></li>
  901. <li><a href="">1ed18b4</a> <code>Add test for .perl.EVAL roundtrip with combiners</code></li>
  902. <li><a href="">704210c</a> <code>Test we can roundtrip IO::Path.perl</code></li>
  903. <li><a href="">2689eb1</a> <code>Test .IO on :U of IO::Path subclasses</code></li>
  904. <li><a href="">40353f1</a> <code>Test for IO::Handle:D { ... } loops over handle</code></li>
  905. <li><a href="">4fdb850</a> <code>Test IO::Path.copy/move when source/target are same</code></li>
  906. <li><a href="">98917dc</a> <code>Test IO::Path.dir's absoluteness behaviour</code></li>
  907. <li><a href="">71eebc7</a> <code>Test IO::Spec::Unix.extension</code></li>
  908. <li><a href="">4495615</a> <code>Test IO::Handle.flush</code></li>
  909. <li><a href="">60f5a6d</a> <code>Test IO::Handle.t when handle is a TTY</code></li>
  910. <li><a href="">31e3993</a> <code>Test IO::Path*.gist</code></li>
  911. <li><a href="">c481433</a> <code>Test .is-absolute method for / with combiners</code></li>
  912. <li><a href="">8ee0a0a</a> <code>Test IO::Spec::Win32.rel2abs with combiners</code></li>
  913. <li><a href="">a41027f</a> <code>Test can be set</code></li>
  914. <li><a href="">e82b798</a> <code>Test respects attributes</code></li>
  915. <li><a href="">2c29150</a> <code>Test attribute</code></li>
  916. <li><a href="">03ce93b</a> <code>Test IO::Handle.encoding can be set</code></li>
  917. <li><a href="">8ae81c0</a> <code>Test no-arg candidate of &amp;note</code></li>
  918. <li><a href="">fb61306</a> <code>Test attribute</code></li>
  919. <li><a href="">7266522</a> <code>Test return type of IO::Spec::Unix.path</code></li>
  920. <li><a href="">6ac3b4a</a> <code>Test IO::Spec::Win32.path</code></li>
  921. <li><a href="">dbbea15</a> <code>Test IO::Handle.perl.EVAL roundtrips</code></li>
  922. <li><a href="">5eb513c</a> <code>Test IO::Path.resolve sets CWD to $!SPEC.dir-sep</code></li>
  923. <li><a href="">b0c4a7a</a> <code>Test &amp;words, IO::Handle.words, and IO::Path.words</code></li>
  924. <li><a href="">f3d1f67</a> <code>Test $limit arg with &amp;lines/IO::*.lines</code></li>
  925. <li><a href="">4f5589b</a> <code>Add test for handle leak in IO::Path.lines</code></li>
  926. <li><a href="">4d0f97a</a> <code>Add &amp;put/IO::Handle.put tests</code></li>
  927. <li><a href="">125fe18</a> <code>Add &amp;prompt tests</code></li>
  928. <li><a href="">939ca8d</a> <code>Test IO::CatHandle.close</code></li>
  929. <li><a href="">9833012</a> <code>Test IO::CatHandle.get</code></li>
  930. <li><a href="">2f65a72</a> <code>Test IO::CatHandle.getc</code></li>
  931. <li><a href="">a4a7eaa</a> <code>Test IO::CatHandle.words</code></li>
  932. <li><a href="">1131c09</a> <code>Add &amp;put/IO::Handle.put tests</code></li>
  933. <li><a href="">80de9b6</a> <code>Add &amp;prompt tests</code></li>
  934. <li><a href="">bacfd9f</a> <code>Test IO::CatHandle.slurp</code></li>
  935. <li><a href="">e78e3c0</a> <code>Test IO::CatHandle.comb/.split</code></li>
  936. <li><a href="">f1c1125</a> <code>Test</code></li>
  937. <li><a href="">e9e78e1</a> <code>Test IO::CatHandle.readchars</code></li>
  938. <li><a href="">0479087</a> <code>Test IO::CatHandle.Supply</code></li>
  939. <li><a href="">71953e3</a> <code>Test IO::CatHandle.encoding</code></li>
  940. <li><a href="">db4847e</a> <code>Test IO::CatHandle.eof</code></li>
  941. <li><a href="">175ba45</a> <code>Test IO::CatHandle.t/.path/.IO/.native-descriptor</code></li>
  942. <li><a href="">c6cc66a</a> <code>Test IO::CatHandle.gist/.Str/.opened/.open</code></li>
  943. <li><a href="">dcdac1a</a> <code>Test IO::CatHandle.lock/.unlock/.seek/.tell</code></li>
  944. <li><a href="">f48c26e</a> <code>Test IO::CatHandle.chomp/.nl-in</code></li>
  945. <li><a href="">8afd758</a> <code>Test IO::CatHandle.DESTROY</code></li>
  946. <li><a href="">c7eff2b</a> <code>Test IO::CatHandle.on-switch</code></li>
  947. <li><a href="">e87e20d</a> <code>Test</code></li>
  948. <li><a href="">28717f0</a> <code>Test IO::CatHandle.perl method</code></li>
  949. <li><a href="">432bf94</a> <code>Test</code></li>
  950. <li><a href="">ce1b637</a> <code>Test IO::Handle.say</code></li>
  951. <li><a href="">0bb6298</a> <code>Test IO::Handle.print-nl</code></li>
  952. <li><a href="">47c88ab</a> <code>Test IO::Pipe.proc attribute</code></li>
  953. <li><a href="">945621d</a> <code>Test IO::Path.SPEC attribute</code></li>
  954. <li><a href="">5fb4b63</a> <code>Test IO::Path.CWD/.path attributes</code></li>
  955. <li><a href="">d0e5701</a> <code>Test IO::Path.Numeric and other .numeric methods</code></li>
  956. <li><a href="">94d7133</a> <code>Test 0-arg &amp;say/&amp;put/&amp;print</code></li>
  957. <li><a href="">38c61cd</a> <code>Test &amp;slurp() and &amp;slurp(IO::Handle)</code></li>
  958. </ul>
  960. <h2>Perl 6 Documentation Commits</h2>
  962. <p>I've made 146 commits to the Perl 6 Documentation repository:</p>
  964. <ul>
  965. <li><a href="">fd7a41b</a> <code>Improve code example</code></li>
  966. <li><a href="">110efb4</a> <code>No need for</code>.ends-with``</li>
  967. <li><a href="">69d32da</a> <code>Remove IO::Handle.z</code></li>
  968. <li><a href="">d02ae7d</a> <code>Remove and .rwx</code></li>
  969. <li><a href="">ccae74a</a> <code>Fix incorrect information for IO::Path.absolute</code></li>
  970. <li><a href="">3cf943d</a> <code>Expand IO::Path.relative</code></li>
  971. <li><a href="">cc496eb</a> <code>Remove mention of IO.umask</code></li>
  972. <li><a href="">335a98d</a> <code>Remove mention of</code>role IO``</li>
  973. <li><a href="">cc6539b</a> <code>Remove 8 methods from IO::Handle</code></li>
  974. <li><a href="">0511e07</a> <code>Document IO::Spec::*.tmpdir</code></li>
  975. <li><a href="">db36655</a> <code>Remove tip to use $*SPEC to detect OS</code></li>
  976. <li><a href="">839a6b3</a> <code>Expand docs for $*HOME and $*TMPDIR</code></li>
  977. <li><a href="">d050d4b</a> <code>Remove IO::Path.chdir prose</code></li>
  978. <li><a href="">1d0e433</a> <code>Document &amp;chdir</code></li>
  979. <li><a href="">3fdc6dc</a> <code>Document &amp;*chdir</code></li>
  980. <li><a href="">e1a299c</a> <code>Reword "defined as" for &amp;*chdir</code></li>
  981. <li><a href="">e5225be</a> <code>Fix URL to &amp;*chdir</code></li>
  982. <li><a href="">bf377c7</a> <code>Document &amp;indir</code></li>
  983. <li><a href="">5aa614f</a> <code>Improve suggestion for Perl 5's opendir</code></li>
  984. <li><a href="">a53015a</a> <code>Clarify value of IO::Path.path</code></li>
  985. <li><a href="">bdd18f1</a> <code>Fix desc of IO::Path.Str</code></li>
  986. <li><a href="">b78d4fd</a> <code>Include type names in links to methods</code></li>
  987. <li><a href="">b8fba97</a> <code>Point out my $*CWD = chdir … is an error</code></li>
  988. <li><a href="">d5abceb</a> <code>Write docs for all spurt routines</code></li>
  989. <li><a href="">b9e692e</a> <code>Document new IO::Path.extension</code></li>
  990. <li><a href="">65cc372</a> <code>Document IO::Path.concat-with</code></li>
  991. <li><a href="">24a6ea9</a> <code>Toss all of the TODO methods in IO::Spec*</code></li>
  992. <li><a href="">1f75ddc</a> <code>Document IO::Spec*.abs2rel</code></li>
  993. <li><a href="">cc62dd2</a> <code>Kill IO::Path.abspath</code></li>
  994. <li><a href="">1973010</a> <code>Document IO::Path.ACCEPTS</code></li>
  995. <li><a href="">b3a9324</a> <code>Expand/fix up IO::Path.accessed</code></li>
  996. <li><a href="">1cd7de0</a> <code>Fix up type graph</code></li>
  997. <li><a href="">56256d0</a> <code>Minor formatting improvements in IO::Special</code></li>
  998. <li><a href="">184342c</a> <code>Document IO::Special.what</code></li>
  999. <li><a href="">6bd0f98</a> <code>Dissuade readers from using IO::Spec*</code></li>
  1000. <li><a href="">7afd9c4</a> <code>Remove unrelated related classes</code></li>
  1001. <li><a href="">a43ecb9</a> <code>Document IO::Path's $.SPEC and $.CWD</code></li>
  1002. <li><a href="">e9b6809</a> <code>Document IO::Path::* subclasses</code></li>
  1003. <li><a href="">9102b51</a> <code>Fix up IO::Path.basename</code></li>
  1004. <li><a href="">5c1d3b6</a> <code>Document IO::Spec::Unix.basename</code></li>
  1005. <li><a href="">a1cb80b</a> <code>Document IO::Spec::Win32.basename</code></li>
  1006. <li><a href="">28b6283</a> <code>Document IO::Spec::*.canonpath</code></li>
  1007. <li><a href="">50e5565</a> <code>Document IO::Spec::*.catdir and .catfile</code></li>
  1008. <li><a href="">dbdc995</a> <code>Document IO::Spec::*.catpath</code></li>
  1009. <li><a href="">0ca2295</a> <code>Reword/expand IO::Path intro prose</code></li>
  1010. <li><a href="">45e84ad</a> <code>Move IO::Path.path to attributes</code></li>
  1011. <li><a href="">b9de84f</a> <code>Remove DateTime tutorial from IO::Path docs</code></li>
  1012. <li><a href="">69b2082</a> <code>Document IO::Path.chdir</code></li>
  1013. <li><a href="">d436f3c</a> <code>Document IO::Spec::* don't do any validation</code></li>
  1014. <li><a href="">4090446</a> <code>Improve chmod docs</code></li>
  1015. <li><a href="">1527d32</a> <code>Document :completely arg to IO::Path.resolve</code></li>
  1016. <li><a href="">372545c</a> <code>Straighten up file test docs</code></li>
  1017. <li><a href="">a30fae6</a> <code>Avoid potential confusion with use of word "object"</code></li>
  1018. <li><a href="">2aa3c9f</a> <code>Document new behaviour of IO::Handle.Supply</code></li>
  1019. <li><a href="">56b50fe</a> <code>Document IO::Handle.slurp</code></li>
  1020. <li><a href="">017acd4</a> <code>Improve docs for IO::Path.slurp</code></li>
  1021. <li><a href="">0f49bb5</a> <code>List Rakudo-supported encodings in open()</code></li>
  1022. <li><a href="">e60da5c</a> <code>List utf-* alias examples too since they're common</code></li>
  1023. <li><a href="">f83f78c</a> <code>Use idiomatic Perl 6 in example</code></li>
  1024. <li><a href="">fff866f</a> <code>Fix docs for symlink/link routines</code></li>
  1025. <li><a href="">aeeec94</a> <code>Straighten up copy, move, rename</code></li>
  1026. <li><a href="">923ea05</a> <code>Straighten up mkdir docs</code></li>
  1027. <li><a href="">47b0526</a> <code>Explicitly spell out caveats of IO::Path.Str</code></li>
  1028. <li><a href="">60b9227</a> <code>Change return value for</code>mkdir``</li>
  1029. <li><a href="">8d95371</a> <code>Expand IO::Handle/IO::Pipe.path docs</code></li>
  1030. <li><a href="">fd8a5ed</a> <code>Document IO::Pipe.path</code></li>
  1031. <li><a href="">bd4fa68</a> <code>Document IO::Handle/IO::Pipe.IO</code></li>
  1032. <li><a href="">2aaf12a</a> <code>Document IO::Handle.Str</code></li>
  1033. <li><a href="">53f2b99</a> <code>Document</code>role IO<code>'s new purpose</code></li>
  1034. <li><a href="">160c6a2</a> <code>Document IO::Handle.lock/.unlock</code></li>
  1035. <li><a href="">3145979</a> <code>Document IO::Path.child-secure</code></li>
  1036. <li><a href="">c5524ef</a> <code>Rename IO::Path.concat-with to .add</code></li>
  1037. <li><a href="">81a5806</a> <code>Amend IO::Path.resolve: :completely</code></li>
  1038. <li><a href="">6ca67e4</a> <code>Start sketching out Definitive IO Guide™</code></li>
  1039. <li><a href="">b9c9117</a> <code>Toss IO::Path.child-secure</code></li>
  1040. <li><a href="">61cb776</a> <code>Document IO::Path.sibling</code></li>
  1041. <li><a href="">0fc39a6</a> <code>Fix typegraph</code></li>
  1042. <li><a href="">9a63dc4</a> <code>Document IO::Path.cleanup</code></li>
  1043. <li><a href="">2387ce3</a> <code>Re-write IO::Handle.close docs</code></li>
  1044. <li><a href="">0def0d1</a> <code>Amend IO::Handle.close docs</code></li>
  1045. <li><a href="">c7e32e2</a> <code>Document IO::Spec::Unix.curupdir</code></li>
  1046. <li><a href="">fe489dc</a> <code>Document IO::Spec::Unix.curdir</code></li>
  1047. <li><a href="">83d5de0</a> <code>Document IO::Spec::Unix.updir</code></li>
  1048. <li><a href="">4804128</a> <code>Document IO::Handle.DESTROY</code></li>
  1049. <li><a href="">c991862</a> <code>Add warning to dir about...</code></li>
  1050. <li><a href="">eca21ff</a> <code>Document copy/move behaviour for same target/source</code></li>
  1051. <li><a href="">6c2b8b2</a> <code>Document IO::Path/IO::Handle.comb</code></li>
  1052. <li><a href="">fb29e04</a> <code>Include exception used in IO::Path.resolve</code></li>
  1053. <li><a href="">69d473f</a> <code>Document IO::Spec::*.devnull</code></li>
  1054. <li><a href="">994d671</a> <code>List IO::Dir as one of the means...</code></li>
  1055. <li><a href="">4432ef3</a> <code>Finish up IO::Path.dir docs</code></li>
  1056. <li><a href="">64355c8</a> <code>Document IO::Spec::*.dir-sep</code></li>
  1057. <li><a href="">914c100</a> <code>Finish up IO::Path.dirname</code></li>
  1058. <li><a href="">8d5e31c</a> <code>Document IO::Handle.encoding</code></li>
  1059. <li><a href="">d5c36aa</a> <code>Finish off IO::Handle.eof</code></li>
  1060. <li><a href="">e9de97e</a> <code>Document IO::Spec::*.extension</code></li>
  1061. <li><a href="">bf7ec00</a> <code>Document IO::Handle.flush</code></li>
  1062. <li><a href="">25bce38</a> <code>Document IO::Path.succ</code></li>
  1063. <li><a href="">8233960</a> <code>Improve IO::Handle.t docs</code></li>
  1064. <li><a href="">b4006a2</a> <code>Be explicit what IO::Handle.opened returns</code></li>
  1065. <li><a href="">c4f27a7</a> <code>Document IO::Path.pred</code></li>
  1066. <li><a href="">860333f</a> <code>Remove entirely-invented "File test operators"</code></li>
  1067. <li><a href="">ab0bd7a</a> <code>Document IO::Path.Numeric/.Int</code></li>
  1068. <li><a href="">4f81f08</a> <code>Improve IO::Handle.get docs</code></li>
  1069. <li><a href="">c45d389</a> <code>Finish off IO::Handle.getc/&amp;getc docs</code></li>
  1070. <li><a href="">a4012e0</a> <code>Document IO::Handle.gist</code></li>
  1071. <li><a href="">d15b0c7</a> <code>Document IO::Path.gist</code></li>
  1072. <li><a href="">1cf6932</a> <code>Document IO::Spec::*.is-absolute</code></li>
  1073. <li><a href="">4e88b84</a> <code>Finish up</code></li>
  1074. <li><a href="">497e7f7</a> <code>Finish off</code></li>
  1075. <li><a href="">f7e75c1</a> <code>Document</code></li>
  1076. <li><a href="">e309ddd</a> <code>Finish up &amp;note</code></li>
  1077. <li><a href="">81900cb</a> <code>Finish off IO::Path.parent</code></li>
  1078. <li><a href="">59cbc38</a> <code>Finish off</code></li>
  1079. <li><a href="">b99a666</a> <code>Finish off IO::Path.path/.IO</code></li>
  1080. <li><a href="">b070999</a> <code>Document IO::Spec::*.path</code></li>
  1081. <li><a href="">bace8ff</a> <code>Document IO::Path*.perl</code></li>
  1082. <li><a href="">dfdd845</a> <code>Add "The Basics" section to TDIOG</code></li>
  1083. <li><a href="">cdc701e</a> <code>Add "What's an IO::Path Anyway?" section to TDIOG</code></li>
  1084. <li><a href="">0d6d058</a> <code>Add "Writing into files" Section to TDIOG</code></li>
  1085. <li><a href="">a6365f3</a> <code>Document IO::Handle.words/&amp;words</code></li>
  1086. <li><a href="">2e25c82</a> <code>Document IO::Spec::*.join</code></li>
  1087. <li><a href="">49e58bd</a> <code>Document IO::Handle.lines</code></li>
  1088. <li><a href="">1744820</a> <code>Document IO::Path.lines</code></li>
  1089. <li><a href="">f3f70a0</a> <code>Document IO::Path.words</code></li>
  1090. <li><a href="">509f0e8</a> <code>Fix incorrect suggested routine</code></li>
  1091. <li><a href="">a6f1cbf</a> <code>Fix up IO::Handle.print</code></li>
  1092. <li><a href="">8f53830</a> <code>Fix up IO::Handle.print-nl</code></li>
  1093. <li><a href="">dc50211</a> <code>Fix &amp;prompt</code></li>
  1094. <li><a href="">98965b3</a> <code>Fix up IO::Handle.split</code></li>
  1095. <li><a href="">bd702e2</a> <code>Fix up IO::Handle.comb</code></li>
  1096. <li><a href="">6dd92b8</a> <code>Document IO::CatHandle</code></li>
  1097. <li><a href="">edeb069</a> <code>Document IO::Path.split</code></li>
  1098. <li><a href="">2d96596</a> <code>Document IO::Spec::*.split</code></li>
  1099. <li><a href="">129c097</a> <code>Document IO::Spec::*.splitdir</code></li>
  1100. <li><a href="">b946960</a> <code>Document IO::Spec::*.splitpath</code></li>
  1101. <li><a href="">dcd7490</a> <code>Fix rmdir docs</code></li>
  1102. <li><a href="">2a7bd17</a> <code>Document IO::Spec::*.rel2abs</code></li>
  1103. <li><a href="">f45241f</a> <code>Document IO::Spec::*.rootdir</code></li>
  1104. <li><a href="">70a80ec</a> <code>Document IO::Handle.put</code></li>
  1105. <li><a href="">6f58ed0</a> <code>Polish IO::Handle.say</code></li>
  1106. <li><a href="">3790a0f</a> <code>Polish &amp;put/&amp;print/&amp;say</code></li>
  1107. <li><a href="">ebb6f53</a> <code>Document attribute</code></li>
  1108. <li><a href="">53c9c91</a> <code>Document IO::Handle.chomp attribute</code></li>
  1109. <li><a href="">ca2a3a0</a> <code>Improve &amp;open/ docs</code></li>
  1110. <li><a href="">856e846</a> <code>Add Reading From Files section to TDIOG</code></li>
  1111. </ul>
  1112. ]]>
  1113.    </content>
  1114. </entry>
  1116. <entry>
  1117.    <title>Grant Proposal: Revitalize</title>
  1118.    <link rel="alternate" type="text/html" href="" />
  1119.    <id>,2017://18.3877</id>
  1121.    <published>2017-06-06T02:14:22Z</published>
  1122.    <updated>2017-06-06T02:21:56Z</updated>
  1124.    <summary></summary>
  1125.    <author>
  1126.        <name>Coke</name>
  1128.    </author>
  1130.        <category term="Grants" scheme="" />
  1133.    <content type="html" xml:lang="en-us" xml:base="">
  1135.        <![CDATA[<p>The Grants Committee has received the following grant proposal for the May/June round.
  1136. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.</p>
  1138. <p>Review the proposal below and please comment here by June 15th, 2017.
  1139. The Committee members will start the voting process following that
  1140. and the conclusion will be announced approximately in one week.</p>
  1142. <h1>Revitalize</h1>
  1144. <ul>
  1145. <li><p>Name:</p>
  1147. <p>André Walker</p></li>
  1148. <li><p>Amount Requested:</p>
  1150. <p>USD 3,000</p></li>
  1151. </ul>
  1153. <h2>Synopsis</h2>
  1155. <p><a href=""></a> is in need of replacement. I
  1156. am applying for finishing the work to replace it.</p>
  1158. <h2>Benefits to the Perl Community</h2>
  1160. <p>For a long time now, BPO ( has suffered from
  1161. <a href="">numerous issues</a>. It
  1162. is running on a custom MovableType which we cannot fix, has many
  1163. bugs in its behavior, and frankly requires being replaced.</p>
  1165. <p>There was a grant request to this effect in 2015, but development
  1166. stalled, and I would like to complete the work.  What I
  1167. propose to deliver will have many of the same benefits to the Perl
  1168. Community:</p>
  1170. <ul>
  1171. <li>A simple, stable blogging platform for the Perl Community</li>
  1172. <li>Migrated content from the current system</li>
  1173. <li>Open sourced, hackable, publicly available on Github</li>
  1174. </ul>
  1176. <h2>Deliverables</h2>
  1178. <ul>
  1179. <li>Host source on a public GitHub repository</li>
  1180. <li>Add continuous integration and testing</li>
  1181. <li>Migrate database to schema (posts, comments, and users)</li>
  1182. <li>Basic set of features:
  1183. <ul>
  1184. <li>Registration of new users</li>
  1185. <li>Login / Reset password (something missing in BPO now)</li>
  1186. <li>Content editing: Create / Update / Delete</li>
  1187. <li>Support for tags and categories</li>
  1188. <li>Support for comments (create, delete)</li>
  1189. </ul></li>
  1190. <li>Host a preview version for current users to test</li>
  1191. <li>Release and publish final
  1192. <ul>
  1193. <li>Research and resolve hosting platform</li>
  1194. </ul></li>
  1195. <li>After release, respond to issues as they come up</li>
  1196. </ul>
  1198. <h2>Project Details</h2>
  1200. <p>There are currently at least three forks of the PearlBee project. The original
  1201. project, a fork for the 2015 grant (intended for post-grant merge), and another
  1202. created by myself with additional people from</p>
  1204. <p>I plan to review the differences between the BPO-specific version and the
  1205. upstream and merge any useful commits. I intend to remove the snowflake
  1206. nature of BPO and provide a general-purpose blogging platform software
  1207. in Perl which could be used outside BPO.</p>
  1209. <p>This blogging platform (written to host BPO) will be written on top of Dancer2,
  1210. DBIx::Class, and DBI, with a PostgreSQL database imported from the
  1211. existing BPO, and session management provided by Memcached. The nature
  1212. of the work will allow making adjustments to this setup, as I will
  1213. implement generic interfaces instead of depending on specific
  1214. technologies (PostgreSQL, Memcached, etc.).</p>
  1216. <p>Unit and integration tests will be performed through Travis CI, and source code
  1217. made available on GitHub.</p>
  1219. <p>I'll begin by reviewing the code of both forks and preparing a suitable
  1220. base. The fork on which I worked provides a good start, as it cleaned
  1221. up the code considerably and changed the API endpoints to a more
  1222. consistent interface.</p>
  1224. <p>On top of this, I will work on cherry-picking any valuable commits from Evozon's
  1225. official and BPO forks, as noted above.</p>
  1227. <p>Next, I'll make sure all the basic features work, preferably covered by tests.
  1228. Abilities like registering, adding a post, editing, commenting, etc.</p>
  1230. <p>Then I would focus on migrating the existing database into the new schema. As
  1231. the previous grant request stated, it's possible to reuse the password hashing
  1232. scheme so people can log in without having to reset their passwords. If I
  1233. find this to be an issue, we will work on a plan for migrating users' accounts
  1234. without breakage. Existing user accounts will be covered in the grant
  1235. work regardless of which approach I take.</p>
  1237. <p>I will maintain support for the following content formats: HTML, Rich Text,
  1238. and Markdown. I will also verify whether other formats (such as Textile
  1239. 2) are used and require supporting or converting.</p>
  1241. <p>When migrating the posts, I'll also make sure to maintain a compatibility layer
  1242. with existing URLs, so that search engine content, as well as existing links
  1243. online, are preserved.</p>
  1245. <h2>Inch-stones</h2>
  1247. <ul>
  1248. <li>Setup
  1249. <ul>
  1250. <li>Trello dashboard</li>
  1251. <li>Main Github repo under BPO</li>
  1252. <li>Add any possible contributors</li>
  1253. </ul></li>
  1254. <li>Research
  1255. <ul>
  1256. <li>Review forks and differences</li>
  1257. <li>Classify all tickets</li>
  1258. <li>Decide on commits and changes to merge</li>
  1259. </ul></li>
  1260. <li>Implementation work
  1261. <ul>
  1262. <li>Implement the remaining endpoints</li>
  1263. <li>Add support for content formats</li>
  1264. <li>Verify all required features</li>
  1265. <li>Write tests to verify behavior</li>
  1266. <li>Configure Travis CI to maintain working conditions</li>
  1267. <li>Set up hosted version for public testing</li>
  1268. </ul></li>
  1269. <li>Migration
  1270. <ul>
  1271. <li>User migration</li>
  1272. <li>Content migration</li>
  1273. </ul></li>
  1274. <li>Additional testing
  1275. <ul>
  1276. <li>Open beta test for finished product</li>
  1277. </ul></li>
  1278. </ul>
  1280. <h2>Project Schedule</h2>
  1282. <p>I'll be able to begin work by the end of June.</p>
  1284. <p>I have the following estimates for the timeline, but this will be
  1285. subject to slippage, which I will reflect in reports and communication.</p>
  1287. <ul>
  1288. <li><ol start='1'>
  1289. <li>Setup: 19/06 - 25/06</li>
  1290. </ol></li>
  1291. <li><ol start='2'>
  1292. <li>Research: 26/06 - 09/07</li>
  1293. </ol></li>
  1294. <li><ol start='3'>
  1295. <li>Implementation work: 10/07 - 06/08 (*)</li>
  1296. </ol></li>
  1297. <li><ol start='4'>
  1298. <li>Migration: 07/08 - 10/09 (**)</li>
  1299. </ol></li>
  1300. <li><ol start='5'>
  1301. <li>Open beta: 11/09 - 25/09</li>
  1302. </ol></li>
  1303. <li><ol start='6'>
  1304. <li>Planned release: 26/09</li>
  1305. </ol></li>
  1306. </ul>
  1308. <p><strong>Notes:</strong></p>
  1310. <p>(*) At this point, I should have merged all relevant commits from different
  1311. forks, implemented all the essential features that BPO will require, covered
  1312. with tests. This is just before The Perl Conference in Amsterdam. Ideally, we
  1313. can have a hosted preview version of it for people to experiment.</p>
  1315. <p>(**) This is a longer period because it includes The Perl Conference and a
  1316. personal vacation.</p>
  1318. <h2>Completeness Criteria</h2>
  1320. <ul>
  1321. <li>Users can register, post, and browse</li>
  1322. <li>Blog text, code snippets, quoting, and comments display</li>
  1323. <li>Existing users imported</li>
  1324. <li>Existing content imported from MT to the new platform</li>
  1325. </ul>
  1327. <h2>Bio</h2>
  1329. <p>I am a Brazilian developer currently working in Amsterdam at I've
  1330. been interested in programming since I can remember. I'm quite passionate about
  1331. it! I'm experienced with web development in Perl, having used extensively
  1332. popular frameworks such as Moose, DBIx::Class, and Template::Toolkit. I'm also
  1333. familiar with the project I intend to work on with this grant, PearlBee, since
  1334. I refactored a big chunk of it to make it more extensible and robust, along
  1335. with Sawyer X and other people at</p>
  1337. <p>In 2011, I completed a Google Summer of Code project for the Perl
  1338. Foundation for replacing Catalyst's inversion of control system with
  1339. Bread::Board, mentored by Tomas Doran and Eden Cardim.</p>
  1340. ]]>
  1341.    </content>
  1342. </entry>
  1344. <entry>
  1345.    <title>Perl 5 Core Grant Proposal: Zefram maintaining the Perl 5 core</title>
  1346.    <link rel="alternate" type="text/html" href="" />
  1347.    <id>,2017://18.3875</id>
  1349.    <published>2017-06-04T16:00:01Z</published>
  1350.    <updated>2017-06-26T12:06:40Z</updated>
  1352.    <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 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 of the core internals....</summary>
  1353.    <author>
  1354.        <name>Makoto Nozaki</name>
  1355.        <uri></uri>
  1356.    </author>
  1358.        <category term="Grants" scheme="" />
  1360.        <category term="Perl 5 Development" scheme="" />
  1363.    <content type="html" xml:lang="en-us" xml:base="">
  1364.        <![CDATA[<p>TPF Board has received a new grant application under <a href="">Perl 5 Core Maintenance Fund</a>.</p>
  1366. <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>
  1368. <p><strong>IRC nickname:</strong> Zefram </p>
  1370. <p><strong>project title:</strong> Zefram maintaining the Perl 5 core </p>
  1372. <h3>synopsis</h3>
  1374. <p>I'd like a grant to work on the Perl 5 core, concentrating on
  1375. tricky and obscure issues of the core internals. The grant would extend
  1376. to the full range of a core committer's activities, along the lines of
  1377. my past work on the core. The grant would allow me to put much more
  1378. time into the Perl 5 core than I have been able to recently. </p>
  1380. <h3>benefits to Perl 5 core maintenance</h3>
  1382. <p>this grant would overcome the present
  1383. limitation on the amount of time I can devote to Perl, namely my need for
  1384. an income. The core would benefit from the increased application of my
  1385. rare knowledge and skills, including my deep understanding of much of
  1386. the core internals. It would especially benefit through the fixing of
  1387. troublesome bugs, and more generally through the addressing of issues
  1388. that require in-depth familiarity with the internals. </p>
  1390. <h3>deliverable elements</h3>
  1392. <p>Like the similar grants for Dave Mitchell, Nicholas Clark, and Tony
  1393. Cook, I do not propose specific technical deliverables for this project.
  1394. The details of what work I tackle would be led by the exigencies of bug
  1395. reports and the direction of discussions among core developers (on the
  1396. public mailing list, the IRC channel, and at times on the closed security
  1397. report mailing list). The main deliverable, then, is time spent on core
  1398. maintenance work, at a rate of USD 50 per hour. </p>
  1400. <p>Secondary deliverables are the required reports, weekly to p5p and
  1401. monthly to TPF. These will list the issues worked on. The grant manager
  1402. representing p5p can see how this relates to my code commits and mailing
  1403. list activity, providing an opportunity to raise any concerns. </p>
  1405. <h3>project details</h3>
  1407. <p>This project covers the full range of core maintenance activity that I
  1408. have performed in the past. Within this mix, I would favour activity
  1409. of which the fewest people are capable: work that takes advantage of my
  1410. particular knowledge of core internals and my particular abilities.
  1411. In general, the highest priority work would be the diagnosis and
  1412. resolution of bugs that appear to involve obscure internals. (Note that
  1413. diagnosis can radically change the appearance of a bug in this respect.) </p>
  1415. <p>Activities covered by this grant would include, but are not limited to: </p>
  1417. <ul>
  1418. <li>diagnosing reported bugs </li>
  1419. <li>fixing bugs, whether reported or not </li>
  1420. <li>discussing core issues on the p5p mailing list </li>
  1421. <li>writing and improving documentation </li>
  1422. <li>code refactoring </li>
  1423. <li>release engineering </li>
  1424. <li>implementation of new core features, where approved through discussion </li>
  1425. </ul>
  1427. <p>Specifically excluded from this project scope is work on unapproved new
  1428. features, because of the risk of (perception of) abuse. I do not seek
  1429. a license to arbitrarily perform major speculative work on TPF's dime.
  1430. But where a new feature has been discussed prior to implementation,
  1431. and there is the appropriate consensus that it should be implemented,
  1432. then the endeavour is no longer an individual's speculation, and that
  1433. implementation work can fall within the scope of this project. Looking
  1434. back at features I have added in the past, I developed call-checker
  1435. and parser plugins without discussion, so they would not have been in
  1436. scope for this type of grant. Subroutine signatures, on the other hand,
  1437. I developed in response to a fairly detailed consensus reached on the
  1438. IRC channel, and with the pumpking's specific blessing, so that would
  1439. have been in scope. </p>
  1441. <h3>project schedule</h3>
  1443. <p>This project covers 400 hours of deliverable work, which I anticipate
  1444. delivering at a rate averaging somewhere between 20 and 30 hours per week,
  1445. thus taking somewhere between three and five months. I am not committing
  1446. to any steady rate of work; extensive variance of time worked from week
  1447. to week is to be expected. I can start as soon as approved. </p>
  1449. <p>If the arrangement of this grant turns out to be satisfactory, I would
  1450. likely seek an extension of it on similar terms. </p>
  1452. <h3>biography</h3>
  1454. <p>I'm a freelance computer programmer. I have been using Perl
  1455. since the year 2000, and C since 1990. I've been contributing to CPAN
  1456. since 2004, now having 76 distributions there, many of them XS language
  1457. extensions. I've been contributing code to the Perl 5 core since 2007.
  1458. My core development work has included diagnosis and fixing of daunting
  1459. bugs, design and implementation of new subsystems (such as parser plugins
  1460. and subroutine signatures), and much discourse on the mailing list. </p>
  1462. <p><strong>endorsed by:</strong> Sawyer X, Matthew Horsfall, Dagfinn Ilmari Mannsaker </p>
  1464. <p><strong>amount requested:</strong> USD 20_000 </p>
  1466. <p><strong>suggestions for grant manager:</strong> Sawyer X has agreed to serve as manager. </p>
  1467. ]]>
  1469.    </content>
  1470. </entry>
  1472. <entry>
  1473.    <title>Perl 6 Travel Grant Proposal</title>
  1474.    <link rel="alternate" type="text/html" href="" />
  1475.    <id>,2017://18.3876</id>
  1477.    <published>2017-06-04T16:00:00Z</published>
  1478.    <updated>2017-06-04T16:53:27Z</updated>
  1480.    <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>
  1481.    <author>
  1482.        <name>Makoto Nozaki</name>
  1483.        <uri></uri>
  1484.    </author>
  1486.        <category term="Grants" scheme="" />
  1488.        <category term="Perl 6 Development" scheme="" />
  1491.    <content type="html" xml:lang="en-us" xml:base="">
  1492.        <![CDATA[<p>TPF Board has received a new grant application as below.</p>
  1494. <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>
  1496. <h3>Perl 6 Travel Grant</h3>
  1498. <ul>
  1499. <li>Name: brian d foy</li>
  1500. <li>Amount Requested: $2,500</li>
  1501. </ul>
  1503. <h3>Synopsis</h3>
  1505. <p>I'm passing through Europe in June and can extend my trip on either
  1506. side to visit Perl mongers groups. I'm applying for a travel grant to
  1507. prepare and present Perl 6 talks to and I'm
  1508. also trying to arrange a talk with I'll also give these talks
  1509. to</p>
  1511. <h3>Benefits to the Perl Community</h3>
  1513. <p>Presentations allow me to test material for the book, get people
  1514. excited about the langauge, give Perl 6 some buzz, and provide
  1515. feedback to the Perl 6 core team about rough spots in the language.</p>
  1517. <h3>Deliverables</h3>
  1519. <ul>
  1520. <li>Present to on June 8</li>
  1521. <li>Present to on June 29</li>
  1522. <li>Post slides to Slideshare</li>
  1523. <li>Write articles based on talks for</li>
  1524. <li>Present same talks to on later dates</li>
  1525. <li>Various social media promotions</li>
  1526. </ul>
  1528. <h3>Bio</h3>
  1530. <p>I'm brian d foy, the author or co-author of many of the existing Perl
  1531. 5 books from O'Reilly Media, including Learning Perl, (Editions 4 to
  1532. 7), Intermediate Perl (Editions 1 and 2), Mastering Perl (Editions 1
  1533. and 2), and Programming Perl (4th Edition). I'm working on Learning
  1534. Perl 6. I've given well-received talks all over the world,</p>
  1535. ]]>
  1537.    </content>
  1538. </entry>
  1540. <entry>
  1541.    <title>The Perl Conference 2017 (formerly known as YAPC::NA) is rapidly approaching, and we believe it will be great.</title>
  1542.    <link rel="alternate" type="text/html" href="" />
  1543.    <id>,2017://18.3874</id>
  1545.    <published>2017-05-26T19:57:46Z</published>
  1546.    <updated>2017-05-26T20:24:33Z</updated>
  1548.    <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>
  1549.    <author>
  1550.        <name>David Oswald</name>
  1552.    </author>
  1554.        <category term="Conferences" scheme="" />
  1556.        <category term="Meetings" scheme="" />
  1558.    <category term="perlconferenceyapcnawashingtonuspto2017" label="Perl Conference YAPC::NA Washington USPTO 2017" scheme="" />
  1560.    <content type="html" xml:lang="en-us" xml:base="">
  1561.        <![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.
  1562. This is the conference that many of us have affectionately known as YAPC::NA::17.</p>
  1564. <p>If you haven't registered yet, please do so as soon as possible.
  1565. 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>
  1567. <p>The conference website is: <a href=""></a></p>
  1569. <p>We have talks scheduled from many of the best speakers known to the Perl community;
  1570. 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>
  1572. <p>For those seeking additional enlightenment there are tutorials and master classes offered (by additional registration) on topics such as:</p>
  1574. <ul>
  1575. <li>Perl in a Day (John Anderson)</li>
  1576. <li>Introduction to Moose (Dave Rolsky)</li>
  1577. <li>Perl Second Best Practices (Randal Schwartz)</li>
  1578. <li>Unicode and Associated Punishments (Ricardo Signes)</li>
  1579. </ul>
  1581. <p>The conference is being held in the amazing <a href="" title="US Patent and Trademark Office">US Patent and Trademark Office</a>,
  1582. and will feature an event in the <a href="" title="National Inventors Hall of Fame Museum">National Inventors Hall of Fame Museum</a>.</p>
  1584. <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>
  1586. <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.
  1587. 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
  1588. have devoted so much of their time and energy laying the foundation for the rest of us to build upon.</p>
  1590. <p>I am excited and can't wait to see everyone there.</p>
  1591. ]]>
  1593.    </content>
  1594. </entry>
  1596. </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