develooper Front page | perl.perl6.compiler | Postings from July 2006

Re: making v6 test suite its own distro

Thread Previous
From:
jerry gay
Date:
July 11, 2006 07:40
Subject:
Re: making v6 test suite its own distro
On 7/11/06, Gaal Yahas <gaal@forum2.org> wrote:
> On Mon, Jul 10, 2006 at 03:55:25PM -0700, Darren Duncan wrote:
> > I believe that the current Test.pm already qualifies as a baby-Perl
> > implementation, as overall its functionality is quite simple, and it
> > uses very little of the language (especially since its use of
> > junctions was removed a few weeks ago).
>
> Test.pm currently uses the following non-trivial language features:
>
> - implicitly, the ability to load a module
> - function export
> - function named args
> - parameter default values
> - &caller
> - $?CALLER::CALLER::POSITION
> - &sub.goto
> - %*ENV
> - END {...}
>
great list. we're currently working towards these points in the
parrot/perl6 implementation.

> Some of these can be given up on in a prospective Test::Simple, if only
> because they in themselves shouldn't be the first things an implementation
> should strive to provide for their own sake.
>
i hesitate to call a test module that uses a limited language
'::Simple,' as this word has been traditionally used for modules which
ease usability, not those that make the language implementor's job
easier. perhaps 'Test::Perl6::Sanity' might better describe testing
the sanity of a perl6 implementation... *ahem* really hard not to make
a snide remark here  *cough*.

> > Have a look at 01-sanity again.  Since I moved 08-test out of that
> > folder (and into 02-test-pm) none of those 01-sanity tests use
> > Test.pm at all.
> >
> > My impression of 01-sanity is that it checks that the Perl 6
> > implementation has the basic language functions that Test.pm has as a
> > prerequisite, such as being able to print, knowing basic
> > conditionals, supporting basic subroutines and modules.
> >
> > If 01-sanity runs, then the normal Test.pm should be useable, and
> > 02-test-pm checks that Test.pm itself actually works.  When that
> > runs, then the other tests can be performed as usual.
>
> Some things are missing in 01-sanity/ if the particular implementation
> of our current Test.pm is the par for tests there.
>
i'd love to see tests refactored to make 01-sanity/ the first wicket
(to use a croquet analogy) for testing a perl6 implementation.

> Clearly more tests should be added, but we can permit fledgling
> implementations to use their own worse-is-better Test modules. So these
> tests should perhaps go into 02-test-pm/, not 01-sanity/.
>
agreed. then higher-level constructs can be used in the *real*
Test.pm. in my opinion, Test.pm should be idiomatic perl6, as its
audience is well beyond we the foolish few perl6 implementors.

> > I would say for starters that anything which is written in Perl 6
> > will be shared by all implementations, and that includes Test.pm.
> >
> > Considering its few needs, any Perl that can't run the current
> > Test.pm is hardly useful, so they would be getting up to the level of
> > supporting Test.pm very quickly.  And in the process of getting to
> > that level, the 01-sanity tests can be tried without Test.pm.
>
> (Responded to above.)
>
i'd like to note that in order to get to the 01-sanity/ tests, we
(parrot/perl6 implementors) needed some tests of more basic building
blocks. for these tests, we created 00-parrot/. here we test literals,
math/logic/comparison ops, variable assignment/interpolation, inplace
math/string ops, and regex smartmatching. i suppose now i should call
this the 0th wicket. (that's what i hate about analogies--now i've
limited the audience who understands this one from *all croquet
players* to *all cs-geek croquet players*.)

i'm staked out. tea anyone?
~jerry

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About