Skip to content
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

feat(compiler): Add a TSConfig option useTemplatePipeline #54057

Closed
wants to merge 1 commit into from

Conversation

dylhunn
Copy link
Contributor

@dylhunn dylhunn commented Jan 24, 2024

The Template Pipeline is a brand new backend for the Angular compiler, replacing TemplateDefinitionBuilder and friends. It generates the Ivy instructions corresponding to an input template (or host binding). The Template Pipeline has an all-new design based on an intermediate representation compiled over many phases, which will allow us to experiment with compiler changes more easily in the future.

With this commit, the template pipeline can now be enabled in any project via the useTemplatePipeline TSConfig option. However, it is still disabled by default.

@dylhunn dylhunn marked this pull request as draft January 24, 2024 19:39
@angular-robot angular-robot bot added the detected: feature PR contains a feature commit label Jan 24, 2024
@dylhunn dylhunn added area: compiler Issues related to `ngc`, Angular's template compiler target: minor This PR is targeted for the next minor release compiler: template pipeline labels Jan 24, 2024
@ngbot ngbot bot modified the milestone: Backlog Jan 24, 2024
@dylhunn dylhunn force-pushed the tp-switch branch 3 times, most recently from 733163d to cfc5282 Compare January 24, 2024 20:25
@dylhunn dylhunn added the action: review The PR is still awaiting reviews from at least one requested reviewer label Jan 24, 2024
@dylhunn dylhunn marked this pull request as ready for review January 24, 2024 20:49
@@ -431,4 +431,9 @@ export interface MiscOptions {
* another library without option set will not issue error if rendered in orphan way.
*/
forbidOrphanComponents?: boolean;

/**
* Whether to use TemplateDefinitionBuilder as the code generator, or Template Pipeline.hand
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hand? ✋

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought this comment might come in handy

packages/compiler/src/jit_compiler_facade.ts Outdated Show resolved Hide resolved
The Template Pipeline is a brand new backend for the Angular compiler, replacing `TemplateDefinitionBuilder`. It generates the Ivy instructions corresponding to an input template (or host binding). The Template Pipeline has an all-new design based on an intermediate representation compiled over many phases, which will allow us to experiment with compiler changes more easily in the future.

With this commit, the template pipeline can now be enabled in any project via the `useTemplatePipeline` TSConfig option. However, it is still disabled by default.
@dylhunn
Copy link
Contributor Author

dylhunn commented Jan 24, 2024

caretaker: the current two approvals are sufficient to merge.
Presubmit contains a flake, but is good to go: link.

@dylhunn dylhunn removed the action: review The PR is still awaiting reviews from at least one requested reviewer label Jan 24, 2024
@dylhunn dylhunn added action: merge The PR is ready for merge by the caretaker merge: caretaker note Alert the caretaker performing the merge to check the PR for an out of normal action needed or note and removed action: merge The PR is ready for merge by the caretaker labels Jan 24, 2024
@jessicajaniuk
Copy link
Contributor

This PR was merged into the repository by commit 47e6e84.

atscott pushed a commit to atscott/angular that referenced this pull request Jan 26, 2024
…54057)

The Template Pipeline is a brand new backend for the Angular compiler, replacing `TemplateDefinitionBuilder`. It generates the Ivy instructions corresponding to an input template (or host binding). The Template Pipeline has an all-new design based on an intermediate representation compiled over many phases, which will allow us to experiment with compiler changes more easily in the future.

With this commit, the template pipeline can now be enabled in any project via the `useTemplatePipeline` TSConfig option. However, it is still disabled by default.

PR Close angular#54057
rlmestre pushed a commit to rlmestre/angular that referenced this pull request Jan 26, 2024
…54057)

The Template Pipeline is a brand new backend for the Angular compiler, replacing `TemplateDefinitionBuilder`. It generates the Ivy instructions corresponding to an input template (or host binding). The Template Pipeline has an all-new design based on an intermediate representation compiled over many phases, which will allow us to experiment with compiler changes more easily in the future.

With this commit, the template pipeline can now be enabled in any project via the `useTemplatePipeline` TSConfig option. However, it is still disabled by default.

PR Close angular#54057
danieljancar pushed a commit to danieljancar/angular that referenced this pull request Jan 26, 2024
…54057)

The Template Pipeline is a brand new backend for the Angular compiler, replacing `TemplateDefinitionBuilder`. It generates the Ivy instructions corresponding to an input template (or host binding). The Template Pipeline has an all-new design based on an intermediate representation compiled over many phases, which will allow us to experiment with compiler changes more easily in the future.

With this commit, the template pipeline can now be enabled in any project via the `useTemplatePipeline` TSConfig option. However, it is still disabled by default.

PR Close angular#54057
amilamen pushed a commit to amilamen/angular that referenced this pull request Jan 26, 2024
…54057)

The Template Pipeline is a brand new backend for the Angular compiler, replacing `TemplateDefinitionBuilder`. It generates the Ivy instructions corresponding to an input template (or host binding). The Template Pipeline has an all-new design based on an intermediate representation compiled over many phases, which will allow us to experiment with compiler changes more easily in the future.

With this commit, the template pipeline can now be enabled in any project via the `useTemplatePipeline` TSConfig option. However, it is still disabled by default.

PR Close angular#54057
nikvarma pushed a commit to nikvarma/angular that referenced this pull request Jan 31, 2024
…54057)

The Template Pipeline is a brand new backend for the Angular compiler, replacing `TemplateDefinitionBuilder`. It generates the Ivy instructions corresponding to an input template (or host binding). The Template Pipeline has an all-new design based on an intermediate representation compiled over many phases, which will allow us to experiment with compiler changes more easily in the future.

With this commit, the template pipeline can now be enabled in any project via the `useTemplatePipeline` TSConfig option. However, it is still disabled by default.

PR Close angular#54057
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Feb 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
action: merge The PR is ready for merge by the caretaker area: compiler Issues related to `ngc`, Angular's template compiler compiler: template pipeline detected: feature PR contains a feature commit merge: caretaker note Alert the caretaker performing the merge to check the PR for an out of normal action needed or note PullApprove: disable target: minor This PR is targeted for the next minor release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants