Boost logo

Boost-Build :

Subject: Re: [Boost-build] prototyping alternative Boost.Build syntax
From: Stefan Seefeld (stefan_at_[hidden])
Date: 2016-10-28 09:31:23


On 28.10.2016 09:24, Vladimir Prus wrote:
>
> Stefan,
>
> On 28-Oct-16 4:12 PM, Stefan Seefeld wrote:
>
> (I'd like to prototype a bit with a new (Python)
>> syntax, and therefore need to hook up my own parser to feed b2 the
>> objects it expects.
>
> If you're doing that, you should be working with Python port, and then,
> things are much simpler. b2 is merely starting Python interpreter, and
> starts Python code. It also gives Python a few functions to put together
> a lowest-level dependency graph.

OK. Are there any resources that could help me understand the above ?
For example, what exactly is that "python port" ? Is the "b2" engine
itself being ported to Python ? I thought it's only Boost.Build that was
being ported, which is why I was wondering about the exact relationship
between b2 and Boost.Build.

>
> The code in Jamfiles is intepreted by b2, but it mostly calls Python
> functions that that whatever they please. So,
>
> exe a : a.cpp ;
>
> pretty directly calls this Python function:
>
> https://github.com/boostorg/build/blob/develop/src/build/project.py#L1003
>
> which does:
>
> return self.manager_.targets().create_typed_target(
> type, self.registry.current(), name, sources,
> requirements, default_build, usage_requirements)

OK. Is there a (more or less formal) description of "usage requirement"
as well as all the other concepts involved ? (I'm really trying to grasp
this on a conceptual level to be able to play around with new syntax
without questioning the established semantics, i.e. the underlying model.

>
> Native Python build description would have 'manager' variable injected
> in scope, and do exactly the above :-)
>

Hmm, I think I'm now even more confused than before, as I don't know
what I should be looking for / at. ;-/

Thanks,
        Stefan

-- 
      ...ich hab' noch einen Koffer in Berlin...

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