This CL adds a script tools/ninja.py that runs Goma enabled builds
in parallel. Non-goma builds are run serially, as before.
Conflating this feature with gyp support in tools/build.py
got to be a bit of a mess, which is why this is split off as a
separate script. This script can replace build.py after gyp support
is removed.
With a warm goma:
$ time ./tools/build.py -m debug,release -a x64,ia32 runtime runtime_precompiled
...
real 4m25.627s
user 3m30.740s
sys 1m3.873s
$ ./tools/ninja.py -m debug,release -a x64,ia32 runtime runtime_precompiled
...
The build took 108.900 seconds
R=rmacnak@google.com
Review-Url: https://codereview.chromium.org/2712743009 .
The body of new DivElement() is marked as returning a DivElement, instead of inferred to return Element.
The more precise receiver type allows svg polyfills to be excluded, allowsing the HtmlElement methods to be identified as the single target and inlined.
This tends to improve the code generated for idioms like
new DivElement()..classes.add('foo')
var e1 = new DivElement();
e1.children.add(e2);
BUG=
R=alanknight@google.com
Review-Url: https://codereview.chromium.org/2705213003 .
When we were implementing bootstraping from Kernel in 23fd1a184b we switched ClassID.cid* fields to become 'static final' lazily initialized fields instead of constants as they were before. This was mainly done to allow dartk compile patched_sdk - because these fields were previously injected in runtime and never existed in the text form.
However this regressed code quality for app-jit and app-aot snapshots because 'static final' fields are reset by snapshotting so resulting code contains InitStaticField and LoadStaticField instructions.
BUG=
R=kustermann@google.com
Review-Url: https://codereview.chromium.org/2693863006 .
Replace --use-dfe (defaulting to true) with --no-dfe (defaulting to false)
so that it is still used by default, but it is actually possible to
_not_ run with the kernel isolate and instead use dartk.
BUG=
R=vegorov@google.com
Review-Url: https://codereview.chromium.org/2689213006 .
Calls to close() on an IOSink do not imply that writes buffered by the
underlying StreamConsumer have been flushed. This CL adds a note
indicating this to the IOSink docs, and adds calls to flush() before
calls to close() for some calls to stdin.close() for spawned
processes in our tests.
related #28737R=fschneider@google.com
Review-Url: https://codereview.chromium.org/2687963003 .
Currently tests in the app_jit-debug configuration are given 16 minutes
timeout. This caused us to run into a global timeout of test.dart (it's
"debug timer" which is set to 10 minutes of inactivity).
Even the slowest tests run in the app_jit-debug configuration within around 1:30 m on the buildbot.
This CL changes the timeout from 16 minutes to 4 minutes.
R=vegorov@google.com
Review-Url: https://codereview.chromium.org/2685303002 .
We are not switching yet, but now everybody can try fasta by doing:
$ dart -DDFE_USE_FASTA=true --dfe=utils/kernel-service.dart hello.dart
Note that when using fasta we expect that patched_sdk contains platform.dill
Kernel binary containing compiled patched sdk. This file can be obtained by
doing:
$ export DART_AOT_SDK=<path-to-patched_sdk>
$ dart pkg/front_end/lib/src/fasta/bin/compile_platform.dart \
${DART_AOT_SDK}/platform.dill
We are also adding --use-fasta to testing script to allow end-to-end testing
of fasta (though platform.dill file needs to be generated manually prior to
running tests):
$ tools/test.py -c dartk -m release -a x64 --nobatch --use-fasta
Current test status:
$ tools/test.py -c dartk -m release -a x64 --nobatch --use-fasta
[27:34 | 100% | +12566 | - 1941]
BUG=
R=ahe@google.com, kustermann@google.com
Review-Url: https://codereview.chromium.org/2684943003 .
The former doesn't seem to tell us anything useful, and is broken. The
latter is no longer needed as a flag without the former. The pkgbuild
suite implies it and other suites don't support it.
R=whesse@google.com
Review-Url: https://codereview.chromium.org/2673133002 .