#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

Reply via email to