Boost logo

Boost-Build :

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


On 5/22/2010 11:08 AM, Stefan Seefeld wrote:
> On 05/22/2010 09:57 AM, Rene Rivera wrote:
>>
>> * Have bjam 4 depend on a *released* version of Boost.
>> * Written with Spirit as the base lexer/parser.
>> * Have a variety of syntax improvements and support for UTF8/Unicode.
>
> Out of curiosity: Have you considered separating the core functionality
> (subprocess management, dependency management, etc.) from the frontend
> (i.e., the jamfile parser) ? Wouldn't that solve part of the problem you
> mention ?

Assuming you mean separation without rewriting in C++.. No it wouldn't.
The largest problem with bjam at the moment is the parsing. Or rather
how the language parsing is implemented as an entirely string based
language. It's a bad implementation that essentially gobbles up memory
without care. Causing a cascade of problems. And fixing it in C is a
horrific prospect, and almost equivalent in work to rewriting it in C++.

> Also, I'm still not entirely sure I understand what is meant when
> Volodja suggests a rewrite of boost.build in Python. How would that
> interact with bjam, specifically the parser/lexer ? Wouldn't that
> require exactly the kind of separation between frontend and backend that
> I suggest above ? (I.e., with a Python frontend you wouldn't need a
> parser, since you would just use Python, and the bindings then calling
> directly into the bjam "backend".)

AFAIU, the Python rewrite of Boost Build would still run with the bjam
front end for parsing, and possibly other things. Some of the features
I'm thinking of in a bjam4 would hopefully make that a cleaner tool also.

Essentially I don't really know what the end result of a bjam4 will be
in terms of BBv3. But I'm willing to experiment and dump code if it
proves unused :-) Hence why I'm being somewhat less idealistic at the
moment with regards to dependencies.

-- 
-- 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