Build broken

James E Keenan jkeen at verizon.net
Sun Mar 25 13:53:12 UTC 2012


On 3/25/12 2:22 AM, Jonathan "Duke" Leto wrote:
> Howdy,
>
> I just fixed this in d1142ed .
>
> The problem was that Jim accidentally removed a dependency on
> miniparrot for pr0.pbc . This only broke the build when using -jX
> where X>  1.
>

Duke, thanks for catching and fixing this.

There are some ironies in this.  First, it was only when I recently read 
the draft version of nine's thesis that I became aware of how much of a 
change the advent of multicore machines has meant since the middle of 
the last decade.  So it was only recently that I decided to see whether 
'make -j4' would work on my Linode.  When it did not, I assumed it was 
the machine's fault rather than the fault of my revisions to 
config/gen/makefiles/root.in.  So, during testing, I simply omitted the 
'-j4' and everything worked fine.

Second, you may recall that in makefiles hard-tabs are significant.  It 
often seems, however, that one can get away with leading wordspaces 
where a leading hard-tab is what is "officially" required.  I know that 
in past cleanups of the makefile templates I have substituted leading 
hard-tabs for leading wordspaces with no change in functionality.  Here, 
however, we have a case where the leading hard-tab is crucial.  Why? 
Because in the two code segments in the question the first line in the 
template file ends with '$(MINIPARROT)' while the second begins with 
'[hard-tab]$(MINIPARROT)'.  If one is not paying attention to the 
hard-tab, one can come to the *incorrect* conclusion that the second 
'$(MINIPARROT)' is redundant and can be removed -- which is what I did, 
and which is what worked until nine tested with '-j6'.

Implication: We should add something to the documentation for 
config/gen/makefiles/root.in (and perhaps other files) to alert people 
to this possible source of error.  I will do that now.

Thank you very much.
Jim Keenan



More information about the parrot-dev mailing list