Today is the last day to submit a talk proposal for YAPC::NA 2010 in Columbus, Ohio.
March 2010 Archives
Leon Timmermans writes:
As you may have noticed I've been out of the running for some time (due to health reasons), but I'm back at the project now for a few weeks and things seem to be going pretty ok. Here's an overview of where I'm currently standing.
- Documentation: Right now this is where I think most work remains. I've been working on it recently, and will continue doing that in the next couple of weeks.
- Unit testing: I've covered almost everything that I can cover. I'd like to cover more, but many things aren't really testable in C++, sadly. I've been spoiled by Test::*.
- Regexp support: I may have to give up the idea of natively using
perl's regexp engine, and access it through perlspace. perl is
strongly resisting this part of it being used by outsiders. To be a
bit more precise, qr// is working perfectly fine, but m// is failing
unit tests and s/// currently segfaults. Given the amount of time I've
put into it that would suck a lot, but right now I'm not seeing
- Building process: I've recently started a new more portable build
script based on ExtUtils::CBuilder and works pretty well for me so
far. It's not finished yet, but it seems to be a fruitful approach.
E::C's C++ support is being improved as we speak (see
other issues with it seem quite solvable. E::C is quite neat.
- Exportation: I guess I'm done. I'm specially happy of the user-definable conversions: it's capable of doing reasonably complex type conversions like std::vector to arrayref and back.
Ricardo has now been working on his grant for nearly four weeks. Of the nine inch-stones included in the original proposal, five are complete (logging, testing tools, tests, core FileFinder plugins, new prereq system). One (improved support for XS dists) has had work done against it, but as more input has been gathered on how to proceed, it's become clear that the rest of this work will be done outside the scope of the grant. Two goals (command plugin simplification and an improve 'new' command) remain to be done, as does the user's guide.
Detailed status updates are still being published at Ricardo's blog, and he predicts that the grant work will be completed within a month or possibly two.
The time has come for the Yet Another Perl Conference, North America Call For Venue!
Entries can be submitted now through June 1st 2010 to the TPF conferences group: tpf-conferences (at) perl (dot) org. We hope to announce the winners at this year's YAPC::NA in Columbus, Ohio.
Are you ready to get started? First off, you will want to review the bidding details at yapc.org. While there, you'll also find links to the venue requirements and the review criteria that the committee uses to judge bids. Previous bids and announcements can be found with the yapc tag at The Perl Foundation blog.
When making your proposal, in addition to venue information and possible dates, please make sure to include details on airport locations, local public transit (as well as transit to the venue from the airport!), local cultural attractions, and accommodation information. The more information you provide, within reason, the better. Also, please include contact information for the members of your team.
With a June 1st deadline, you hopefully will have time to get your bid completed and submitted to the Conferences Committee early so that we can provide some feedback and allow you to make changes if needed.
Hosting YAPC is a rewarding experience and provides a great opportunity to give back to the Perl community. Good luck and we look forward to receiving your bid!
Send any questions and completed bids to the TPF conferences group: tpf-conferences (at) perl (dot) org
Over the past few months the Grants Committee has been working to improve our grants process. Our main problem is that we have a very low completion rate for grants. In the past couple of years only 25% of the grants awarded by the Grants Committee have been completed. Not surprisingly we feel that the current system should be changed.
There are a number of different problems. We have been paying out 50% of the awards up-front leading to situations where we may have made payments with no results. Also, the fact that we allow grants to remain open while they lie dormant ties up money that could be better used in areas that are actually being worked on.
To tackle this problem the Grants Committee is working to close all historic grants. As well as that we want to tighten up the reporting rules to make it clear to grantees that not providing reports or not communicating with grant managers will mean a termination of the
grant. We are also considering changing our payment time-frames to pay out on completion of grants, with the possibility of interim payments if the grant manager and committee feel that this is appropriate.
These are major changes to our current process and we would appreciate community feedback on these changes and suggestions for ways in which we could improve the current process. Please post comments to this post, or if you would prefer send your suggestions to ambs [at] perlfoundation.org
At our recent Board meeting Jim Brandt stepped down as President and Kurt DeMaagd stepped down as Treasurer.
We would like to thank Jim and Kurt for all their hard work. Jim became President in July 2009 after holding the post of Vice-President and will continue to serve as a Director on the Board. Kurt has been Treasurer of TPF since it was created in September 2000. This is a very long time for anyone to hold a voluntary role and we are incredibly gratefully to Kurt for his years of service in this role. Kurt will also remain on the Board.
Karen Pauley has been appointed President. Karen joined TPF as Steering Committee Chair in March 2008 and has held the position of Vice-President since July 2009.
We would like to welcome Dan Wright who has been appointed Treasurer. Dan comes to us with prior experience of being a Treasurer. He is an active member of the Perl community and a core member of the team that organized last year's YAPC::NA and the Pittsburgh Perl Workshops. We wish him every success in his new role.
I am pleased to announce that Solomon Foster's Hague Grant application for Numeric and Real Support has been accepted. Jonathan Worthington has agreed to be the grant manager for this project.
I would like to thank everyone who provided feedback on this proposal.
I am delighted to announce that TPF has been accepted as a mentoring organization for this year's Google Summer of Code.
Google Summer of Code is a program that offers stipends to student developers for writing code for open source software projects. Last year we had nine projects accepted and we would love to have more this year.
Jonathan Leto is our chief organizer and he is looking for mentors and project ideas. The deadline for student applications is the 9th April and and if you are interested in working with us please join our IRC channel, #soc-help on irc.perl.org, and the mailing list.
Ricardo began work on his grant at the beginning of the month and has made steady progress, completing the first two deliverables (logging and testing libraries) and has begun writing core tests, which should be done over the next few weeks. Has published status updates every few days so far and plans to continue doing so.
While TPF grant program has as its main goal the motivation of Perl users to perform new and challenging projects for the Perl Community, sometimes it fails. Fortunately it doesn't happen with all grantees and all the time.
This time I am closing two grants from Vadim Konovalov: Tcl/Tk Access in Rakudo and Perl Cross-Compilation for WinCE and Linux. We, at TPF, know that Vadim did some work on both grants (mostly on the first), but the grants were accepted in September 2008 and Vadim stopped answering emails and giving feedback a lot of time ago.
We hope Vadim will continue his work whenever he has the motivation and the time, but TPF can't keep the grant open more time.
Curtis Jewell just sent TPF an update on his grant:
The 5 main points of my grant, as far as releasing an improved Strawberry Perl, were:
"Is compiled as a "merge module" (.msm) file that can be included in other .msi files, as well as an independent .msi file."
This was done as of the January 2010 release of Strawberry Perl, although I'm not publicizing it heavily until the April 2010 release.
However, the "Strawberry Perl Professional" alpha that was released in late February uses the merge module that was generated by the January 2010 release as its "underpinnings", and the currently-released-on-CPAN development versions of the Perl::Dist::WiX/Perl::Dist::Strawberry creation toolchain can create and use merge modules.
"Can have the base drive (and possibly directory name) passed in to the merge module."
It turns out that you insert the merge module under a directory entry, so completing the merge module made this automatic. However, this isn't useful without the next point.
"Can be installed to any drive (the top directory may still be named "strawberry" under the root of the selected drive)"
This is what I'm working on currently for the April 2010 release, as well as being able to build a 64-bit version of Strawberry Perl (for 5.11.x+ versions of Perl - which means a non-beta 64-bit version may not be available until May or June)
The intention is to release a beta with this (I think of it as "relocatability") working soon after 5.11.6 or 5.12.0-RC1 is released.
Unfortunately, I've hit a bug in Perl 5.10.1 - it doesn't relocate the vendor/lib directory like the other two standard directories: http://rt.perl.org/rt3/Public/Bug/Display.html?id=73562 . I'll need some assistance (i.e. a patch that fixes that bug, or guidance from p5p if more information is needed) in order to get 5.10.1 to relocate safely.
5.11.5 relocates all 3 standard directories, so it's fine, and I can test that relocation works with 5.11.x versions, until a patch can be created for 5.10.1.
"Separates the modules installed with the initial installation from modules that the user / administrator installs, by using the "vendor" directories for module installation that can be configured when compiling Perl."
This was done in the October 2009 release of Strawberry Perl. This has created a problem with implementing the relocation portion of the grant, as noted above.
"Includes a script that saves the settings that local::lib creates within the Windows Registry."
A first draft of this is currently in Adam Kennedy's svn repository (it needs debugged) as http://svn.ali.as/cpan/trunk/App-local-lib-Win32Helper/
Kieren is presently finalizing code for the new Perl Survey and plans to have the new system up and operating soon, when he will conduct a pilot program to shake out the kinks in the project.
After that, all that remains is to react to the results of the pilot, run the survey proper, and analyze the final data gathered from it.
The source code is currently visible on GitHub.
Alan Haggai's work on the Archive::Zip library is complete. Numerous onerous bugs have been corrected, and the library can now handle far more kinds of data. A developer release should reach the CPAN soon, hopefully to be followed in short order by a new complete release of the library.
We have received a Hague grant request, submitted by Solomon Foster.
Before the Board votes on this proposal we would like to get feedback and endorsements from the Perl community. Please leave feedback in the comments or send email with your comments to karen at perlfoundation.org.
Numeric and Real Support
This grant aims to refactor Rakudo's current numeric classes to support the
Perl 6 specification's new Numeric and Real roles, in the process making it
easier to create new numeric classes.
Benefits to Perl 6 Development:
In late 2009, in response to users' and developers' experiences with Rakudo,
the Perl 6 specification was enhanced with the creation of the Numeric and
Real roles. This grant's purpose would be to implement those roles and
refactor Rakudo's core numeric type implementations to work with them,
including Int, Rat, Num, and Complex. Special care will be taken to simplify
adding new classes that fill the Numeric and Real roles, as there are more in
the specification that will need to be implemented at some point. In addition,
the relevant portions of the test suite would be revamped. Straightening this
all out before Rakudo * will present the newcomers to Perl 6 with a clean,
consistent numerical interface instead of the current obsolete hodgepodge.
D1. Implement Numeric. [S32::Numeric: "Numeric"]
D2. Implement Real. [S32::Numeric: "Real"]
D3. Refactor Int, Rat, and Num to be Real. [S32::Numeric: "Int", "Rat", and
"Num", also S02::Bits and Pieces]
D4. Refactor Complex to be Numeric. [S32::Numeric: "Complex"]
D5. Refactor the trig functions to fit in this scheme. [S32::Numeric:
D6. Add Numeric and Real specific tests to the spectests.
D7. Enhance our current numeric tests to better work in the new system.
D1 and D2 require implementing a the Real and Numeric roles, and possibly
modifying the Spec a bit in the process. Probably the biggest issue here is
working out to what extent Real should implement default versions of its
D3, D4, and D5 involve refactoring the existing methods for these classes to
fit into the new role-based scheme. Special attention will be given to
facilitating the addition of new numeric types which fill these roles.
D6 would include simple tests -- do the classes belong to their appropriate
roles? -- as well as more complex tests -- can users readily create their own
D7 would reorganize the existing numeric tests to better take advantage of the
new system, as well as forking role-based versions of those tests.
This is envisioned as a two-month project. The first three weeks would be spent
establishing the basic framework and getting the Numeric methods in place for
Int, Rat, Num, and Complex. The second three weeks would be spent working on
the Real methods for those classes. The last two weeks would be set aside for
I am able to begin work on this project at any time.
Blog posts every other week on a new Perl 6 programming blog on Wordpress,
also to be submitted to Perl Planet Six.
All code, documentation and other relevant files that relate to Rakudo will be
checked into the Rakudo repository. All contributions to the specification and
specification tests will be checked into the Pugs repository.
Grant Deliverables ownership/copyright and License Information:
All work on produced as a result of this grant will be licensed under the
Artistic License Version 2.0. I already have signed the relevant CLA for The
After flirting briefly with Pugs back in its very early days, I started
regular experimentation with Perl 6 via Rakudo in late 2008. In mid-2009 I
started contributing, first to the spectests and then in August to Rakudo
itself. Since then I have been the third most active Rakudo committer,
including extensive work on Rat, Complex, and trig support.
I have an MS in mathematics and a BS with honors in mathematics and computer
science, both from the University of Michigan. I have twelve years' experience
as a professional C++ library developer.
Country of Residence:
Okay to publish proposal?:
Suggestions for Grant Manager:
This was the oldest grant running. Ingy dot net was working intermittently on it presenting some of the results that were promised in the proposal but not them all. TPF and Ingy agreed to close the grant with a half payment for the (half) work done.
Ingy wrote a report on the work done. It can be read at https://www.socialtext.net/yaml/index.cgi?requiem_for_a_grant
For this quarter TPF had 7 grant proposals, from which 5 were voted for rejection, one for acceptance, and the final one will be kept for new evaluation in the next round.
The five rejected grants are:
* Creating a ctypes-Like Interface for Perl to External Subroutines by Shlomi Fish
* Enhancing CPANHQ by Shlomi Fish
* perl core memory improvements by Jim Cromie
* Enhancing Perl 6 Pattern Matching by Morris M. Siegel
* CPAN Reviews by Alexandr Ciornii
The grant kept for new evaluation in the next round:
* Perl Compiler by Reini urban
And finally, congratulations to Ricardo Signes for his accepted grant:
* Improve Dist::Zilla by Ricardo Signes
These results took in consideration the proposal texts and the work relevance for the Perl community, the proposal authors curriculum and interaction with the Perl community, and the comments and reactions from the Perl community on this blog.
Jonathan Worthington has successfully completed his Hague Grant for Rakudo Signature Improvements. This is his final report:
A while back, I filed an application for a grant to work on a wide range of improvements to Rakudo's signature, capture and binding implementation, in order to improve performance, bring us in line with the specification and implement a range of features that we did not have support for.
I have now completed the grant tasks, and am filing this report to discuss the work that was done under it. I have missed the originally planned schedule for the grant to be completed. This was in a large part due to a lot of Rakudo development since October taking place in a branch, ng, which set out to refactor and improve many aspects of Rakudo and get us in good shape for the Rakudo * release in a couple of months time. It made far more sense to implement some aspects of this grant in the branch rather than in master, and the branch also needed my attention in other key areas. The branch has recently become master, and since then I've been able to complete the final pieces of the grant and bring it to completion.
I proposed six deliverables, and have completed all of them.
D1 called for an extensive refactoring of signature internals and parameter binding. Rakudo now has a single custom signature binder, designed to handle its binding needs in accordance with the Perl 6 specification. This is a far better situation than before, where we used the Parrot binder and then layered extra binding semantics atop of it, meaning we had to make two passes through the parameters.
Having our own custom binder that takes into account the needs of Perl 6 has made it possible to do all of the other items in this grant in a clean and performant way. It has also enabled other bits of progress outside the scope of the grant; for example, I was able to get a first cut of coercion (the "as" trait) of parameters in signatures implemented in little over half an hour a few days ago.
We also have compile-time objects to represent signatures and parameters in the compiler. This has allowed much cleaner code in the actions that build the AST. In the future, this approach will also be highly useful for building extra static checking and an optimizer.
D2 required implementing support for binding named arguments to positional parameters. I considered this in the initial re-design of the binder, so it just worked "out of the box" once I switched Rakudo over to using it.
The target of D3 - unpacking of arguments - was made much easier by having a custom binder. The binder was designed to be re-entrant, and therefore unpacking arguments was implemented by specifying how various data structures could coerce themselves into a capture, and then making a recursive call with the capture that was produced.
For D4, I spent some time re-working capture support overall, and as well as being able to write a capture into a signature - and to unpack it with a sub-signature - we can also interpolate a capture into the arguments for a call. Before this didn't really work - it would lose the named parameters, for example.
Implementing D5 - support for multiple return values - first meant working with Larry to figure out the correct semantics. It turned out they were easier to get in place in the refactored "ng" branch - which has now become the master branch. I also implemented the support for binding the return values against a signature; this means all the power of unpacking arguments is available for returns too. It's all routed through the same underlying binder implementation.
Finally, for D6 I first put a proposal into the specification for how signature introspection should look, then wrote an implementation and reviewed the test coverage.
I have written some blog posts (1, 2, 3) about the work that I have done under this grant. I've also been active on the #perl6 IRC channel and, thanks to the evalbot, been able to give some demonstrations of the improvements there too. I also continue to attend Perl conferences and give talks about Perl 6.
This grant has, like my previous two, brought another major piece of Rakudo essentially "up to spec" and provided a good, stable base for future development. Our coverage of S06 is vastly improved, along with performance. Overall this grant has helped us meet critical targets on the path to the Rakudo * release and, beyond that, towards Rakudo becoming a complete Perl 6 implementation.