On Wed, Oct 22, 2008 at 10:49 PM, Patrick R. Michaud (via RT) <[EMAIL PROTECTED]> wrote: > # New Ticket Created by Patrick R. Michaud > # Please include the string: [perl #60070] > # in the subject line of all future correspondence about this issue. > # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=60070 > > > > In the lex branch I'm trying to add a new opcode, but > I'm running into a build issue with opcode renumbering -- > after adding an opcode and running "make opsrenumber", > attempting to rebuild parrot fails with: > > /usr/bin/perl tools/build/ops2pm.pl src/ops/core.ops src/ops/bit.ops > src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops src/ops/io.ops > src/ops/math.ops src/ops/object.ops src/ops/pic.ops src/ops/pmc.ops > src/ops/set.ops src/ops/stm.ops src/ops/string.ops src/ops/sys.ops > src/ops/var.ops > skipped opcode is also in src/ops/ops.num at lib/Parrot/Ops2pm.pm line 145, > <$op> line 11. > make: *** [lib/Parrot/OpLib/core.pm] Error 9 > > In fact, this failure appears even if a new opcode isn't added -- > simply performing "make opsrenumber" followed by "make" results in > the same error: > > $ svn up > At revision 32122. > $ make opsrenumber > /usr/bin/perl tools/dev/opsrenumber.pl src/ops/core.ops src/ops/bit.ops > src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops src/ops/io.ops > src/ops/math.ops src/ops/object.ops src/ops/pic.ops src/ops/pmc.ops > src/ops/set.ops src/ops/stm.ops src/ops/string.ops src/ops/sys.ops > src/ops/var.ops > $ make > [...] > /usr/bin/perl tools/build/ops2pm.pl src/ops/core.ops src/ops/bit.ops > src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops src/ops/io.ops > src/ops/math.ops src/ops/object.ops src/ops/pic.ops src/ops/pmc.ops > src/ops/set.ops src/ops/stm.ops src/ops/string.ops src/ops/sys.ops > src/ops/var.ops > skipped opcode is also in src/ops/ops.num at lib/Parrot/Ops2pm.pm line 145, > <$op> line 11. > make: *** [lib/Parrot/OpLib/core.pm] Error 9 > $ > > Since a number of steps have changed since the last time I worked > with adding/removing opcodes (April 2008), and I have little idea > what might be causing this, I'm filing this ticket in hopes that > someone can clear things up for me. > this is definitely fallout from the mmd branch merge. seems ops.skip hasn't been modified, and make opsrenumber was never run after opcodes were modified.
i wrote a hack that suggests all ops from ops.skip should be removed: #!perl use strict; use warnings; open my($NUM), '<', 'ops.num' or die $!; open my($SKIP), '<', 'ops.skip' or die $!; my $seen = {}; while (<$SKIP>) { next unless m/^(\w+)/; $seen->{$1}++; } while (<$NUM>) { next unless m/^(\w+)/; --$seen->{$1} if defined $seen->{$1}; } print $seen->{$_} ? ($_,$/) : () for keys %$seen; ===== c:\usr\local\parrot\main\src\ops>seen.pl c:\usr\local\parrot\main\src\ops> ===== it returns no results, suggesting that all ops be removed from ops.skip. indeed, after this, i am able to rebuild parrot, even with an added opcode to core.ops (and running make opsrenumber). however, i'm too tired to wait for the test suite to finish running, so i'm reporting this before i hit the sack and will pick it up on the morrow if nobody beats me to it. ~jerry