Boost logo

Boost-Build :

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


On 5/27/2010 12:41 PM, Matt Chambers wrote:
> Spencer E. Olson wrote:
>> I'd like to hear feedback with regards to the future of
>> Boost.Build/bjam.

To respond to Spencer briefly.. Volodya and myself are committed to
supporting BBv2/bjam for the long term future. Myself because it's what
I use every day. And my efforts with rewriting bjam in C++ are to make
that long term support easier. And more importantly, more likely to
attract outside developers since as it stands the bjam C code base is
almost impenetrable to first timers. It took me years to get the hang of
the low level code enough to start extending it.

> I'm very grateful for Rene and Volodya's continued efforts on BBv2.
> However, I'm somewhat more supportive of Volodya's effort to port BB's
> higher level logic from Jam to Python than I am of replacing bjam's low
> level C parsing code with C++, even if it would mean the parser was
> easier to maintain. Also, isn't it easier to call simple C routines from
> Python than it is to call C++ when high performance is needed?

First, it's not really the parser that is the goal in the rewriting of
bjam. It's the core make functionality. The parser is currently an
impediment in rewriting because it's essentially required to make sure a
complete bjam is working correctly (i.e. works as it does now). We have
to consider that we are working with a live system and can't really do
complete reworks and guarantee stability. So we approach the build
system incrementally, we change and replicate and replace parts at a
time so we can test that everything still works. The high-level BBv2
logic being rewritten in Python is close to done. Which leaves the low
level bjam to rewrite. Perhaps a bigger picture is more informative at
this point. In some near future the goal is have a modular build system
that is usable from many context. We should be able to easily integrate
it into IDEs, or even something like directly into Windows Explorer.
Hence we need to move towards modular architecture.

In summary, the parser is a rather small part of this. And it's not the
important part. The important parts are the core bjam and BBv2. For the
core I, still, promise to minimize the requirements of C++ as much as
possible. Although I will certainly use templates, it will not be the
universal hammer that Boost Libraries are known for ;-) Basically, the
requirements on the C++ compiler will be tantamount to just having an
STD of some sort.

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org (msn) - grafik/redshift-software.com
-- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail

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