Boost logo

Boost-Build :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-03-01 17:26:58

1. All of a sudden, when I set BUILD on the jam command-line, it has no
(I happen to be using the perforce_2_4_merge version of Boost.Jam, FWIW)

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.

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, and more importantly the "func" grammar seems to be missing from
our version:

arg : ARG
{ $$.parse = plist( $1.string ); }
| `[` { yymode( SCAN_NORMAL ); } func `]`
{ $$.parse = $3.parse; }

* func - a function call (inside [])
* This needs to be split cleanly out of 'rule'

func : ARG lol
{ $$.parse = prule( $1.string, $2.parse ); }
| `on` arg ARG lol
{ $$.parse = pon( $2.parse, prule( $3.string, $4.parse ) ); }
| `on` arg `return` list
{ $$.parse = pon( $2.parse, $4.parse ); }

Comments, anyone?

David Abrahams
C++ Booster ( O__ ==
Pythonista ( c/ /'_ ==
resume: (*) \(*) ==
email: david.abrahams_at_[hidden]


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at