Are there any design docs for runAsync ? Cheers
Cameron On Sat, Oct 18, 2008 at 2:24 AM, Lex Spoon <[EMAIL PROTECTED]> wrote: > Hi, Bob, > > Can you be the main reviewer for the merge of the runAsync branch to > the trunk? The attached patch is the outstanding difference between > trunk and branch, plus a few minor changes. > > The overall structure is like this: > > 1. JsProgram no longer has a single global block. It has a number of > JsFragments, each of which has its own global JsBlock. If there are > no calls to runAsync in the program, then there will be exactly one > JsFragment. > > 2. The linkers are updated for this structure, though most of them > simply fail if there is more than one fragment. > > 3. The ControlFlowAnalyzer refactor is included, described in a previous > email. > > 4. FindDeferredSitesVisitors arranges that, for every call to > runAsync, there is an AsyncLoader class generated for that call. > > 5. ReplaceRunAsync actually replaces calls to runAsync with calls into > AsyncLoaders. Each call is associated with its own AsyncLoader class. > > 6. GenerateJavaScriptAST now generates a map, JavaToJavaScriptMap, > that associates Java AST nodes to JavaScript AST nodes. This should > eventually be done using information recorded in SourceInfos, now that > JavaScript nodes have a SourceInfo, but unless you see an immediate > problem it would be nice to do that in a subsequent patch. > > 7. CodeSplitter actually splits the program into fragments. It relies > on ControlFlowAnalyzer to decide how to split everything up, and it > uses FragmentExtractor for the nitty gritty mechanics of extracting a > fragment of code. Note that extracting a fragment is a little > trickier than "this statement in, this statement out". Extracting > interned strings is one example that doesn't work like that. > > > I think that's it. Comments are very welcome, both about the > implementation and the general design. I would just ask that we > remember there is more work to be done, and not everything has to be > in this one already large patch. > > Lex > > > > --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---