Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

language testing on pdd25cx, preparing to merge

1 view
Skip to first unread message

Allison Randal

unread,
Jul 17, 2008, 4:27:14 AM7/17/08
to p2
After temporarily disabling the graph coloring register allocator, the
pdd25cx branch passes all Parrot tests. Please run the tests for your
language and report/debug any test failures that are different than the
test failures in trunk.

The plan is to merge the branch back into trunk on Friday or Saturday.

Allison

Moritz Lenz

unread,
Jul 17, 2008, 5:03:55 AM7/17/08
to p2
Allison Randal wrote:
> After temporarily disabling the graph coloring register allocator, the
> pdd25cx branch passes all Parrot tests. Please run the tests for your
> language and report/debug any test failures that are different than the
> test failures in trunk.

I ran the tests for rakudo. "make test" is clean, "make
spectest_regression" reveals some bugs ("make spectest_regression" is
clean in trunk).

Most of them are quite similar to this one:

t/spec/S02-builtin_data_types/type..............1/25 too few arguments
passed (0
) - 1 params expected
current instr.: 'paramtype' pc 742 (EVAL_15:276)
called from Sub '_block165' pc 688 (EVAL_15:260)
called from Sub '_block11' pc 280 (EVAL_15:98)
called from Sub 'parrot;PCT::HLLCompiler;eval' pc 806
(src/PCT/HLLCompiler.pir:4
81)
called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1088
(src/PCT/HLLCompiler
.pir:610)
called from Sub 'parrot;PCT::HLLCompiler;command_line' pc 1267
(src/PCT/HLLCompi
ler.pir:699)
called from Sub 'parrot;Perl6::Compiler;main' pc 12211 (perl6.pir:174)

There's also a HLL scoping failure which I'd attribute to the PGE problems:

t/spec/S12-class/attributes.....................Scope not found for
PAST::Var '
$a'
current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156
(src/PCT/HLLCompiler.pir:
103)
[longish stack trace snipped]

Other errors are:
* get_integer() not implemented in class 'Range' (in
t/spec/S29-array/delete)
* Method 'min' not found for invocant of class 'Int' (in
t/spec/S29-list/minmax)
* No result object (in t/spec/S29-num/abs)

plus a few parse errors.

I also get errors in parrot's PGE tests (I guess they are known already;
if not I can happily send the details)

> The plan is to merge the branch back into trunk on Friday or Saturday.
>
> Allison


--
Moritz Lenz
http://moritz.faui2k3.org/ | http://perl-6.de/

Bob Rogers

unread,
Jul 18, 2008, 12:14:57 AM7/18/08
to Allison Randal, p2
From: Allison Randal <all...@perl.org>
Date: Thu, 17 Jul 2008 01:27:14 -0700

Allison

The same Kea-CL tests are failing in pdd25cx revision 29565 as I
mentioned in this message:

From: Bob Rogers <rogers...@rgrjr.dyndns.org>
Date: Tue, 8 Jul 2008 22:21:06 -0400

. . . I am seeing three test failures when it should execute a
pushaction sub, but does not. Two are when transferring control to
an error handler, and another when calling a continuation . . .

I will try to write a test case for this, but not before Saturday at the
earliest.

-- Bob

Allison Randal

unread,
Jul 18, 2008, 11:53:39 AM7/18/08
to Moritz Lenz, p2
Moritz Lenz wrote:
>
> I also get errors in parrot's PGE tests (I guess they are known already;
> if not I can happily send the details)

I get no errors in PGE's tests on Mac OS X or Ubuntu as of r29552, so
please send the details.

Allison

Allison Randal

unread,
Jul 18, 2008, 12:26:05 PM7/18/08
to Bob Rogers, p2
Bob Rogers wrote:
>
> The same Kea-CL tests are failing in pdd25cx revision 29565 as I
> mentioned in this message:
>
> From: Bob Rogers <rogers...@rgrjr.dyndns.org>
> Date: Tue, 8 Jul 2008 22:21:06 -0400
>
> . . . I am seeing three test failures when it should execute a
> pushaction sub, but does not. Two are when transferring control to
> an error handler, and another when calling a continuation . . .
>
> I will try to write a test case for this, but not before Saturday at the
> earliest.

In the new implementation 'pushaction' subs are no longer automatically
run when executing an exception handler or continuation. The *only* way
to run a pushaction sub is with 'popmark'. (Also, dynamic_env is no
longer unrolled with the execution of continuations or exception handlers.)

I updated all the code I could find using 'pushaction' in the
repository. It looks like Kea-CL isn't in the Parrot repository. Do you
have it in a public repository I can submit a patch to?

I won't hold up the merge for external languages, since we still have
nearly a full month before the next Parrot release.

Allison

Allison Randal

unread,
Jul 18, 2008, 12:29:12 PM7/18/08
to Moritz Lenz, p2

Oh, but do make sure you've updated to the latest svn, and have run
'realclean', as there have been some significant changes in the past few
days (resolving the old PGE test failures).

Allison

Bob Rogers

unread,
Jul 18, 2008, 8:22:10 PM7/18/08
to Allison Randal, p2
From: Allison Randal <all...@perl.org>
Date: Fri, 18 Jul 2008 09:26:05 -0700

Bob Rogers wrote:
> The same Kea-CL tests are failing in pdd25cx revision 29565 . . .

In the new implementation 'pushaction' subs are no longer automatically
run when executing an exception handler or continuation. The *only* way
to run a pushaction sub is with 'popmark'. (Also, dynamic_env is no
longer unrolled with the execution of continuations or exception handlers.)

That could be a problem. Given sub A calls B calls C, where B does
pushaction, and C throws an exception (or calls a continuation) that is
caught by A, how does A know that it needs to push/pop a mark? I could
do pushmark everywhere I take a continuation, and popmark at every
continuation destination . . . but what's the advantage to requiring
this boilerplate PIR for every continuation?

And what happens when some sub A doesn't obey this protocol? In that
case, sub B would not be able to count on having its pushaction called
when exited.

I updated all the code I could find using 'pushaction' in the
repository. It looks like Kea-CL isn't in the Parrot repository. Do you
have it in a public repository I can submit a patch to?

It's a Subversion repository at
https://rgrjr.dyndns.org/svn/kea-cl/trunk/ these days (with apologies
for the lame cert). The relevant PIR-generating code is written in
Lisp, however, so I don't expect a patch. (At least I don't consider it
reasonable to expect one, but if you happen to be keen on it, go for
it!)

I won't hold up the merge for external languages, since we still have
nearly a full month before the next Parrot release.

Allison

That's fine; I may be the only one on the planet who needs pushaction
these days. ;-}

-- Bob

Bob Rogers

unread,
Jul 19, 2008, 9:57:22 PM7/19/08
to Allison Randal, p2
From: Bob Rogers <rogers...@rgrjr.dyndns.org>
Date: Fri, 18 Jul 2008 00:14:57 -0400

The same Kea-CL tests are failing . . .

I will try to write a test case for this, but not before Saturday at
the earliest.

The attached patch (against the trunk) adds a case which fails in
pdd25cx but works in trunk. Should I go ahead and commit it, and if so,
to branch, trunk or both?

-- Bob

Allison Randal

unread,
Jul 20, 2008, 2:26:10 AM7/20/08
to Bob Rogers, p2
Bob Rogers wrote:
>
> The attached patch (against the trunk) adds a case which fails in
> pdd25cx but works in trunk. Should I go ahead and commit it, and if so,
> to branch, trunk or both?

Looks like you forgot to attach the patch.

Allison

Stephen Weeks

unread,
Jul 20, 2008, 7:01:15 PM7/20/08
to parrot-...@perl.org
Not long ago, Allison Randal proclaimed...

Cardinal passes all tests.

Lolcode dies in lolcode;Grammar;Actions;expression with:

No exception handler and no message

Allison Randal

unread,
Jul 21, 2008, 2:27:44 AM7/21/08
to Bob Rogers, p2

Got it, thanks. That patch demonstrates the exact behaviour that is no
longer supported under the new spec and implementation. Tell me more
about how you're using the old pushaction, and I'll suggest alternatives
for implementing that functionality.

Allison

Moritz Lenz

unread,
Jul 21, 2008, 5:58:33 AM7/21/08
to Allison Randal, p2

With r29647 all parrot tests pass again (plus one TODO passed in
t/op/exceptions.t)

Most of the spectest_regression failures in rakudo also went away, most
remaining ones are now like this one:
"t/spec/S06-signature/named-parameters............No exception handler
and no message"

Cheers,
Moritz

Bob Rogers

unread,
Jul 21, 2008, 11:30:27 PM7/21/08
to Allison Randal, p2
From: Allison Randal <all...@perl.org>
Date: Sun, 20 Jul 2008 23:27:44 -0700

. . . That patch demonstrates the exact behaviour that is no

longer supported under the new spec and implementation. Tell me more
about how you're using the old pushaction, and I'll suggest alternatives
for implementing that functionality.

Allison

I am using pushaction to implement UNWIND-PROTECT [1] and dynamic
(a.k.a. "special") variable binding [2]. These features are both
illustrated by the "Actions" page of my YAPC talk [3]. The diagrams on
this page show how the current implementation works in gory detail. I
mention this example because it is a reasonable approximation to a
real-world case that illustrates why one would want continuations to
invoke actions transparently. (Indeed, this is why I made the feature
work the way it does in r14668. ;-)

In fact, you can check out the whole talk from the Subversion
repository [4] and run "make test" (after appropriate makefile editing).
The test-action case does indeed fail in pdd25cx; I tried it before and
thought it was working, but I must have tested it wrong.

Just to be painfully clear, these are critical Common Lisp features,
without which Kea-CL is not worth pursuing.

-- Bob

[1] http://www.lispworks.com/documentation/HyperSpec/Body/s_unwind.htm

[2] http://www.lispworks.com/documentation/HyperSpec/Body/d_specia.htm

[3] http://rgrjr.dyndns.org/perl/acsip/actions.html

[4] https://rgrjr.dyndns.org/svn/web-site/trunk/perl/acsip/

0 new messages