Ticket #1890 (closed bug: fixed)

Opened 4 years ago

Last modified 4 years ago

installed parrot requires build dir.

Reported by: coke Owned by: jkeenan
Priority: normal Milestone: 2.11
Component: install Version: 2.10.0
Severity: medium Keywords:
Cc: Language:
Patch status: applied Platform: darwin

Description

on OSX/x86

  • build parrot and install it
  • run parrot -h from the install dir. #works
  • rename the build dir.
  • run parrot -h from the install dir # fails.

Attachments

darwin.libparrot_soname.diff Download (0.6 KB) - added by jkeenan 4 years ago.
darwin.libparrot_soname.diff.v2 Download (2.9 KB) - added by jkeenan 4 years ago.
revised version; modifies darwin hints and test of mk_language_shell.pl

Change History

  Changed 4 years ago by coke

See duplicate #1939.

follow-up: ↓ 4   Changed 4 years ago by jkeenan

  • platform set to darwin
  • component changed from none to install

1. This appears to be much the same issue discussed in TT #344.

2. moritz++ pointed out that Rakudo's RT #76808 apparently refers to the same problem.

3. I have attached a patch which, AFAICT, enables me to build and install Parrot, run make clean on the build directory (my sandbox), and then have all the installed executables work. ('work' in the sense of, I can call the executable with --version, --help, etc., get expected output and not get warnings or failure messages.)

But this comes at a cost. Before I installed, when I ran make test in the build dir (as I customarily do), I got these failures in t/tools/mk_language_shell.t:

[parrot] 542 $ prove -v t/tools/mk_language_shell.t 
t/tools/mk_language_shell.t .. 
1..7
ok 1 - mk_language_shell basic sanity
ok 2 - test_parrot_language_25310 dir exists
ok 3 - test_parrot_language_25310/t dir exists
ok 4 - test_parrot_language_25310/src dir exists
ok 5 - test_parrot_language_25310/setup.pir exists and has nonzero size
not ok 6 - language builds, exit code = 133

#   Failed test 'language builds, exit code = 133'
#   at t/tools/mk_language_shell.t line 60.
not ok 7 - language passes all tests, exit code = 133

#   Failed test 'language passes all tests, exit code = 133'
#   at t/tools/mk_language_shell.t line 65.
# Looks like you failed 2 tests of 7.
Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/7 subtests 

Test Summary Report
-------------------
t/tools/mk_language_shell.t (Wstat: 512 Tests: 7 Failed: 2)
  Failed tests:  6-7
  Non-zero exit status: 2
Files=1, Tests=7,  2 wallclock secs ( 0.10 usr  0.04 sys +  0.44 cusr  0.15 csys =  0.73 CPU)
Result: FAIL

Until today I never looked at this test before, and I have never used the program it calls, tools/dev/mk_language_shell.pl, before.

So I can't tell whether this indicates a serious problem with my patch or whether it's a side effect of the way that program and its corresponding test file are written. Does it make sense to try to create a new language on top of a Parrot in the build directory as opposed to an installed Parrot?

Note: I'm working on Darwin/PPC, so this is purely a Darwin issue -- not a PPC vs Intel issue.

Thank you very much.

kid51

Changed 4 years ago by jkeenan

  Changed 4 years ago by jkeenan

The attachment will fix the problem described in the description of this ticket. But I don't yet know how to deal with the t/tools/mk_language_shell.t problem or the other tickets.

in reply to: ↑ 2 ; follow-up: ↓ 5   Changed 4 years ago by jkeenan

  • status changed from new to assigned
  • cc doughera, allison, tommyd, JadeNB added
  • owner set to jkeenan

Replying to jkeenan:

Until today I never looked at this test before, and I have never used the program it calls, tools/dev/mk_language_shell.pl, before. So I can't tell whether this indicates a serious problem with my patch or whether it's a side effect of the way that program and its corresponding test file are written. Does it make sense to try to create a new language on top of a Parrot in the build directory as opposed to an installed Parrot?

On Darwin, I configured with a --prefix directory and subsequently called make install. I then followed the instructions in tools/dev/mk_language_shell.pl for creating a new language implementation:

$> perl tools/dev/mk_language_shell.pl Xyz
$> cd xyz

Using, in turn, each of the installed parrot and the build-directory parrot, I then called:

$> parrot setup.pir
$> parrot setup.pir test

In each case, the language built and tested satisfactorily. I also ran mk_language_shell.pl, changed the name of the build directory, and ran the setup.pir commands with the installed executable. Again, the results were satisfactory.

I infer from this that the test failure in t/tools/mk_language_shell.t I experienced earlier when configuring with my patch to config/init/hints/darwin.pm is a problem with the test file -- not a problem with the patch or with tools/dev/mk_language_shell.pl.

Other opinions? Am cc-ing contributors to TT #344.

Thank you very much.

kid51

in reply to: ↑ 4   Changed 4 years ago by jkeenan

Replying to jkeenan:

Replying to jkeenan: I infer from this that the test failure in t/tools/mk_language_shell.t I experienced earlier when configuring with my patch to config/init/hints/darwin.pm is a problem with the test file -- not a problem with the patch or with tools/dev/mk_language_shell.pl.

I have confirmed this inference. I modified t/tools/mk_language_shell.t to look first for an installed parrot and only later for a build parrot in determining which parrot executable to use in running setup.pir and setup.pir test. I then cleared away some of the underbrush surrounding the system calls. I then used a SKIP block to test for the case that I was running on Darwin but before I had an installed Parrot. With these modifications, I was able to create workable language shells which passed all tests.

Please see revised patch.

Thank you very much.

kid51

Changed 4 years ago by jkeenan

revised version; modifies darwin hints and test of mk_language_shell.pl

  Changed 4 years ago by doughera

  • cc doughera removed

  Changed 4 years ago by jkeenan

  • cc allison, tommyd, JadeNB removed
  • status changed from assigned to closed
  • resolution set to fixed
  • patch set to applied

Applied:

[master 3f4a9c6] On Darwin, use installed dir, not build dir, for libparrot_soname.

Note: See TracTickets for help on using tickets.