[build] No output until an action completes?
Greetings! I've run into a problem that a Boost.Build action produces no output until the command returns. For example, in my Jamfile I have rule do-measure ( test-name : sources * : requirements * ) { ... some preparation work ... } actions do-measure { $(COMMAND) $(ARGS) } notfile ha : @do-measure : ... : ... ; COMMAND is a Python script that runs for a long time and produces some debug information. But b2 does not print this output until COMMAND returns. This is really unfortunate because Travis requires a command to produce output at least once per 10 mins or something. Otherwise it thinks the command has stalled and terminates it. Is there some configuration parameter or a trick to make b2 print the debug info COMMAND produces? or maybe some dummy output so that Travis allows it to run longer than 10 mins? Any help is highly appreciated! Tom
On 06/07/2017 16:40, Tom Westerhout via Boost wrote:
Greetings!
I've run into a problem that a Boost.Build action produces no output until the command returns.
Hi Tom, that is correct. The motivation is that with parallel builds, producing output while a command is running results in interleaved output that is quite impossible to understand. Therefore, the output is buffered, and then written together when the action is finished.
For example, in my Jamfile I have actions do-measure { $(COMMAND) $(ARGS) }
notfile ha : @do-measure : ... : ... ;
COMMAND is a Python script that runs for a long time and produces some debug information. But b2 does not print this output until COMMAND returns. This is really unfortunate because Travis requires a command to produce output at least once per 10 mins or something. Otherwise it thinks the command has stalled and terminates it.
This is a valid use case for long running tasks. Could you file an issue? - Volodya
Is there some configuration parameter or a trick to make b2 print the debug info COMMAND produces? or maybe some dummy output so that Travis allows it to run longer than 10 mins?
Any help is highly appreciated!
Tom
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
On 06/07/2017, Vladimir Prus via Boost
that is correct. The motivation is that with parallel builds, producing output while a command is running results in interleaved output that is quite impossible to understand. Therefore, the output is buffered, and then written together when the action is finished.
This makes sense.
This is a valid use case for long running tasks. Could you file an issue?
Submitted an issue: https://github.com/boostorg/build/issues/210 Tom
participants (2)
-
Tom Westerhout
-
Vladimir Prus