Should not take 10 minutes to print error message when workspace build fails
Here's a typical experience with a build failure. Note FAILURE Running build-commands
occurs at 08:10, but FAILURE Command 'cmake --build _builddir -- ${JOBS}' failed with exitcode 1
does not occur until 17:51. That's nearly 10 minutes between informing me that I have a build failure, and informing me what the failure was. This is really terrible for developer productivity. Let's say I have 10 build failures in a row to fix, what would take an hour or two to handle with JHBuild is going to take days with BuildStream.
[--:--:--][????????][build:core-deps/WebKitGTK+.bst ] STATUS Running build-commands
cmake --build _builddir -- ${JOBS}
[00:08:10][????????][build:core-deps/WebKitGTK+.bst ] FAILURE Running build-commands
[00:08:10][????????][build:core-deps/WebKitGTK+.bst ] FAILURE Running build-commands
[00:17:51][????????][build:core-deps/WebKitGTK+.bst ] FAILURE Command 'cmake --build _builddir -- ${JOBS}' failed with exitcode 1
Sandbox directory: /home/mcatanzaro/.cache/buildstream/build/core-deps-WebKitGTK+-dup1vcv8
Printing the last 20 lines from log file:
/home/mcatanzaro/.cache/buildstream/logs/gnome/core-deps-WebKitGTK+/????????-build.4874.log
======================================================================
DerivedSources/ForwardingHeaders/wtf/Variant.h:674:9: required from ‘void WTF::__variant_data<_Head, _Rest ...>::__destroy(WTF::in_place_index_t<_Index>) [with long unsigned int _Index = 1; _Head = WTF::RefPtr<WebCore::MediaSource>; _Rest = {WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> >}; WTF::in_place_index_t<_Index> = WTF::in_place_tag (&)(WTF::__in_place_private::__value_holder<1>&)]’
DerivedSources/ForwardingHeaders/wtf/Variant.h:825:13: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
DerivedSources/ForwardingHeaders/wtf/Variant.h:1470:45: required from ‘void WTF::Variant< <template-parameter-1-1> >::__destroy_self() [with _Types = {WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> >}]’
DerivedSources/ForwardingHeaders/wtf/Variant.h:922:9: required from ‘WTF::__variant_base<_Derived, __trivial_destructor>::~__variant_base() [with _Derived = WTF::Variant<WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> > >; bool __trivial_destructor = false]’
DerivedSources/ForwardingHeaders/wtf/Variant.h:1439:7: required from ‘struct std::is_trivially_copy_constructible<WTF::Variant<WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> > > >’
/usr/include/c++/7.3.0/optional:105:8: required from ‘class std::_Optional_base<WTF::Variant<WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> > > >’
/usr/include/c++/7.3.0/optional:453:11: required from ‘class std::optional<WTF::Variant<WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> > > >’
../Source/WebCore/html/HTMLMediaElement.h:1126:19: required from here
DerivedSources/ForwardingHeaders/wtf/RefPtr.h:45:14: error: invalid use of incomplete type ‘class WebCore::Blob’
ptr->deref();
~~~~~^~~~~
In file included from ../Source/WebCore/page/DOMWindow.h:35:0,
from ../Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:33:
../Source/WebCore/html/ImageBitmap.h:36:7: note: forward declaration of ‘class WebCore::Blob’
class Blob;
^~~~
ninja: build stopped: subcommand failed.
[00:08:10] FAILURE [core-deps/WebKitGTK+.bst]: Running build-commands
[00:08:10] FAILURE [core-deps/WebKitGTK+.bst]: Running build-commands
[00:17:51] FAILURE [core-deps/WebKitGTK+.bst]: Command 'cmake --build _builddir -- ${JOBS}' failed with exitcode 1