Boost logo

Boost-Build :

Subject: [Boost-build] question(s) about bjam code III
From: Stefan Seefeld (stefan_at_[hidden])
Date: 2017-10-25 14:08:34

Hi Steven,

my next question concerns bjam's execution of functions. The usual data
flow consists of actions to be compiled into (sets of) commands, which
are then executed to update a target.

Baseline bjam has some mechanism grafted into it to run Python
functions, which are run at the place where "normally" commands are
compiled from actions
which may invoke

I have been (ab-)using this mechanism in faber to allow Python functions
to be executed instead of system commands. While this has worked very
well, I now wonder how to handle errors. How does
`function_run_actions()` communicate errors back to the caller ? The
only callsite I can see is in the `cmd_new()` function, and I don't see
anything akin to handling errors that the called functions (which in
bjam are typically jam functions, I gather) may encounter.

While I can certainly set up some global variables to capture error
states, I'd rather use existing channels to communicate status and error
states back to the call site.



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


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at