I plan on refactoring the io_resource_info.dart file a bit in a follow up, but I keept this simple
I also plan on adding some sort of sanity checking when the vm exits, to make sure
all 3 maps are empty (in debug mode)
This fixes issue #24314, before we would hold on to process that failed to start
running in the _processes map.
Closes#24314
BUG=
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//1331033003 .
Move stopwatch so that we will only ever need one instance
Add utility functions for doing reads and writes
The only functional change here is that I say that an except is a read
of one byte, which also updates the readcount. I think this is just as
correct as what we did before.
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//1320023008 .
Start tracking the read/write information for files in the new
resource management class.
There is currently no time information, I will refactor the timings so that the
static stopwatch from the socket_patch class is moved into the resource class
instead in a follow up (keeping this simply and only about the file addition).
The testing setup may seem a bit strange, but it is the only way I
seem to be able to guarantee that setup actually finishes and that we
get it cleaned up. John may know of a better way
R=sgjesse@google.com, johnmccutchan@google.com
BUG=
Review URL: https://codereview.chromium.org//1326703004 .
Functions are unreachable if their parameters have an empty type. We would generate bogus code for the function due to the empty type so we might as well generate a throw. This can prevent spurious inclusion of more code referenced only in the unreachable code.
It is usually a bug if we generate unreachable methods but it can happen for legitimate reasons. One is that type inference is sometimes more precise than type propagation in the optimizer. Another is that we call a function that has an uninstantiated parameter type. This usually happens due the infeasibility of the path being hidden by a correlation between the type and some variable's value.
There is a tail of bugs that need to be flushed out before we can enable this by default.
Enable with:
DART_VM_OPTIONS=-Dunreachable-throw=true <compile>
language/cyclic_default_values_test fails, with foo and foo2 falsely unreachable:
DART_VM_OPTIONS=-Dunreachable-throw=true tools/test.py -mrelease -cdart2js -rd8 language/cyclic_default_values_test
I have added a test for the cause - a type inference bug with default argument values.
DART_VM_OPTIONS=-Dunreachable-throw=true tools/test.py -mrelease dart2js/simple_inferrer_const_closure_default_test
R=sigmund@google.com
Review URL: https://codereview.chromium.org//1320673004 .
The current implementation only has information about tcp and udp
sockets, and we explicitly do not track internal and pipe uses of
_NativeSockets.
The testing of this is done through the service layer, which is the end user of
this.
BUG=
R=sgjesse@google.com
Committed: 01eff8ce18
Review URL: https://codereview.chromium.org//1323943003 .
The current implementation only has information about tcp and udp
sockets, and we explicitly do not track internal and pipe uses of
_NativeSockets.
The testing of this is done through the service layer, which is the end user of
this.
BUG=
R=sgjesse@google.com
Review URL: https://codereview.chromium.org//1323943003 .
This replaces the NSS secure networking library from Mozilla
with the BoringSSL library from Google. This library, based
on OpenSSL, reads certificates from files in PEM format, rather
than storing certificates and keys in a SQLite database, the
way NSS does. There will be a blog post, changelog entries,
and other documentation of the breaking changes.
Review URL: https://codereview.chromium.org//1319703002 .
This gets rid of one layer of indirection that was not necessary and implements the conditional completely in JavaScript which avoids the potential for recursion when generating the intermediate representation for boolean conversion.
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//1290433002 .