Running Grants (2009 - II)

Prepare for a big post! Here are the most recent updates from TPF running grants.

No updates this time.

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.

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:<=>.

No updates this time.

No updates this time.

No updates this time.

No updates this time.

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.

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.

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.

Dave wasn't able to work on his grant the last two weeks. He will get back to the grant as soon as possible.

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

Tags:

Post a comment

If you have an OpenId URL, you can enter it here to post comments on this site.

Category

This page contains a single entry from the blog posted on January 16, 2009.

Many more entries can be found on the main index page or by looking through the archives.

Powered by
Socialtext