I thought I'd try out newasm on the test suite - this is how we do:

Failed Test  Status Wstat Total Fail  Failed  List of failed
-------------------------------------------------------------
 t/op/basic.t      2   512     8    2  25.00%  3, 7
 t/op/bitwise.t   15  3840    15   15 100.00%  1-15
 t/op/ifunless.t   2   512     6    2  33.33%  1, 4
 t/op/integer.t    1   256    32    1   3.12%  9
 t/op/macro.t      8  2048     9    8  88.89%  1-4, 6-9
 t/op/number.t     1   256    31    1   3.23%  13
 t/op/rx.t        25  6400    27   25  92.59%  1-16, 18-26
 t/op/stacks.t     4  1024    15    4  26.67%  3-4, 13-14
 t/op/time.t       1   256     4    1  25.00%  2
 t/op/trans.t     18  4608    18   18 100.00%  1-18
 t/pmc/perlstrin   7  1792     8    7  87.50%  1-4, 6-8
 t/pmc/pmc.t      55 14080    56   55  98.21%  1-32, 34-56
 20 subtests skipped.
 Failed 12/19 test scripts, 36.84% okay. 139/313 subtests failed, 55.59%
 okay.


 In detail:

   basic.t - test 3 fails because the assembler doesn't recognise string
 constants in single quotes

           - test 7 uses macros


  bitwise.t - these tests fail because the assembler translates binary
  constants like 0b001100 to zero.


  ifunless.t, integer.t, number.t - the failing tests use the full op
  names; my patch of yesterday fixes this


  macro.t - we don't have macros any more


  rx.t - these tests all use local labels; if you change them to globals,
  all tests pass


  stacks.t - tests 4,13 & 14 all create PMCs, so won't work until the
  assembler groks PMC names

           - I have no idea why test 3 is failing


  time.t - test 2 has a line:

     ge N0, 0, OK1

  which isn't valid assembler, as there's no ge_n_i_i opcode; the fact
 that it's been passing up to now probably shows up a bug in assemble.pl

  trans.t - these use a macro to do floating point comparisons, so don't
 work with the new assembler

  perlstring.t, pmc.t - these create PMCs (obviously) so don't work right
 now


 Attached are patches for time.t (to fix the test) and rx.t (to change
 the local labels to globals).

 Simon

--- t/op/time.t.old     Sat Mar 16 15:58:29 2002
+++ t/op/time.t         Sat Mar 16 15:58:33 2002
@@ -28,7 +28,7 @@
 output_is(<<'CODE', <<'OUTPUT', "time_n");
        time    N0
        time    N1
-       ge      N0, 0, OK1
+       ge      N0, 0.0, OK1
        branch  FAIL
 OK1:   print "ok, (!= 1970) Grateful Dead not\n"
        ge      N1, N0, OK2


--- t/op/rx.t.old       Sat Mar 16 15:21:42 2002
+++ t/op/rx.t           Sat Mar 16 15:22:35 2002
@@ -10,10 +10,10 @@
                rx_allocinfo P0, S0
                bsr RX_0
                rx_info_successful P0, I0
-               if I0, \$yup
+               if I0, yup
                print "no match\\n"
                end
-       \$yup:
+       yup:
                rx_info_getstartindex P0, I1
                rx_info_getindex P0, I2
                length I3, S0
@@ -38,122 +38,122 @@

        RX_0:
                rx_setprops P0, "$_[2]", $_[3]
-               branch \$start
-       \$advance:
-               rx_advance P0, \$fail
-       \$start:
+               branch start
+       advance:
+               rx_advance P0, fail
+       start:
                $_[1]

                rx_succeed P0
                ret
-       \$fail:
+       fail:
                rx_fail P0
                ret
 END
 }

 output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'A is A');
-               rx_literal P0, "a", $advance
+               rx_literal P0, "a", advance
 CODE
 <><a><>
 OUTPUT

 output_is(gentest('b', <<'CODE'), <<'OUTPUT', 'A is not B');
-               rx_literal P0, "a", $advance
+               rx_literal P0, "a", advance
 CODE
 no match
 OUTPUT

 output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'Pattern longer than string');
-               rx_literal P0, "aa", $advance
+               rx_literal P0, "aa", advance
 CODE
 no match
 OUTPUT

 output_is(gentest('ba', <<'CODE'), <<'OUTPUT', 'inching through the string');
-               rx_literal P0, "a", $advance
+               rx_literal P0, "a", advance
 CODE
 <b><a><>
 OUTPUT

 output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'character classes (successful)');
-               rx_oneof P0, "aeiou", $advance
+               rx_oneof P0, "aeiou", advance
 CODE
 <><a><>
 OUTPUT

 output_is(gentest('b', <<'CODE'), <<'OUTPUT', 'character classes (failure)');
-               rx_oneof P0, "aeiou", $advance
+               rx_oneof P0, "aeiou", advance
 CODE
 no match
 OUTPUT

 output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'dot (success)');
-               rx_dot P0, $advance
+               rx_dot P0, advance
 CODE
 <><a><>
 OUTPUT

 output_is(gentest('\n', <<'CODE'), <<'OUTPUT', 'dot (failure)');
-               rx_dot P0, $advance
+               rx_dot P0, advance
 CODE
 no match
 OUTPUT

 output_is(gentest('aA9_', <<'CODE'), <<'OUTPUT', '\w (success)');
-               rx_is_w P0, $advance
-               rx_is_w P0, $advance
-               rx_is_w P0, $advance
-               rx_is_w P0, $advance
+               rx_is_w P0, advance
+               rx_is_w P0, advance
+               rx_is_w P0, advance
+               rx_is_w P0, advance
 CODE
 <><aA9_><>
 OUTPUT

 output_is(gentest('?', <<'CODE'), <<'OUTPUT', '\w (failure)');
-               rx_is_w P0, $advance
+               rx_is_w P0, advance
 CODE
 no match
 OUTPUT

 output_is(gentest('0123456789', <<'CODE'), <<'OUTPUT', '\d (success)');
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
 CODE
 <><0123456789><>
 OUTPUT

 output_is(gentest('@?#', <<'CODE'), <<'OUTPUT', '\d (failure)');
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
-               rx_is_d P0, $advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
+               rx_is_d P0, advance
 CODE
 no match
 OUTPUT

 output_is(gentest(' ', <<'CODE'), <<'OUTPUT', '\s (success)');
-               rx_is_s P0, $advance
+               rx_is_s P0, advance
 CODE
 <>< ><>
 OUTPUT

 output_is(gentest('a', <<'CODE'), <<'OUTPUT', '\s (failure)');
-               rx_is_s P0, $advance
+               rx_is_s P0, advance
 CODE
 no match
 OUTPUT

 output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'stack (pushindex/popindex)');
                rx_pushindex P0
-               rx_literal P0, "a", $advance
-               rx_popindex P0, $advance
+               rx_literal P0, "a", advance
+               rx_popindex P0, advance
 CODE
 <><><a>
 OUTPUT
@@ -161,9 +161,9 @@
 output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'stack (pushmark)');
                rx_pushmark P0
                rx_pushindex P0
-               rx_literal P0, "a", $advance
-               rx_popindex P0, $advance
-               rx_popindex P0, $advance
+               rx_literal P0, "a", advance
+               rx_popindex P0, advance
+               rx_popindex P0, advance
 CODE
 no match
 OUTPUT
@@ -171,7 +171,7 @@
 SKIP: { skip("Arrays are still wacky", 1);
 output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'groups');
                rx_startgroup P0, 0
-               rx_literal P0, "a", $advance
+               rx_literal P0, "a", advance
                rx_endgroup P0, 0

                rx_info_getgroup P0, I1, I2, 0
@@ -187,65 +187,65 @@
 }

 output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'ZWA: ^ (success)');
-               rx_zwa_atbeginning P0, $advance
-               rx_literal P0, "a", $advance
+               rx_zwa_atbeginning P0, advance
+               rx_literal P0, "a", advance
 CODE
 <><a><>
 OUTPUT

 output_is(gentest('b', <<'CODE'), <<'OUTPUT', 'ZWA: ^ (failure)');
-               rx_zwa_atbeginning P0, $advance
-               rx_literal P0, "a", $advance
+               rx_zwa_atbeginning P0, advance
+               rx_literal P0, "a", advance
 CODE
 no match
 OUTPUT

-output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'ZWA: $ (success)');
-               rx_literal P0, "a", $advance
-               rx_zwa_atend P0, $advance
+output_is(gentest('a', <<'CODE'), <<'OUTPUT', 'ZWA:  (success)');
+               rx_literal P0, "a", advance
+               rx_zwa_atend P0, advance
 CODE
 <><a><>
 OUTPUT

-output_is(gentest('ab', <<'CODE'), <<'OUTPUT', 'ZWA: $ (failure)');
-               rx_literal P0, "a", $advance
-               rx_zwa_atend P0, $advance
+output_is(gentest('ab', <<'CODE'), <<'OUTPUT', 'ZWA:  (failure)');
+               rx_literal P0, "a", advance
+               rx_zwa_atend P0, advance
 CODE
 no match
 OUTPUT

 output_is(gentest('a?', <<'CODE'), <<'OUTPUT', 'ZWA: \b (success)');
-               rx_literal P0, "a", $advance
-               rx_zwa_boundary P0, $advance
+               rx_literal P0, "a", advance
+               rx_zwa_boundary P0, advance
 CODE
 <><a><?>
 OUTPUT

 output_is(gentest('ab', <<'CODE'), <<'OUTPUT', 'ZWA: \b (failure)');
-               rx_literal P0, "a", $advance
-               rx_zwa_boundary P0, $advance
+               rx_literal P0, "a", advance
+               rx_zwa_boundary P0, advance
 CODE
 no match
 OUTPUT


 output_is(gentest('ba', <<'CODE', 'r'), <<'OUTPUT', 'reversed regexen (/r)');
-               rx_dot P0, $advance
+               rx_dot P0, advance
 CODE
 <b><a><>
 OUTPUT

 output_is(gentest('\n', <<'CODE', 's'), <<'OUTPUT', 'single-line regexen (/s)');
-               rx_dot P0, $advance
+               rx_dot P0, advance
 CODE
 <><
 ><>
 OUTPUT

 output_is(gentest('\n\n', <<'CODE', 'm'), <<'OUTPUT', 'multiline regexen (/m)');
-               rx_literal P0, "\n", $advance
-               rx_zwa_atbeginning P0, $advance
-               rx_zwa_atend P0, $advance
+               rx_literal P0, "\n", advance
+               rx_zwa_atbeginning P0, advance
+               rx_zwa_atend P0, advance
 CODE
 <><
 ><
@@ -255,9 +255,9 @@
 SKIP: {
        skip("Pending some sort of lowercasing op",1);
        output_is(gentest('HeLlO', <<'CODE', 'i'), <<'OUTPUT', 'case-insensitive 
regexen (/i)');
-               rx_literal P0, "hel", $advance
-               rx_oneof P0, "lmno", $advance
-               rx_oneof P0, "lmno", $advance
+               rx_literal P0, "hel", advance
+               rx_oneof P0, "lmno", advance
+               rx_oneof P0, "lmno", advance
 CODE
 <><HeLlO><>
 OUTPUT

Reply via email to