How is make install for the pbc_to_exe generated languages supposed to work?

For the utils you simply link to a fixed install_config.o with fixed builddir.
But the languages are generated from a .pir file with hardcoded, wrong builddir.

I think about adding support for an optional --install arg in all pir's for the
pbc_to_exe step sub 'compile_file', and use the install builddir then.
Maybe also replace in  'link_file' parrot_config with install_config.

Or is there a possibility to override the config hash in the pbc somehow?


---------- Forwarded message ----------
From: Reini Urban <[EMAIL PROTECTED]>
Date: 2008/7/21
Subject: Re: [ANNOUNCEMENT] Updated: parrot-0.6.4-1 with parrot-perl6
and parrot-languages
To: [EMAIL PROTECTED]

2008/7/21 Michael Schaap:
> On 20-Jul-2008 17:36, Michael Schaap wrote:
>> On 19-Jul-2008 21:42, Reini Urban wrote:
>>> Michael Schaap schrieb:
>>>> Is perl6 supposed to (somewhat) work, yet?
>>>> I get:
>>>> % perl6 -e 'say "Hello, World!"'
>>>> "load_bytecode" couldn't find file 'P6object.pbc'
>>>> current instr.: 'onload' pc 0 (src/gen_builtins.pir:28)
>>>> called from Sub 'parrot;Perl6::Compiler;main' pc -1 ((unknown file):-1)
>>>>
>>>> P6object does exist, in /usr/lib/parrot/library.
>>>> If I cd to this directory first, I get:
>>>> % cd /usr/lib/parrot/library; perl6 -e 'say "Hello, World!"'
>>>> Null PMC access in get_string()
>>>> current instr.: 'parrot;P6metaclass;add_parent' pc 119
>>>> (runtime/parrot/library/P6object.pir:137)
>>>> called from Sub 'parrot;P6metaclass;add_parent' pc 241
>>>> (runtime/parrot/library/P6object.pir:215)
>>>> called from Sub 'parrot;P6metaclass;register' pc 411
>>>> (runtime/parrot/library/P6object.pir:295)
>>>> called from Sub 'parrot;Str;onload' pc 965 (src/gen_builtins.pir:619)
>>>> called from Sub 'parrot;Perl6::Compiler;main' pc -1 ((unknown file):-1)

> Hmm...  I see in /usr/share/doc/parrot-0.6.4/languages/perl6/README:
> If you want to create a binary executable of the compiler
> that can be invoked as "perl6" from the command line, then
> try "make perl6".  This will create a "perl6" (or "perl6.exe")
> binary that can be directly used from the command line:
>
>   $ ./perl6 hello.pl
>
> This binary executable feature is still somewhat experimental,
> and may not work on all platforms.  Also, the binary has hardcoded
> paths to the Parrot build tree (especially the dynamic libraries
> and modules), so removing the build tree will cause the binary
> to stop working.

You are right. perl6 and all the similarlily generated
parrot-languages binaries
do not work. They have hardcoded paths to the builddir, which I
thought I have fixed, but my fix only affected parrot itself not the
dumped (with pbc_to_exe generated) languages executables. And my test
did not include renaming the builddir.

Best is to remove these two packages from the release dir until I fix it.
I'm behind a strict firewall now, can someone do this for me?






-- 
Reini Urban
http://phpwiki.org/ http://murbreak.at/

Reply via email to