Ticket #1757 (closed bug: fixed)

Opened 4 years ago

Last modified 4 years ago

Rakudo build broken by r48691/r48692

Reported by: pmichaud Owned by:
Priority: critical Milestone:
Component: core Version: 2.6.0
Severity: fatal Keywords:
Cc: Language: perl6
Patch status: Platform:

Description (last modified by pmichaud) (diff)

Reported by masak++

r48691 and r48692 appear to change the mechanism by which version information is obtained in opsc. Instead of using the 'version' entry of the config hash, it now reads the VERSION file from the Parrot build directory (given by config['prefix']).

This fails when opsc is being run using an installed parrot (i.e., outside of the build tree), as there is no VERSION file in the prefix directory of an installed Parrot. A Rakudo build thus fails when compiling its dynops with an error like:

cd src/ops && /home/pmichaud/rakudo/parrot_install/bin/ops2c C --dynamic perl6.ops
Unable to open filehandle from path '/home/pmichaud/rakudo/parrot_install/VERSION'
current instr.: 'slurp' pc 2063 (ext/nqp-rx/src/stage0/nqp-setting.pir:869)
called from Sub 'parrot;Ops;File;_set_version' pc 36651 (compilers/opsc/gen/Ops/Compiler/Actions.pir:0)
called from Sub 'parrot;Ops;File;new' pc 34563 (compilers/opsc/gen/Ops/Compiler/Grammar.pir:969)
called from Sub '_block11' pc 734 (ops2c.pir:293)
make: *** [src/ops/perl6_ops.so] Error 1
pmichaud@orange:~/rakudo$ 

This is another example where Parrot needs tests run against an installed copy of Parrot instead of a build copy.

Pm

Change History

Changed 4 years ago by pmichaud

  • description modified (diff)

Changed 4 years ago by cotto

This should be fixed in r48695, which looks in a different place for VERSION depending on whether it's running on an installed Parrot or not.

Changed 4 years ago by cotto

  • status changed from new to closed
  • resolution set to fixed

pmichaud verified that r48695 fixed Rakudo's build so I'm marking this as fixed.

Note: See TracTickets for help on using tickets.