Boost logo

Boost-Build :

Subject: Re: [Boost-build] bjam 4.0.. in C++
From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2010-05-23 18:29:14

On 5/23/2010 3:57 PM, Stefan Seefeld wrote:
> On 05/23/2010 03:56 PM, Rene Rivera wrote:
>> But in order to get there it's much easier build and get working a
>> port that can be verified to work just like the current tool. Then the
>> internals become reliably usable.
> How to unit-test the "core" is an interesting question, but I would hope
> that this could be done without first having to implement a full-fledged
> parser.

It could.. But it would assume that I have a really good idea of what
all the internals should look like in a rewrite. And I'm honest enough
to myself to know I don't know the full answer. So I won't really know
what the bjam API would looks like until I can start using it.

> I imagine this core library to provide all the important hooks
> to generate a dependency graph, with associated actions, which would be
> used directly for unit-testing.

Right, at least.

> Any frontend would then merely call that API, so it needs unit-testing
> anyhow.

Yes, and the current "C" code has built-in unit tests that don't even
touch the parsing. But at this point BBv2 is the most comprehensive unit
test there is for bjam. So it would be good to abuse it ;-)

How about this approach..

1. Start of with a Spirit parser as the quick way to get going.
2. Work out the API and accompanying testing.
3. Create another C++ non-Spirit parser when the core is working.
4. Create some other non-C++ front-end.
5. Abandon, or keep as an example, the Spirit front-end.

The assumption would be that the core would avoid depending on Boost.
There's one lib I will want to depend on but it's my Predef lib which is
not part of Boost yet anyway :-) But there may be other libs I end up
creating along the way. So I guess we can think of this as the library
structured version of bjam.

-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. -
-- rrivera/ (msn) - grafik/
-- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail

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