Boost logo

Boost-Build :

From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2006-09-10 00:40:20


David Abrahams wrote:
> Rene Rivera <grafikrobot_at_[hidden]> writes:
>
>> David Abrahams wrote:
>>> Rene Rivera <grafikrobot_at_[hidden]> writes:
>>>
>>>> Well that is the code I was referring to. Was I mistaken in the intended
>>>> eventual goal of that code?
>>> The goal of that code is to speed up BB and improve maintainability by
>>> writing most of it in a real first-class interpreted language (Python)
>>> instead of the hack that underlies Perforce jam.
>> OK, dully corrected my understanding :-) My question now is: Does the
>> C++ port of bjam obviate the need to rewrite BB in Python? Or is the Jam
>> language itself the problem?
>
> It's *a* problem. Real classes and a type system that can represent
> integers are not luxuries, IMO.

OK, deciphering that answer... No, and Yes, respectively to the two
questions I asked ;-) I figured that would be the answer, just wanted to
make sure that my perceptions matched yours. I guess the C++ port would
at least help with the type system as it would, hopefully, be easy to
add those then.

So, I think the best way forward is to make Jam a thin description only
language plus the build engine and add the ability to embed other more
useful languages to do anything heavier. Basically what we have now,
except we get rid of most of the usual "language" constructs like
looping, branching, etc. and the rules call an embedded language instead
of Jam. Perhaps something like:

rule glob-tree ( root : patterns * ) python
{
   import os os.path
   for root, dirs, files in os.walk('$(root)'):
     # etc...
}

local headers = [ glob-tree [ pwd ] : *.hpp *.ipp *.h *.inc ] ;

The rule execution would act very much like actions do now, except it
would be executing the expanded string with the given interpreter.

Given that we should be able to piecemeal rewrite BB in whatever
language we like, without the hassle of extra language files.

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

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