Greetings,

I wish to help out the development of Perl 6, initially running under Pugs, by supplying test code of sorts, written in Perl 6, that we would attempt to run under Pugs (and eventually Parrot) to ensure that it works correctly with the subset of Perl 6 that I use.

Yesterday I was reading the newest Pugs missive on Perl.com, and read the Pugs Apocryphon 1; I seem to remember reading a line that said there was a collection of Perl code already under way that was used for such testing of but on further reading I was unable to re-discover the reference. This collection formed a "To Do" of sorts, illustrating code that Pugs needed to support eventually, but didn't necessarily support yet, and provided guidance towards further Pugs development. I didn't get the impression that this "To Do" code was in the Pugs distro, and that the distro only contained Perl 6 code that already was working.

Question 1: So where would I find the "To Do" code collection?

Related to this, my current working set of CPAN module contributions (those modules started on or after January of 2003) has been designed from the start with the intent that they be moved to Perl 6 / Parrot as soon as possible, being among the very first useful modules available on CPAN for Perl 6 / Parrot users. These are not modules that were created only for Perl 5 and then moved to Perl 6 as an after-thought. My Perl 5 versions are intended to be working prototypes for the Perl 6 versions. They make use of simulations of features that will be native to Perl 6 but that Perl 5 doesn't support, such as compile-time declared and typed class/object properties, and compile-time constant values.

The modules in question are "Locale::KeyedText", "SQL::Routine[|::*]" and "Rosetta[|::*]" which are concerned with localization and databases.

I intend that my main contribution towards tests for Perl 6 is to actually produce the Perl 6 versions of the aforementioned modules, and their test suites, as soon as possible. This code would be more comprehensive or complicated by its nature than a typical test-only suite, and we already know what kind of output the tests should produce because it is what the tests in the Perl 5 version produce.

I will start off by making the Perl 6 version of Locale::KeyedText, because that module is the simplest, the most rigorously defined, and has the most thorough test suite of the lot. Once this module is shown to be working under Pugs, I will next port SQL::Routine (the next most mature module) and go on from there.

Given the Pugs road map, I suppose that none of my modules will work until at least version 6.28, since they are object oriented. At the same time, I don't do anything particularly fancy, so I probably don't need the features pending subsequent major releases.

Considering the Apocryphon question on a CPAN for Perl 6 modules, I will conform by initially naming my modules into the "Perl6::lib" namespace; they will have the same names they do now but for that namespace prefix. For example, my first module will be named "Perl6::lib::Locale::KeyedText" v0.01 (which corresponds to the upcoming Locale::KeyedText v1.02).

Question 2: Should I just upload my ports in Perl 6 to CPAN the usual way, or do you have a special repository for "To Do" Perl 6 code that you want me to stuff it into, or should I do both?

Question 3: What's the deal with this Kwid thing? Is this an official replacement for Pod that I missed reading about, or is it something temporary that is used with Pugs and will have to be rewritten again later to Pod? I plan to port my docs as well as the code, so I should know whether to do it in Kwid or Pod.

Question 4: If Perl 6 code is to start being released to CPAN now, is there an already planned method for those distros to say the right things in their Makefile.PL so that the existing automated CPAN testers network can know to run them through Pugs? Or do we just have to skip automated tests for now?

Thanks for any feedback and directions.

-- Darren Duncan

Reply via email to