|
Boost-Build : |
From: Larry Evans (cppljevans_at_[hidden])
Date: 2007-10-04 10:21:47
On 10/04/07 09:07, Vladimir Prus wrote:
> Felipe Magno de Almeida wrote:
>
>> On 10/4/07, Johan Nilsson <r.johan.nilsson_at_[hidden]> wrote:
>>> Felipe Magno de Almeida wrote:
>> [snip]
>>
>>>> I'm not getting it. What is the problem of using header-only libraries
>>>> in C++ bjam rewrite?
>>> I'd say it's a chicken-and-egg problem (or a problem of circular
>>> dependencies, if you like).
>>>
>>> What if you've got a non-supported compiler, and need to build bjam to be
>>> able to try out boost (or to add support for the compiler). If the (even
>>> header-only) libraries can't be built/used with your compiler, thus
>>> disabling your possibilities for building bjam, how do you progress?
>> The same problem doesn't occur if you write your own parsing code? Or
>> if you use an external library?
>
> As it happens, C++ Boost is much less portable than ordinary C++.
>
> - Volodya
What about using python parsers, at least to prototype:
http://nedbatchelder.com/text/python-parsers.html
It seems that would be easier to integrate with python, and if
the parsing is too slow, you can always convert to c++'s spirit
or yacc.
Currently, AFAICT, yacc is currently used to generate, from jamgram.y,
the .c and .h files which are then used to parse the .jam files
and the Jamfile files. Apparently the bootstrapping is done by
the build.sh in the jam_src directory. The end-user never sees
this dependency on yacc because, apparently, the generated files
are included in the distribution. I could be wrong, because that
conclusion is just based on a brief look at build.sh.
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