Boost logo

Boost-Build :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-03-04 08:53:49


----- Original Message -----
From: "Vladimir Prus" <ghost_at_[hidden]>

> David Abrahams wrote:
> > 1. All of a sudden, when I set BUILD on the jam command-line, it has
no
> > effect!
> > Rene?
> > (I happen to be using the perforce_2_4_merge version of Boost.Jam,
FWIW)
>
> I was using a fixed version of Boost.Build for some time and now tried
the
> cvs head. It just gives an error on my project, so we have a
regression.

Too bad.

> > 2. When I rebuilt the 2.4 merge version on OSF and tried to use it,
I still
> > got a Yacc stack overflow. I know this has happened on a few other
> > platforms as well. I always assumed that this would be fixed by the
use of
> > right recursion in the grammar. I guess one of the following must be
true:
> > a. Yacc is just broken on these platforms
> > b. We have brought forward some left-recursion from our pre-2.4
grammar
> > If it's b, we should fix it. If it's a, we should probably disable
the
> > running of yacc in the jamfile by default. We deliver pre-yacced
source
> > anyway, so most people don't need to run it.
>
> I'm just looking at all the changes made to jamgram.yy in the Perforce
> version. I can't see any left-to-right-recursion changes at all.

Good point. Though the I thought Perforce people claimed to have made
those changes, I think my brain is reminding me that left-recursion is
better with bottom-up parsers like YACC, and that from the comments...

* right-recursive so rules execute in order.

...they don't know how to deal with left-recursive rules properly.

> The only
> stack overflow related fix that I'm aware of is in compile_rules
routine.

Oh, maybe I misunderstood the Perforce claim. OK, then I think we should
be disabling YACC on OSF at least, and probably everywhere just to be
safe.

> > 3. Looking at the difference between the perforce_jam_2_4 and
> > perforce_2_4_merge versions of jamgram.yy, it looks as though we
failed to
> > catch some of the new changes. For example, the expression grammar
is
> > different,
>
> It is. I've grabbed changes that Craig McPheeters suggested on the
jamming
> mailing list. I'm not sure if the merged version will be able to
handle
> Boost.Build otherwise.

Yep, sorry, I forgot about that. FWIW, Perforce has decided to take
those changes as well if I understand correctly.

> > and more importantly the "func" grammar seems to be missing from
> > our version:
>
> I forgot to grab this part. And I also tested only
>
> on target some_rule ;
>
> syntax, but not
>
> v = [ on target some_rule ] ;
> v = [ on target return $(some_var) ] ;
>
> variant. Indeed, test suite for jam would be very desirable.

Yeah, but it looks as though it's up to us :(. Maybe if we can factor
out the parts designed to test stock Jam, Perforce will want to use it.

> I believe that
> have fixed this problem now. I'll commit it once we decide if there
are
> changes to recursion direction that I've missed.

No, you're fine. Thanks for absorbing my incorrect accusation.

-Dave

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk