At the moment, these are the latest updates on the running grants:

No updates from grantee.
Leon report: I've been mostly busy with implementing a TAP producer to build my tests with, and with implementing tests. So far I've been mainly implementing tests for sanity and numeric behavior. On the way there I fixed a few bugs, and added a few operators. Also I've eliminated a dependency on Boost. MPL, I hope this will cut down the build time. Lastly I've started implementing typemapping.
No updates from Grant Manager.
Andrew should start working by mid-October.
No updates from Grant Manager.
Ingy wrote an article on the state of YAML on Perl. Please check it here: http://yaml.kwiki.org/?PerlStateOfTheYAML
No updates from Grant Manager.
YE2038 discussion continues active on Perl5-Porters. We expect conclusions soon.
Alan was not working for 2-3 weeks due to exams, but is back working on his
task now.
Daniel Report: Even if the things are moving somewhat more slowly at the moment, it actually means that we are really close to have some very cool things working.

The first very good news is that SMOP is the first implementation to support lazy map and grep. Lazyness has been neglected in most implementations, and the Perl6-awareness of the SMOP interpreter model is proving itself as a very big deal, since gather/take is also being to be somewhat easy to implement.

On the other hand, we have the first prototype implementations of SMOP front-ends, thanks to pmurias++, who has written the code to embed SMOP in pugs, and had recently started another project to transform STD parse tree into m0ld code, which is sort of the start of using SMOP as a STD backend.

The next most important step is the definition of the "Prelude Lexical Scope" which is the ultimate outer scope, and places local aliases to several variables that should be available for any Perl 6 code (&map, &infix:<+> and the built-in types, which including realizing the import of the "is export" methods)

Adam is nearly completion. Good news soon, we expect.

The Perl Foundation is looking at giving some grants ranging from $500 to $3000 in November 2008.

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

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

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

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

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

To submit a proposal see the guidelines at http://www.perlfoundation.org/how_to_write_a_proposal and TPF rules of operation at http://www.perlfoundation.org/rules_of_operation. Then send your proposal to tpf-proposals@perl-foundation.org.

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

Note that accepted but not funded proposals in the previous round do not need to be re-submitted.

Grant Update: y2038 fix

| | Comments (0)

From a mail on Perl 5 Porters:

Attached is the latest 2038 patch from the y2038 branch.

  • Configure now probes for the safe range of the system's localtime() and gmtime(). Perl will use the system functions inside their safe range. [Thanks Merijn]
  • Perl now ships with its own 64 bit gmtime() and timegm().
  • localtime() is made 2038 safe on 32 bit systems using the algorithm described here http://code.google.com/p/y2038/wiki/HowItWorks
  • Time::Local can now handle past 2038.
  • Time::gmtime tests improved and expanded past 2038 and 1901.
  • Time::localtime tests improved and expanded past 2038.

Open issues

  • localtime64.h and .c need to be wired into the Makefile. I don't now how to do this.
  • The LOCALTIME_EDGECASE_BROKEN special case needs to be reincorporated.
  • This has not been tested on a system with an unsigned or floating point time_t.
  • The configure probes are probably broken with a floating point time_t.

Other notes

  • The clever way Time::Local handles the year (8, 108 and 2008 are all 2008) means there are gaps in what years you can run through timelocal() and timegm().
  • Since localtime64.c now has its own timegm() core time modules could make use of it.

I've hit the limit of what I can do alone. I'd like to see this incorporated into the bleadperl trunk so it can get some cross-platform testing.

Running Grants (2008 - IV)

| | Comments (0)

At the moment, these are the latest updates on the running grants:

No updates from Grant manager.
Leon report: I've ported it to 5.10. I haven't really tested it beyond compiling, but I don't expect difficulties there. I've worked on the exportation code. Exporting variables is now supported. I want to add member variables too, but I'm not sure how the semantics should work. I've added globs and filehandles. I've fixed the way package variables work (being written to was
somewhat problematic until recently). I've started implementing regexps for perl 5.8. The basics work now, the modifiers are next on the to-do list. It's not going to be as performing as the (yet to write) 5.10 implementation but it seems robust so far.

My code is hosted at http://code.google.com/p/libperl/ . The commit log should be a peek into what I'm currently doing. Any feedback is welcome.
No updates from Grant Manager.
No updates from Grant Manager.
No updates from Grant Manager.
No updates since last report.
Michael is working on this task, but no further information was provided.
Accordingly with Michael this is practically implemented and finished.
No updates from Grant Manager.
This is the last report from Daniel: The last two weeks were heavily "concept harvesting"... I'm already working on providing the run time features used by src-s1p/P6Meta.pm (which is the default Perl 6 MetaClass Implementation). After a lot of planning, we have figured out how to implement some operators, like "for" and "map".

This discussion is exposing how actual implementation of Perl 6 features need to face this operators, to allow the expected lazyness even in operators like "for". We reached the point where "for" is a synonym for "map", and both receives an iterator in item context and returns an iterator.

Iterators in scalar context should be accessible by using prefix:<=> and return one item at a time (despite each iteration of "map" returning 0 or several items). In List context, creates a generic Lazy List and in Slice context, returns a generic Lazy Slice...

All this is probably going to produce changes in the spec, since Iterator is not yet listed as a Built-in type, while larry had so far agreed with the proposed approach.

It's important to realize, however, the this iterators won't be visible by the "user" most of the time (except when implementing some object that should be lazily-evaluated by "map").

Now it is possible to implement "map". The test already shows how it should look like in low-level, and SMOP should be the first implementation to support lazyness in the 'for' and 'map' operators...

Accordingly with latest updates, this grant is almost finished. We are waiting for a final report from Adam Kennedy.
Google Summer of Code 2008 Wrap Up written by Eric Wilhelm:


Google's Summer of Code 2008 is wrapping up now and I'm very pleased with how well The Perl Foundation's students and mentors have done. The five projects which survived the halfway point have all finished with great results.

Many thanks to all of the mentors and students as well as everyone in the community who helped or supported the process. Also, thanks to Google for putting on the program and to Richard Dice and Jim Brandt at TPF.

But the end is only the beginning. We should really get started on next year now. Perl needs to do a better job of attracting students, but I'll have to address these issues in another post.

Most of the students did a great job of blogging their progress, which I think is an important part of Summer of Code for the rest of the community. If you have been following along with any of the student projects, please drop me a note or leave a comment. I would love to hear more opinions from outside of the active SoC participants. Also, please thank the mentors and students for their work. Of course, they "know" you appreciate their effort -- but it really means something if you actually send them an e-mail or say thanks on irc.

For those just joining us, here is a run-down of the SoC projects and some links.

Flesh out the Perl 6 Test Suite
    student: Adrian Kreher
    mentor: Moritz Lenz
    Blog | Code | Moritz's Recap

wxCPANPLUS
    student: Samuel Tyler
    mentors: Herbert Breunung and Jos Boumans
    Blog | Code | CPAN distribution

Native Call Interface Signatures and Stubs Generation for Parrot
    student: Kevin Tew
    mentor: Jerry Gay
    Mail | Code | (older branch)

Incremental Tricolor Garbage Collector
    student: Andrew Whitworth
    mentor: chromatic
    Blog | Code

Math::GSL
    student: Thierry Moisan
    mentor: Jonathan Leto
    Blog | Code | CPAN distribution | Jonathan's Recap

Get your PPW talk proposals in by 12 September 2008

| | Comments (0)

Our colleagues, the organizers of the Pittsburgh Perl Workshop, asked us to help get the word out about PPW and to remind people that they are currently accepting talk proposals, up until September 12. You can get more details on their web site at http://pghpw.org/ppw2008/

This will be the third year of the event. The past 2 years it has shown itself to be an exceptional and fun Perl gathering. It's worth the effort to attend if you can work it into your schedule.

This is the final report for the Smolder grant, by Michael Peters:

Here are the original deliverables from my grant proposal:

  1. Remove custom XML format in favor of using plain TAP and TAPx::Parser.
  2. Extend Smolder to handle small CPAN style modules more easily and automatically.
  3. Setup a Smolder server for the CGI::Application community to serve as a testing ground and public display for their 110+ CPAN modules.
  4. Add per-project and per-developer RSS feeds as an alternative to email notification.
Obtained results:

(1) is fulfilled with TAP::Parser::Archive that smolder now uses to get the details of the test run in TAP (and some YAML meta information). TAP::Parser::Archive is not specific to smolder but provides a nice way to bundle up the test run of any TAP producing suite.

(2) is done. This was mostly just making it easier in the UI to have lots of smaller projects.

(3) was changed. After discussing it with Adrian Howard (my grant manager), getting approval from the Grant Committee I decided that the effort would be better spent helping out the Parrot project. So the deliverable was changed to setup a Smolder server for Parrot. Which was easy after #1 and #2. So I went a bit further and added a "make smolder_test" target to Parrot itself. Working with the parrot team I've submitted several patches that have been accepted.

You can see Parrot's smoke tests at
http://smolder.plusthree.com/app/public_projects/smoke_reports/8

It seems to be really useful to them and their feedback has already prodded me to add more features to Smolder (like being able to directly download the TAP stream for individual test files). I plan on sticking around with parrot and adding the following:

  •  "make smolder_test" will replace "make smoke"
  • Adding smolder setups and targets for languages being built with Parrot (probably starting with Rakudo, Pipp and Cardinal)
  • Improving smolder's search interface so that you can not only look up things by a single tag, but multiple tags (to answer something like "when was the last time tests passed on Linux with GCC 4.1?").
(4) is done. I decided to use Atom feeds instead of RSS feeds, but they are basically the same to most people since it's the readers that handle the differences. And I was able to use the excellent XML::Atom::SimpleFeed module.