On 03/28/2014 07:13 PM, Siddhant Saraf wrote: > Hello, > > I used to be unable to build nqp-p a month ago or so. Recently, that > changed, and now parrot + nqp-p builds fine. (rakudo doens't build > yet, but that is another email) > > Now I want to find out which commit fixed things for me. I know how to > use git-bisect on a single repo to find the commit of interest, but in > this case, there are three repositories: rakudo, nqp, and parrot. How > do I find out which commit in which repo fixed things ? > > I build parrot & nqp-p the recommended way: > 1. clone rakudo from GitHub > 2. cd rakudo > 3. perl Configure.pl --gen-parrot > > > (I guess the next step 'make' is just to build rakudo, and that parrot > and nqp-p are built before i invoke 'make' )
That's correct. To answer your actual question: if you bisect rakudo, the most reliable way is to clean out rakudo, nqp and parrot before each build step. I usually use 'git clean -xdf' for that, which deletes all files that git doesn't track, but not directories which are git repos again. So reliable cleaning instructions are # in the rakudo dir: git clean -xdf cd nqp git clean -xdf cd .. cd parrot git clean -xdf cd .. If you run those instructions before each run of rakudo's Configure.pl, you should be safe. More sophisticated approaches exist for just bisecting NQP, for example, which will be faster, but require a bit more care, because NQP's Configure.pl defaults to a different prefix (and parrot location) than Rakudo's. Cheers, Moritz
