commit | d26558b7be153f7544eb406b5d1e5cd01fac11bb | [log] [tgz] |
---|---|---|
author | Jens Johansen <jensj@google.com> | Mon May 15 09:01:18 2017 +0200 |
committer | Jens Johansen <jensj@google.com> | Mon May 15 09:01:22 2017 +0200 |
tree | 3e0440ca33814482e389296ad421b34d9f1d65a2 | |
parent | dd62ad5d7781fa1097d20f8a0ca4c9ec87ab03d7 [diff] |
[kernel] [partial] Streaming of kernel binary without AST nodes This CL allows for streaming big parts of the binary, i.e. without using the AST nodes. It is thus a stepping-stone in getting rid of the AST nodes in the VM. Generally, all Expressions except "FunctionExpression", and all Statements except "FunctionDeclaration" can be streamed. There are currently not streamed because they create new functions, which has a pointer to an AstNode (which we don't have when streaming). Once we no longer need AstNodes at all these can be streamed as well. This is, I think, mostly a matter of streaming the ScopeBuilder as well, something that is not currently done. The way the streaming is build, one has to stream an entire subtree. That means, that if an expression (or statement), A, that is generally streamable contains an expression or a statement, B, that is not streamable, A cannot be streamed. The way this is build is by marking AstNodes as streamable or not ("cannot_stream_" field). That way we know up front whether we can stream a subtree or not. The streaming is done via "kernel_binary_flowgraph". In this file there are many obvious comments, e.g. ``` TokenPosition position = ReadPosition(); // read position. ``` This has been done in an attempt to add a comment to everything that reads from the binary to make it stand out more. All changes from kernel_to_il up to and including May 2nd 2017 should be included. R=kmillikin@google.com Review-Url: https://codereview.chromium.org/2854393002 .
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.