This will enable --use-kernel tests in the dart2js bots.
After this change, running our tests will change a little bit, either of these
would work:
Option A: --use-sdk (host-checked not allowed)
python tools/test.py -m release \
-c dart2js -r d8 --dart2js-batch --report \
--dart2js-with-kernel --use-sdk \
language corelib library_2 corelib_2 \
dart2js_native dart2js_extra
Option B: pass --library-root, --host-check works here.
python tools/test.py -m release \
-c dart2js -r d8 --dart2js-batch --report \
--dart2js-with-kernel --host-checked \
--dart2js_options="--library-root=out/ReleaseX64/dart-sdk/" \
language corelib library_2 corelib_2 \
dart2js_native dart2js_extra
In the future, when fasta supports compiling sdk with @patch files, we will
be able to remove the --library-root option and simply compile the SDK from
sources at that point.
BUG=
R=johnniwinther@google.com
Review-Url: https://codereview.chromium.org/2988063002 .
Deleted http_resource_test – the associated classes no longer exist
Deleted int_fromEnvironment3 - validated type semantics
Tweaked hash_set_type_check – made it very simple.
Also tweaked some analyzer hints
R=rnystrom@google.com
Review-Url: https://codereview.chromium.org/2990623002 .
Another fairly simple block. regress-standalone required the
introduction of two seperate result variables as result was having two
different types assigned to it at different times.
BUG=
R=rnystrom@google.com
Review-Url: https://codereview.chromium.org/2985823002 .
Unusual things in this block:
- This is my first attempt to fix a multitest with various errors in it,
double_parse_test.dart. Most of them revolve around multitest #01 and
the conflict it has with the new multitest #04.
BUG=
R=rnystrom@google.com
Review-Url: https://codereview.chromium.org/2988573002 .
This also:
- replaces --use-kernel with --use-kernel-in-ssa
- replaces --load-dill with --use-kernel
- makes --use-kernel support both: compiling from .dill or from .dart
- change the default of other options that are currently disabled when --use-kernel is on.
- adds .status lines for all tests in language/corelib/dart2js_extra/dart2js_native
R=efortuna@google.com
Note: this CL is built on top of another change
(https://codereview.chromium.org/2981403002/) that adds preview_dart_2 to
test.dart
Review-Url: https://codereview.chromium.org/2989453002 .
Migrated test block 29 to Dart 2.0
-Spit string_test into string_test and string_static_test
-Added various MissingCompileTimeError entries in status files for
tests which throw exceptions on configurations that haven't implemented Dart 2.0
-Switched var -> dynamic in symbol_operator_test
TBR=jcollins@google.com
BUG=
Review-Url: https://codereview.chromium.org/2984893002 .
-Spit string_test into string_test and string_static_test
-Added various MissingCompileTimeError entries in status files for
tests which throw exceptions on configurations that haven't implemented Dart 2.0
-Switched var -> dynamic in symbol_operator_test
BUG=
R=jcollins@google.com, rnystrom@google.com
Review-Url: https://codereview.chromium.org/2983253002 .
Unusual things in this block:
- corelib_strong/data_uri_test.dart was behind corelib, so migrated
that file from corelib.
- core_runtime_types_test was split per the document into static
and non-static versions
- data_resource_test.dart is now pointless since class Resource
was moved from dart:core to http://github.com/dart-lang/resource,
so deleted.
BUG=
R=rnystrom@google.com
Review-Url: https://codereview.chromium.org/2986503002 .
This change makes big_integer_arith_vm_test strong-mode compatible, and allows
dartdevc/dart2js to build and run big_integer tests where they can.
New issue 30170 filed to track DDC big integer handling.
BUG=
R=rnystrom@google.com
Review-Url: https://codereview.chromium.org/2978013002 .
Previously these functions would only contain a single CheckStackOverflowInstr
in a backtracking block and that CheckStackOverflowInstr would have a zero
loop_depth - which means it would not be considered eligable for OSR.
This change:
* adds CheckStackOverflowInstr with non-zero loop_depth in two other places
(Boyer-Moore lookahead skip loop and greedy loop) where loops arise in the
generated IL;
* sets non-zero loop depth on the CheckStackOverflowInstr in the backtracking
block;
* adds a flag on CheckStackOverflowInstr that allows optimizing compiler to
optimize away those checks that were inserted solely to serve as OSR entries.
* ensures that IR generated by IRRegExpMacroAssembler is OSR compatible:
* GraphEntryInstr has correct osr_id;
* GraphEntry and normal entry have different block ids (B0 and B1 - instead of B0 and B0);
* unreachable blocks are pruned and GraphEntry is rewired to point to OSR entry;
* IRRegExpMacroAssembler::GrowStack should not assume that stack_array_cell and :stack
are always in sync, because :stack can come from OSR or deoptimization why stack_array_cell
is a constant associated with a particular Code object.
* refactors the way the RegExp stack was growing: instead of having a special instruction
just emit a call to a Dart function;
* refactors the way block pruning for OSR is done by consolidating duplicated code
in a single function.
We allow the optimizing compiler to remove preemption checks from
non-backtracking loops in the regexp code because those loops
unlike backtracking have guaranteed O(input_length) time
complexity.
Performance Implications
------------------------
This change improves performance of regexps in cases where regexp spends a lot
of time in the first invocation (either due to backtracking or due to long non
matching prefix) by allowing VM to optimize the :matcher while :matcher is
running.
For example on regex-redux[1] benchmark it improves Dart performance by 3x
(from ~18s to ~6s on my Mac Book Pro).
CL history
----------
This relands commit d87cc52c3e.
Original code review: https://codereview.chromium.org/2950783003/
[1] https://benchmarksgame.alioth.debian.org/u64q/program.php?test=regexredux&lang=dart&id=2R=erikcorry@google.com
Review-Url: https://codereview.chromium.org/2951053003 .
It can compile and run tests on Chrome. There are a lot of failing tests
that I (or the team) will need to triage, but I think at least basic
tests are working as expected.
There is code that could be cleaned up to more neatly factor how dart2js
and dartdevc are handled now that there are two separate compilers to
JS. There's also some redundant code between the path for testing
compile errors (enqueueStandardTest()) and the path for running a test
in the browser.
R=whesse@google.com
Review-Url: https://codereview.chromium.org/2947473002 .
directly inside dart2js.
A few notes:
* I ended up adding support for this feature also in dart2js with --use-kernel, it was not implemented correctly before. This is why more tests are passing.
* I played with two other ideas:
(a) making this a compile-time error instead
(b) making it a warning if the arguments were constant and implement it as a constant, treat it as an error if they were not.
Unfortunately both are a breaking changes, so I backed out from them. IMO (a) is the cleanest thing to do long term, and we should raise this with the language team.
R=efortuna@google.com
Review-Url: https://codereview.chromium.org/2896393003 .