tools/build/ops2c.pl: Can it be removed?

Christoph Otto christoph at mksig.org
Sat Aug 21 03:55:55 UTC 2010


On 08/20/2010 07:52 PM, James E Keenan wrote:
> Since the #parrot theme of the week is to close Trac tickets, I took a
> fresh look at http://trac.parrot.org/parrot/ticket/677.
>
> Here is a list of tools/build/*.pl files found in the output of 'make':
>
> [li11-226:parrot] 531 $ grep -n 'tools/build'
> ~/learn/parrot/make.output/20100820.48587.parrot.txt | cut -d ' ' -f2 |
> sort | uniq -c
> 117 tools/build/c2str.pl
> 31 tools/build/h2inc.pl
> 2 tools/build/parrot_config_c.pl
> 1 tools/build/pbcversion_h.pl
> 192 tools/build/pmc2c.pl
> 1 tools/build/vtable_extend.pl
> 1 tools/build/vtable_h.pl
> (7 total)
>
> Now here is a list of all the Perl 5 programs in tools/build/:
>
> [li11-226:parrot] 532 $ ls tools/build/*.pl |cat
> tools/build/addopstags.pl
> tools/build/c2str.pl
> tools/build/fixup_gen_file.pl
> tools/build/h2inc.pl
> tools/build/headerizer.pl
> tools/build/ops2c.pl
> tools/build/parrot_config_c.pl
> tools/build/pbcversion_h.pl
> tools/build/pmc2c.pl
> tools/build/vtable_extend.pl
> tools/build/vtable_h.pl
> (11 total)
>
> 11 - 7 = 4 ... and one of the 4 *not* invoked by 'make all' really stood
> out for me: tools/build/ops2c.pl. (That's because I was involved in a
> major refactoring of this in early 2007. But since that time it's been
> replaced by (I think) an NQP thingee.)
>
> Peering in to tools/build/ops2c.pl, I see:
>
> # $Id: ops2c.pl 46938 2010-05-24 03:29:22Z bacek $
> ...
>
> warn 'ops2c.pl is deprecated. Use ops2c$(EXE) instead';
> # Ignore "core"
> shift @ARGV;
> my $ops2c = File::Spec->catfile($PConfig{bindir}, 'ops2c');
> exec $ops2c, @ARGV;
>
> And this was the last commit of this file to trunk. I didn't see any
> mention of this deprecation in DEPRECATED.pod (but, then again, such
> notice might have already passed its removal date).
>
> In any event, is there any reason why 'ops2c.pl' cannot be removed
> outright at this time? (From my earlier work on this file, I don't
> recall its ever being invoked outside the context of 'make'.)
>
> bacek, can you comment?
>
> Thank you very much.
>
> kid51
>

bacek and I (but mostly him) did indeed replace ops2c.pl's guts with an nqp 
fakecutable.  ops2c.pl was kept around so we could avoid a deprecation notice. 
  Apparently we forgot to add a deprecation notice to remove the script. 
Rakudo and Partcl have both switched to the fakecutable and I'm not aware of 
any other users with dynops, but removing the script would strictly require a 
deprecation cycle.
Since it's just a wrapper script now with little potential to mess anything 
else up, there's no harm in going through the proper deprecation cycle.

Christoph


More information about the parrot-dev mailing list