Running Grants (2009 - II)
Wed, 14-Jan-2009 by
Alberto Simões
edit post
Prepare for a big post! Here are the most recent updates from TPF running grants.
* "Port pyYAML to Perl":http://www.perlfoundation.org/ingy_dot_net_port_pyyaml_to_perl
No updates this time.
* "Test::Builder 2":http://www.perlfoundation.org/test_builder_2
Schwern update: _TB2 development has been dead for the last few months, largely because I haven't been programming. I'm getting started again, I've been poking at the code again lately, and I'm making three changes to the way its developed._
_1) Reigning in the TB2 goals back to what was in the grant. For a while I had a huge number of potential additions that kind of ballooned out._
_2) I was originally working bottom up, writing out the low-level TB2 components, and it wasn't working as it lacked direction. I've changed to writing a feature stripe fleshing out enough of TB2 to make Test::Simple work. That seems to be working much better._
_3) I'm still the only one coding on the project, which isn't good. I'm starting up a local weekly hackathon group here in Portland to try and get more people involved and also get a rhythm going._
* "SMOP":http://www.perlfoundation.org/smop_simple_meta_object_programming
Daniel update: _A lot has happened, I'll try to summarize it:_
1) _We created a ROADMAP directory in mildew that hosts tests for features that are not yet implemented. The t/ directory hosts only tests that are already implemented._
2) _I started writing a more definitive documentation on SMOP, they are called the SMOP lowdocs, and they reside in the lowdoc directory._
3) _A method in mildew now binds a special variable "$?self" which points to the invocant of that method. That variable is used by the "self" keyword, which is now supported in mildew._
4) _mildew now support implicit return of the value of the last statement run._
5) _SMOP build system is now SConstruct, we hope it fits our needs, as it is the third build system we try._
6) _pmurias++ embedded the p5 interpreter in SMOP, mildew can eval p5 code now, sending and receiving values, there's an example using p5 CGI.pm and other using SDL in mildew/example._
7) _SMOP now support exception handling, this is a major implementation since a lot of stuff in Perl 6 is handled as exceptions, like "return", "warn" and others. SMOP already supports both CONTROL blocks and CATCH blocks, the return function can be implemented with all the proper semantics expected. This is a big deal, since SMOP/mildew is the first to implement return as spec._
8) _mildew supports &?BLOCK and &?ROUTINE as spec._
9) _mildew supports MY:: and CALLER:: pseudo-packages as spec, we use a "FlattenedScope" type that receives .{} calls and implement it as "lookup" in the desired lexical scope._
10) _SMOP raised a very important question on how Capture should behave. The spec currently fails to DWIM in several situations. SMOP currently implements one piece of DWIM, but this issue is still open. This also made larry include the "\" modifier in the signature, which means "non-slurpy capture". If you have a :(|$something) signature, it will contain the signature as it was sent to the invocation while :(\ $something) will treat the first positional argument as a capture. This is important to allow foo(bar(baz(),1),2),3) to delay the context at which each value is used. At the same time, using foo( (|$bar) ) means sending a capture as the first positional argument. The point still open is "what should a capture return when coerced to a context it doesn't provide a value for?"._
11) _The return function is now part of the SMOP prelude in src-s1p, but it requires "is export". It turns out that traits are implemented as a multi, so we need to implement Multi before we can have "is export". In the meanwhile, "is export" is handled as a compile hack in mildew, but it doesn't solve the problem for "return", because "return is export (:DEFAULT)", so we need the multi._
12) _When implementing CATCH and CONTROL, we needed to add to call-with-current-continuation in SMOP. Now you can send an additional named parameter "cc" to postcircumfix:<( )> in order to provide the current continuation. The CATCH and CONTROL blocks are executed with the outer of it's outer block as the current continuation._
13) _mildew now supports "our" declarations, but you should notice that, unlike Perl 5, "our" doesn't mean global. It just mean that it is registered in $?PACKAGE. But $?PACKAGE is a lexical variable, so you might have an "our" variable inside a "my" package._
14) _mildew now supports Foo::Bar::.method, which means calling "method" in the Package Foo::Bar. mildew consider that the packages are stored in the lexical scope with the "::" suffix._
15) _mildew was refactored splitting all VAST types in different files, this should make it easier to maintain._
16) _mildew now supports attributes in knowhows, this is a requirement to implement Multi, which is implemented already in the SMOP prelude in Perl 6_
17) _mildew now supports "loop" and "unless" statement control, which are also a requirement for Multi._
18) _mildew now supports prefix:<=>._
* "Archive::Zip bugs":http://www.perlfoundation.org/fixing_bugs_in_the_archive_zip_perl_module
No updates this time.
* "Extending BSDPAN":http://www.perlfoundation.org/colin_smith_extending_bsdpan
No updates this time.
* "Perl Cross-Compilation for WinCE and Linux":http://www.perlfoundation.org/vadim_konovalov_perl_cross_compilation_for_linux_and_wince
No updates this time.
* "Tcl/Tk Access in Rakudo":http://www.perlfoundation.org/vadim_konovalov_tcl_tk_access_for_rakudo
No updates this time.
* "The Perl Survey":http://www.perlfoundation.org/kieren_diment_the_perl_survey
Kieren update: _I've got things ready for data analysis now. I've done the bulk of the data munging to get things reasonably consistent and tractable anyway, have to skeleton a report structure together next. I think I need to talk to skud about getting what was on perlsurvey.org next which has fallen off the net she's on holiday right at the moment though I think._
* "The Mojo Documentation Project":http://www.perlfoundation.org/sebastian_riedel_the_mojo_documentation_project
Sebastian has been planning the first chapter, which will be a introduction to web programming in general. Written much like a CGI tutorial but with modern Mojo based examples.
* "Embeding Perl into C++ Applications":http://www.perlfoundation.org/leon_timmermans_embedding_perl_into_c_applications
Leon update: _Looking back to the list of deliverables I'd say one of them is completely finished (porting to 5.10). Fixing up exportation is almost finished, but not tested much, I'd make that milestone number one. Re-implementing the regexps for 5.10 (including unit tests and documentation) would probably be milestone number two (that's probably the biggest one). Milestone number three should probably be finishing the rest of the unit tests (not that much work) and number four the same about the documentation (though I'm not really sure when to call documentation finished). I haven't really started porting the build process yet, but Adam Kennedy's recent announcement (http://use.perl.org/~Alias/journal/38036) sounds like it will make my life a lot easier, that would be the final milestone._
_I've added support for exporting member variables. I've refactored (and renamed, see documentation) the exportation code based on that. I've added tests for method calling and function exportation. Also I've also started writing the regexp code. So far I'm progressing slower that I had hoped, mostly because documentation is lacking and the regular expression engine isn't exactly the easiest part of the perl source code to read._
* "Moose Docs":http://www.perlfoundation.org/dave_rolsky_moose_docs
Dave wasn't able to work on his grant the last two weeks. He will get back to the grant as soon as possible.
* "Integrating Padre with Parrot and Rakudo":http://www.perlfoundation.org/gabor_szabo_integrating_padre_with_parrot_and_rakudo
Gabor update: _I fixed the Parrot Plugin of Padre and even released a pre-packaged version of Parrot and Rakudo with Strawberry Perl and Padre_. He also started to write unit tests for an API for embedding Parrot in Perl 5. See "http://www.szabgab.com/blog/2009/01/1232096454.html":http://www.szabgab.com/blog/2009/01/1232096454.html
Comments (0)