New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Precompile templates to speed up compile / new compiler pipeline #3605

Closed
tbosch opened this Issue Aug 12, 2015 · 1 comment

Comments

Projects
None yet
2 participants
@tbosch
Member

tbosch commented Aug 12, 2015

Design doc is here

Overview of the new compile pipeline is here

Proved 3x faster bootstrap times and 8x faster compilation times.

@tbosch

This comment has been minimized.

Show comment
Hide comment
@tbosch
Member

tbosch commented Aug 12, 2015

tbosch added a commit to tbosch/angular that referenced this issue Sep 28, 2015

refactor(compiler): don’t require `id` in metadata and use `appId`
The output of the compiler has to be the same
given the same input. Requiring a unique id for
every type already during compilation makes it
hard to parallelize compilation. 

Part of #3605

tbosch added a commit to tbosch/angular that referenced this issue Sep 29, 2015

refactor(compiler): don’t require `id` in metadata and use `appId`
The output of the compiler has to be the same
given the same input. Requiring a unique id for
every type already during compilation makes it
hard to parallelize compilation.

Part of #3605

tbosch added a commit to tbosch/angular that referenced this issue Sep 29, 2015

refactor(compiler): don’t require `id` in metadata and use `appId`
The output of the compiler has to be the same
given the same input. Requiring a unique id for
every type already during compilation makes it
hard to parallelize compilation.

Part of #3605

tbosch added a commit to tbosch/angular that referenced this issue Sep 29, 2015

feat(compiler): use new compiler pipeline
ATTENTION: This disables the change detector generation for benchmarks
to be able to run e2e tests. DO NOT MERGE!!

BREAKING CHANGES:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  --> important in using DebugElement and walking the hierarchy...
- ng-non-bindable is now builtin and not a directive any more
- Angular no more adds the `ng-binding` class to elements with bindings
- Directives are ordered as they are listed in the View.directives regarding change detection. Previously they had an undefined order. Only intermediate solution, link to open issue...
- Renderer interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.

Part of #3605

tbosch added a commit that referenced this issue Sep 29, 2015

refactor(compiler): don’t require `id` in metadata and use `appId`
The output of the compiler has to be the same
given the same input. Requiring a unique id for
every type already during compilation makes it
hard to parallelize compilation.

Part of #3605
Closes #4397

tbosch added a commit to tbosch/angular that referenced this issue Sep 29, 2015

feat(compiler): use new compiler pipeline
ATTENTION: This disables the change detector generation for benchmarks
to be able to run e2e tests. DO NOT MERGE!!

BREAKING CHANGES:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  --> important in using DebugElement and walking the hierarchy...
- ng-non-bindable is now builtin and not a directive any more
- Angular no more adds the `ng-binding` class to elements with bindings
- Directives are ordered as they are listed in the View.directives regarding change detection. Previously they had an undefined order. Only intermediate solution, link to open issue...
- Renderer interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.

Part of #3605

tbosch added a commit to tbosch/angular that referenced this issue Sep 29, 2015

feat(compiler): use new compiler pipeline
ATTENTION: This disables the change detector generation for benchmarks
to be able to run e2e tests. DO NOT MERGE!!

BREAKING CHANGES:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  --> important in using DebugElement and walking the hierarchy...
- ng-non-bindable is now builtin and not a directive any more
- Angular no more adds the `ng-binding` class to elements with bindings
- Directives are ordered as they are listed in the View.directives regarding change detection. Previously they had an undefined order. Only intermediate solution, link to open issue...
- Renderer interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.

Part of #3605

tbosch added a commit to tbosch/angular that referenced this issue Sep 29, 2015

feat(compiler): use new compiler pipeline
ATTENTION: This disables the change detector generation for benchmarks
to be able to run e2e tests. DO NOT MERGE!!

BREAKING CHANGES:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  --> important in using DebugElement and walking the hierarchy...
- ng-non-bindable is now builtin and not a directive any more
- Angular no more adds the `ng-binding` class to elements with bindings
- Directives are ordered as they are listed in the View.directives regarding change detection. Previously they had an undefined order. Only intermediate solution, link to open issue...
- Renderer interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.

Part of #3605

tbosch added a commit to tbosch/angular that referenced this issue Sep 29, 2015

feat(compiler): use new compiler pipeline
ATTENTION: This disables the change detector generation for benchmarks
to be able to run e2e tests. DO NOT MERGE!!

BREAKING CHANGES:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  --> important in using DebugElement and walking the hierarchy...
- ng-non-bindable is now builtin and not a directive any more
- Angular no more adds the `ng-binding` class to elements with bindings
- Directives are ordered as they are listed in the View.directives regarding change detection. Previously they had an undefined order. Only intermediate solution, link to open issue...
- Renderer interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.

Part of #3605

tbosch added a commit to tbosch/angular that referenced this issue Sep 29, 2015

feat(compiler): use new compiler pipeline
ATTENTION: This disables the change detector generation for benchmarks
to be able to run e2e tests. DO NOT MERGE!!

BREAKING CHANGES:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  --> important in using DebugElement and walking the hierarchy...
- ng-non-bindable is now builtin and not a directive any more
- Angular no more adds the `ng-binding` class to elements with bindings
- Directives are ordered as they are listed in the View.directives regarding change detection. Previously they had an undefined order. Only intermediate solution, link to open issue...
- Renderer interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.

Part of #3605

tbosch added a commit that referenced this issue Sep 29, 2015

feat(compiler): use new compiler pipeline
ATTENTION: This disables the change detector generation for benchmarks
to be able to run e2e tests. DO NOT MERGE!!

BREAKING CHANGES:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  --> important in using DebugElement and walking the hierarchy...
- ng-non-bindable is now builtin and not a directive any more
- Angular no more adds the `ng-binding` class to elements with bindings
- Directives are ordered as they are listed in the View.directives regarding change detection. Previously they had an undefined order. Only intermediate solution, link to open issue...
- Renderer interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.

Part of #3605

tbosch added a commit to tbosch/angular that referenced this issue Sep 29, 2015

feat(compiler): use new compiler pipeline
ATTENTION: This disables the change detector generation for benchmarks
to be able to run e2e tests. DO NOT MERGE!!

BREAKING CHANGES:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  --> important in using DebugElement and walking the hierarchy...
- ng-non-bindable is now builtin and not a directive any more
- Angular no more adds the `ng-binding` class to elements with bindings
- Directives are ordered as they are listed in the View.directives regarding change detection. Previously they had an undefined order. Only intermediate solution, link to open issue...
- Renderer interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.

Part of #3605

tbosch added a commit to tbosch/angular that referenced this issue Oct 1, 2015

tbosch added a commit to tbosch/angular that referenced this issue Oct 1, 2015

tbosch added a commit to tbosch/angular that referenced this issue Oct 1, 2015

refactor(compiler): use the new compiler everywhere
Closes #3605

BREAKING CHANGE:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  This changes the indices when using `DebugElement.componentViewChildren` / `DebugElement.children`.
- `@Directive.compileChildren` was removed,
  `ng-non-bindable` is now builtin and not a directive any more
- angular no more adds the `ng-binding` class to elements with bindings
- directives are now ordered as they are listed in the View.directives regarding change detection.
  Previously they had an undefined order.
- the `Renderer` interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.
- reprojection with `ng-content` is now all or nothing per `ng-content` element
- angular2 transformer can't be used in tests that modify directive metadata.
  Use `angular2/src/transform/inliner_for_test` transformer instead.

tbosch added a commit to tbosch/angular that referenced this issue Oct 1, 2015

tbosch added a commit to tbosch/angular that referenced this issue Oct 1, 2015

tbosch added a commit to tbosch/angular that referenced this issue Oct 1, 2015

refactor(compiler): use the new compiler everywhere
Closes #3605

BREAKING CHANGE:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  This changes the indices when using `DebugElement.componentViewChildren` / `DebugElement.children`.
- `@Directive.compileChildren` was removed,
  `ng-non-bindable` is now builtin and not a directive any more
- angular no more adds the `ng-binding` class to elements with bindings
- directives are now ordered as they are listed in the View.directives regarding change detection.
  Previously they had an undefined order.
- the `Renderer` interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.
- reprojection with `ng-content` is now all or nothing per `ng-content` element
- angular2 transformer can't be used in tests that modify directive metadata.
  Use `angular2/src/transform/inliner_for_test` transformer instead.

@kegluneq kegluneq referenced this issue Oct 1, 2015

Closed

Ng meta merge #4456

tbosch added a commit to tbosch/angular that referenced this issue Oct 2, 2015

refactor(compiler): use the new compiler everywhere
Closes #3605

BREAKING CHANGE:
- we don't mark an element as bound any more if it only contains text bindings
  E.g. <div>{{hello}}</div>
  This changes the indices when using `DebugElement.componentViewChildren` / `DebugElement.children`.
- `@Directive.compileChildren` was removed,
  `ng-non-bindable` is now builtin and not a directive any more
- angular no more adds the `ng-binding` class to elements with bindings
- directives are now ordered as they are listed in the View.directives regarding change detection.
  Previously they had an undefined order.
- the `Renderer` interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations.
- reprojection with `ng-content` is now all or nothing per `ng-content` element
- angular2 transformer can't be used in tests that modify directive metadata.
  Use `angular2/src/transform/inliner_for_test` transformer instead.

kegluneq added a commit that referenced this issue Oct 2, 2015

yjbanov added a commit that referenced this issue Oct 2, 2015

@tbosch tbosch closed this in 76247b7 Oct 2, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment