Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2007-10-01 06:51:45

With Milestone 12 out of the door, it's time for some
planning. I personally think, for quite some time,
that there are two important issues with Boost.Build:

        - Documentation
        - Using language nobody can grok

The documentation is obvious issue -- there's much
more material to be added, and some editing to be done.

The language issue is different. When we started Boost.Build V2,
we talked if using bjam is good. I believe we decided to try,
and to use something else if bjam will prove insufficient.
At this point it's safe to say that bjam's build engine, while
scary, is pretty much up to task. At the same time, bjam's language
is not. We've extended it with object oriented syntax, and with
modules and what not, but still:

        - Almost nobody know jam language
        - The features and performance of language are not

Bjam does have an important advantage -- it's standalone, but I
don't think this advantage outweights the problem.

In light of that, I think that the future of Boost.Build is a Python
implementation. We actually have a beginning of said port, but it needs
more work. I'll soon post more details of what state that port is, and
what work is necessary. The important points however:

        (1) This is going to be 1<->1 port. Until we pass all tests,
        no behaviour changes should be done.
        (2) We'll still be using bjam build engine, and Jamfiles as
        description language
        (3) Code that *extends* Boost.Build will have to be written
        in Python -- in particular, generators will have to be in Python.
        This will require update to user's projects, but given (1) the
        update should be simple. (As a technical note, base
        generators classes will be in Python, and having custom generators
        in Jam language deriving from Python classes is not a nice idea)

Of course, while working on Python port it's better not to touch original
code too much. So, non-Python development will be limited to local bugfixes,
and to documentation writing.

I envision the following plan of work:

                - Boost Trac issue #1228 (gcc/AIX)
                - Boost Trac issue #1177 (stlport changes)
                - Boost.Build trac issue #4 (relevant features)
                - Sort out 4 failures on msvc
                - Sort out 'gettext' test failure
                - Couple of more minor bugs

        M14: Lots of doc writing

        M15 (developed in parallel with above): Python port

I have updated

with the above. I shall post the details about Python port
later this week, and I surely appreciate help in making it

- Volodya

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