[prev in list] [next in list] [prev in thread] [next in thread] 

List:       boost-build
Subject:    Re: [Boost-build] [RFC] output events
From:       Vladimir Prus <vladimir.prus () gmail ! com>
Date:       2015-02-25 19:49:17
Message-ID: 54EE273D.2050508 () gmail ! com
[Download RAW message or body]


Hi Aaron,

On 02/21/2015 08:44 AM, Aaron Boman wrote:
> Hi Vladimir
> 
> > Hi,
> > 
> > I've checked in, on a branch, a patch that makes Python port emit
> > JSON-formatted message describing what is being built, like so:
> > ...
> > The ultimate goal of this is to make it more easy for an IDE to see what's
> > happening - in particular, some time ago Mateusz was asking for a way to
> > discover include paths that Boost.Build uses, and there was no good answer.
> 
> From the commits I have seen in the server branch on github I think I understand \
> what you're doing. However, just to be sure: What will an IDE be able to do once \
> your idea is complete?

The minimum is:

- Ask Boost.Build to build particular targets with particular properties, and know \
which files were created  with what ultimate properties
- Ask about list of features and their values, so that user that pick those in UI

Ideally:
- See how properties and build commands for individual targets change if one change \
                top-level requested properties
- Be able to navigate entire dependency graph at metatarget level (i.e. why \
boost.system is requested with these  properties)

Ultimately:
- Detect changes sources and do a very fast incremental build

> Will this allow the IDE to issue build commands that are piped into Boost.Build?

Yep. In fact, I've pushed a few commits to that effect over last couple days. So I \
can do this:

     echo '{"type": "request", "request": "build", "properties": {"variant": \
"release"}}' | b2 --python -a -d0 --server

and see the build actually happen.

> Do you have any plans to merge this capability with the daemon branch?

If time permits, yes. The daemon branch is not perfect, in particular because it uses \
DBus, which limits itself to Linux, and is awkward to work with. However, it does \
have a lot of useful code that I hope to merge into server branch.

> Most importantly, is there anything that I can do to help?

Thanks for the offer! It seems that the coolest bit would be incremental/daemon \
functionality, and that seems like some work. There are actually two things:
- inotify support, to save work on build engine level
- caching results of metarget->target generation, which already works, but requires \
cleaning  the cache if Jamfiles change, and I'm not entirely sure we do it entirely \
correctly

Is that something you'll be interested in?

Beyond that, there's a fair amount of possibly improvements to report what's \
happening, to add help to key options, and so forth. I hope to have a test web-based \
UI using this API deployed really soon now, and then it will be clearer what changes \
are desirable.

Thanks,

-- 
Vladimir Prus
http://vladimirprus.com
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic