Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(452)

Issue 10917285: Stub implementation of patch invariants for the patch refactoring. (Closed)

Created:
8 years, 3 months ago by Johnni Winther
Modified:
8 years, 3 months ago
Reviewers:
ahe, ngeoffray
CC:
reviews_dartlang.org, floitsch, karlklose, Lasse Reichstein Nielsen, kasperl
Visibility:
Public.

Description

Stub implementation of patch invariants for the patch refactoring. This is the first part of the patch refactoring which implements a stub version of the invariants needed for the new patch implementation. See the library comment in lib/compiler/patch_parser.dart for a detailed description of the new patch system, the terminology and the invariants. Committed: https://code.google.com/p/dart/source/detail?r=12687

Patch Set 1 #

Patch Set 2 : Leftovers from rebase. #

Total comments: 90

Patch Set 3 : Updated cf. comments #

Total comments: 61

Patch Set 4 : Updated cf. comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+608 lines, -84 lines) Patch
M lib/compiler/implementation/compile_time_constants.dart View 1 2 3 4 chunks +24 lines, -7 lines 0 comments Download
M lib/compiler/implementation/compiler.dart View 1 2 3 6 chunks +37 lines, -7 lines 0 comments Download
M lib/compiler/implementation/elements/elements.dart View 1 2 3 8 chunks +74 lines, -14 lines 0 comments Download
M lib/compiler/implementation/enqueue.dart View 1 2 3 8 chunks +48 lines, -8 lines 0 comments Download
M lib/compiler/implementation/js_backend/backend.dart View 1 2 10 chunks +49 lines, -0 lines 0 comments Download
M lib/compiler/implementation/js_backend/emitter.dart View 1 2 9 chunks +48 lines, -3 lines 0 comments Download
M lib/compiler/implementation/patch_parser.dart View 1 2 1 chunk +111 lines, -1 line 0 comments Download
M lib/compiler/implementation/resolver.dart View 1 2 3 6 chunks +35 lines, -8 lines 0 comments Download
M lib/compiler/implementation/scanner/token.dart View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M lib/compiler/implementation/ssa/builder.dart View 1 2 3 28 chunks +123 lines, -28 lines 0 comments Download
M lib/compiler/implementation/ssa/codegen.dart View 1 2 3 3 chunks +6 lines, -3 lines 0 comments Download
M lib/compiler/implementation/ssa/nodes.dart View 1 2 3 2 chunks +5 lines, -2 lines 0 comments Download
M lib/compiler/implementation/tree/nodes.dart View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M lib/compiler/implementation/typechecker.dart View 1 2 3 2 chunks +12 lines, -1 line 0 comments Download
M lib/compiler/implementation/universe/universe.dart View 1 2 5 chunks +29 lines, -0 lines 0 comments Download
M lib/compiler/implementation/util/util.dart View 1 2 3 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 13 (0 generated)
Johnni Winther
8 years, 3 months ago (2012-09-15 08:46:27 UTC) #1
ngeoffray
Initial comments https://codereview.chromium.org/10917285/diff/3001/lib/compiler/implementation/elements/elements.dart File lib/compiler/implementation/elements/elements.dart (right): https://codereview.chromium.org/10917285/diff/3001/lib/compiler/implementation/elements/elements.dart#newcode998 lib/compiler/implementation/elements/elements.dart:998: type = compiler.computeFunctionType(declaration, Why this change? https://codereview.chromium.org/10917285/diff/3001/lib/compiler/implementation/elements/elements.dart#newcode1173 ...
8 years, 3 months ago (2012-09-17 12:46:24 UTC) #2
ahe
This is very nice. As far as I'm concerned, there is one issue that is ...
8 years, 3 months ago (2012-09-18 11:25:54 UTC) #3
Johnni Winther
PTAL http://codereview.chromium.org/10917285/diff/3001/lib/compiler/implementation/compile_time_constants.dart File lib/compiler/implementation/compile_time_constants.dart (right): http://codereview.chromium.org/10917285/diff/3001/lib/compiler/implementation/compile_time_constants.dart#newcode535 lib/compiler/implementation/compile_time_constants.dart:535: * Invariant: [target] must be the implementation element. ...
8 years, 3 months ago (2012-09-20 08:12:23 UTC) #4
ahe
LGTM. I'm not sure if element should be spannable. http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/compile_time_constants.dart File lib/compiler/implementation/compile_time_constants.dart (right): http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/compile_time_constants.dart#newcode547 lib/compiler/implementation/compile_time_constants.dart:547: ...
8 years, 3 months ago (2012-09-20 11:12:06 UTC) #5
ngeoffray
LGTM too http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/compiler.dart File lib/compiler/implementation/compiler.dart (right): http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/compiler.dart#newcode44 lib/compiler/implementation/compiler.dart:44: * Invariant: [element] must be an declaration ...
8 years, 3 months ago (2012-09-20 11:38:36 UTC) #6
Johnni Winther
http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/compile_time_constants.dart File lib/compiler/implementation/compile_time_constants.dart (right): http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/compile_time_constants.dart#newcode547 lib/compiler/implementation/compile_time_constants.dart:547: assert(invariant(target, target.isImplementation)); On 2012/09/20 11:12:07, ahe wrote: > First ...
8 years, 3 months ago (2012-09-21 09:18:24 UTC) #7
ahe
http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart File lib/compiler/implementation/resolver.dart (right): http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart#newcode1564 lib/compiler/implementation/resolver.dart:1564: if (!target.isClass()) world.registerStaticUse(target.declaration); On 2012/09/21 09:18:25, Johnni Winther wrote: ...
8 years, 3 months ago (2012-09-21 09:26:42 UTC) #8
Johnni Winther
http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart File lib/compiler/implementation/resolver.dart (right): http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart#newcode1564 lib/compiler/implementation/resolver.dart:1564: if (!target.isClass()) world.registerStaticUse(target.declaration); On 2012/09/21 09:26:42, ahe wrote: > ...
8 years, 3 months ago (2012-09-21 10:08:13 UTC) #9
ahe
http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart File lib/compiler/implementation/resolver.dart (right): http://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart#newcode1564 lib/compiler/implementation/resolver.dart:1564: if (!target.isClass()) world.registerStaticUse(target.declaration); On 2012/09/21 10:08:13, Johnni Winther wrote: ...
8 years, 3 months ago (2012-09-21 12:11:31 UTC) #10
Johnni Winther
https://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart File lib/compiler/implementation/resolver.dart (right): https://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart#newcode1564 lib/compiler/implementation/resolver.dart:1564: if (!target.isClass()) world.registerStaticUse(target.declaration); On 2012/09/21 12:11:31, ahe wrote: > ...
8 years, 3 months ago (2012-09-21 12:20:14 UTC) #11
ahe
https://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart File lib/compiler/implementation/resolver.dart (right): https://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementation/resolver.dart#newcode1564 lib/compiler/implementation/resolver.dart:1564: if (!target.isClass()) world.registerStaticUse(target.declaration); On 2012/09/21 12:20:14, Johnni Winther wrote: ...
8 years, 3 months ago (2012-09-21 12:21:22 UTC) #12
ahe
8 years, 3 months ago (2012-09-21 12:58:09 UTC) #13
https://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementati...
File lib/compiler/implementation/resolver.dart (right):

https://codereview.chromium.org/10917285/diff/12001/lib/compiler/implementati...
lib/compiler/implementation/resolver.dart:1564: if (!target.isClass())
world.registerStaticUse(target.declaration);
On 2012/09/21 12:21:22, ahe wrote:
> On 2012/09/21 12:20:14, Johnni Winther wrote:
> > On 2012/09/21 12:11:31, ahe wrote:
> > > On 2012/09/21 10:08:13, Johnni Winther wrote:
> > > > On 2012/09/21 09:26:42, ahe wrote:
> > > > > On 2012/09/21 09:18:25, Johnni Winther wrote:
> > > > > > On 2012/09/20 11:12:07, ahe wrote:
> > > > > > > Why is this necessary?
> > > > > > 
> > > > > > [target] might be the implementation element and only declaration
> > elements
> > > > may
> > > > > > be registered.
> > > > > 
> > > > > Why might it be the implementation element?
> > > > 
> > > > If we are in a patch library, target might resolve to a patch element.
> > > 
> > > Why?
> > 
> > Because the patch scope (the scope created within a patch) returns the patch
> > elements of the same patch library on lookup. 
> 
> Why?

We discussed this offline.

Seems that our invariants aren't as tight as they should be, yet. Johnni will
add a TODO explaining what direction we will take in the next CL.

Powered by Google App Engine
This is Rietveld 408576698