Currently, the buildbots run tests on every commit. But often neither
the tests nor the dart2js compiler did change (e.g. on status file updates).
The added code will check if the dependencies (i.e. files listed in
test.js.deps) or the dart2js snapshot did change. If not, the output
of the previous dart2js compilation is up to date and the compilation
step is skipped.
The skipping of redundant dart2js compilations works only if the '--use-sdk'
option was specified (because in this case the dart2js snapshot is used).
Committed: https://code.google.com/p/dart/source/detail?r=15080
Review URL: https://codereview.chromium.org//11369216
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16158 260f80e4-7a28-3924-810f-c04153c831b5
Environment variables were extracted using GetEnvironmentStringsA
and that does not play nice with for instance Danish letters
in environment variables.
This causes problems for pub if the current user has an
internationalized name.
This is the first patch in a series that will switch to the
unicode APIs on Windows.
R=sgjesse@google.com
BUG=
Review URL: https://codereview.chromium.org//11529008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15977 260f80e4-7a28-3924-810f-c04153c831b5
The HTTP parser always issues a "request received" event and
a "data end" event for all requests including requests with an
empty body. The "request received" event causes the request
handler to be called and the "data end" event causes the onClosed
on the input stream to be called. If the output stream was before
the "data end" event (that is in the request handler) the HTTP
server would close the socket as the output stream was closed
before the input was read. However for requests with empty bodies
this is not really the case.
The HTTP server now tracks when a request is known to have an
empty body. When that is the case there is no need to buffer the
response data and closing the output stream bedore the "data end"
event is now handled as if the full request is already read -
which it is.
The method _checkDone is how called exactly once for each of the
"request received", "data" and "data end" events, and always as the
last thing before returning from handling the evnent.
R=ager@google.com
BUG=dart:6984, dart:7182
Review URL: https://codereview.chromium.org//11498010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15951 260f80e4-7a28-3924-810f-c04153c831b5
The main purpose of this change is to ensure that the HTTP server
does not start sending the response before the full request have
been read. This ended up requiring a number of changes.
1. Handle server closing connection before full request is read
If the server closes the connection before the request body have
been read this will result in the underlying socket getting
closed by the server.
2. Support writing to output stream before full request is read
Changed the server to not start sending data before the full
request have been read. In order to still make it possible to
write to the request output stream before reading all data any
data written before will be buffered. When the request have been
fully read the buffered data will be written.
3. Handle of bad/closed connections retreived from the client connection pool
When a HTTP client connection is pulled from the pool of keep
alive connections there can be situations where this connection
has just been closed by the server. This is now mittigated by
trying to make a new connection when this happens. It is only
possible to actually create a new connection if no body has been
sent.
4. Forward request headers when redirecting
Both for manual and automatic rediretion any request headers set
on the original request are now set on the redirect request as
well.
5. Invalidate sockets in the client pool if required
Open HTTP socket connections in the client pool are now
invalidated and closed if there is any activify on them while
they are idle.
R=ager@google.com, ajohnsen@google.com
BUG=6984
Review URL: https://codereview.chromium.org//11453006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15782 260f80e4-7a28-3924-810f-c04153c831b5
Use that to implement Directory.create(recursive: true) in a way that
works with shares.
The Path implementation has an additional piece of state. The
actual path is treated like an absolute path except for
toNativePath which adds back the extra backslash. The additional
state is preserved in operations that produce new paths.
R=sgjesse@google.com
BUG=dartbug.com/6904
Review URL: https://codereview.chromium.org//11416197
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15385 260f80e4-7a28-3924-810f-c04153c831b5
Implement proposed new identity spec (flag --new_identity_spec). It will be enabled/committed once the new spec been confirmed.
The new spec says that identity of numbers is computed on their values instead of on the object reference. This provides deterministic behavior without having to disable optimizations in the VM. In some cases 'identical' is now slower than 'equality' as more checks need to be done. The VM compiler can optimize 'identical' in the future.
My benchmarks do not show any slow down.
Review URL: https://codereview.chromium.org//11414136
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15332 260f80e4-7a28-3924-810f-c04153c831b5
Before the underlying sockets where just silently closed causing no more IO events on active connections no matter what state they where in.
Also added an optional "force" argument to HttpClient.shutdown. If that is false (the default) The HttpClient will not close active connections until they are done. This causes all pkg/http and pub tests to pass.
R=ager@google.com, nweiz@google.com
BUG=dart:6594
Review URL: https://codereview.chromium.org//11411121
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15275 260f80e4-7a28-3924-810f-c04153c831b5