#1541: warnings appearing during 'make' invocation of pmc2c.pl
---------------------+------------------------------------------------------
Reporter: jkeenan | Owner: jkeenan
Type: bug | Status: assigned
Priority: normal | Milestone:
Component: build | Version: 2.2.0
Severity: medium | Keywords: pmc2c
Lang: | Patch: new
Platform: |
---------------------+------------------------------------------------------
Changes (by jkeenan):
* cc: Util (added)
* owner: => jkeenan
* status: new => assigned
* patch: => new
Comment:
Bruce Grey: Replying to [ticket:1541 jkeenan]:
On Apr 2, 2010, at 7:19 AM, James E Keenan wrote:
{{{
I have started to observe some warnings appearing early in the 'make'
process:
--snip--
/usr/local/bin/perl tools/build/pmc2c.pl --dump src/pmc/default.pmc
at /home/jimk/work/parrot/tools/build/../../lib/Parrot/Pmc2c/Dumper.pm
line 54
--snip--
sometime between r45132 (March 23) and r45159 (March 24).
}}}
Quick analysis:
1. Sub `find_file()` in ''Pmc2cMain.pm'' can be called with or without a
second parameter: `$die_unless_found`.
2. `file_find()` has contains debugging code that is innocuous when
`$die_unless_found` is set, but is inappropriate when `$die_unless_found`
is not set.
This code comes from r20228 (tewk - [Pmc2c] Work complete, Merge from
pmc2c branch).
3. Prior to r45138 (plobsing - merge no_pmc_install branch), every call to
`file_find()` set `$die_unless_found` to true.
4. In r45138, two calls to `file_find` were added without
`$die_unless_found` being set. The additions look appropriate, as do the
absence of `$die_unless_found`, but this caused the debugging code to
trigger in its inappropriate usage for the first time.
This patch should keep the same behavior when when `$die_unless_found` is
set, while suppressing the output when when `$die_unless_found` is not
set. The patch is not fully tested, and my analysis might be incomplete,
but that is all the time I have this weekend.
Tested with:
{{{
$ rm src/pmc/default.dump
$ perl tools/build/pmc2c.pl --dump src/pmc/default.pmc
}}}
{{{
Index: lib/Parrot/Pmc2c/Pmc2cMain.pm
===================================================================
--- lib/Parrot/Pmc2c/Pmc2cMain.pm (revision 45384)
+++ lib/Parrot/Pmc2c/Pmc2cMain.pm (working copy)
@@ -240,8 +240,11 @@
return $path if -e $path;
}
- print Carp::longmess;
- die "cannot find file '$file' in path '", join( "', '", @includes ),
"'" if $die_unless_found;
+ if ($die_unless_found) {
+ my $includes_list = join "', '", @includes;
+ Carp::confess("cannot find file '$file' in path
'$includes_list'");
+ }
+
return;
}
}}}
--
Hope this helps,
Bruce Gray
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/1541#comment:1>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets