Retrieved article excerpt
Open article Β· Retrieved 2026-10-10T18:48:04.377465+00:00
## Repository navigation
# refactor(compiler-cli): integrate hybrid preprocessor into compiler-cli - #71259
#71259
Merged
[crisbeto](https://github.com/crisbeto) merged 1 commit into
[angular:main](https://github.com/angular/angular/tree/main)angular/angular:mainfrom
[atscott:feat/compiler-cli-preprocessor](https://github.com/atscott/angular/tree/feat/compiler-cli-preprocessor)atscott/angular:feat/compiler-cli-preprocessorCopy head branch name to clipboard
Oct 8, 2026
Merged
## [refactor(compiler-cli): integrate hybrid preprocessor into compiler-cli](https://github.com/angular/angular/pull/71259#top)#71259 [crisbeto](https://github.com/crisbeto) merged 1 commit into [angular:main](https://github.com/angular/angular/tree/main)angular/angular:mainfrom [atscott:feat/compiler-cli-preprocessor](https://github.com/atscott/angular/tree/feat/compiler-cli-preprocessor)atscott/angular:feat/compiler-cli-preprocessorCopy head branch name to clipboard
## Conversation
[@atscott](https://github.com/atscott)
### @atscott **[atscott](https://github.com/atscott)** commented [Oct 8, 2026](https://github.com/angular/angular/pull/71259#issue-5765047618) β’ edited Loading Uh oh! There was an error while loading. [Please reload this page](https://github.com/angular/angular/pull/71259).
Copy link
Copy Markdown
Contributor
Integrate the hybrid Angular preprocessor (NGP) under packages/compiler-cli/preprocessor, along with its language service integration, VS Code extension, and Rust/Wasm Bazel toolchain.
Key components included:
- Rust-based AST analyzer and Wasm compilation target (packages/compiler-cli/preprocessor/ng-analyze)
- Preprocessor engine and Jasmine test suites (packages/compiler-cli/preprocessor)
- Language service extension and specs (packages/compiler-cli/preprocessor/language-service)
- Experimental VS Code extension (ngp-vscode-ng-language-service)
- Rust toolchain and crate dependencies in Bazel (MODULE.bazel, Cargo.toml)
Monorepo integration & compatibility adjustments:
- Rust toolchain & hermetic Bazel testing: Made N-API optional (default = [] in Cargo.toml) and
added non-NAPI fallback methods on Analyzer and TestAnalyzer (analyzer.rs, test\_analyzer.rs,
lib.rs) for native Bazel rust\_test and Wasm compilation; replaced static Cargo.toml lookups in
fs.rs tests with hermetic tempfile fixtures for Bazel sandbox execution; updated driver test
fixture for Option local\_name.
- Angular monorepo TypeScript & linting compliance: Added tslint:disable:no-console pragmas to CLI
entrypoints (main.ts, ngp.ts); added explicit override modifiers (output\_ast\_printer.ts); aligned
TypeScript ESM imports (tcb\_ls\_util.ts); and consolidated compiler imports and type references
(processor.ts, hybrid\_compiler.ts).
[@angular-robot](https://github.com/apps/angular-robot)
[angular-robot](https://github.com/apps/angular-robot)
Bot
added
[detected: feature](https://github.com/angular/angular/issues?q=state%3Aopen%20label%3A%22detected%3A%20feature%22)
PR contains a feature commit
[area: compiler](https://github.com/angular/angular/issues?q=state%3Aopen%20label%3A%22area%3A%20compiler%22)
Issues related to `ngc`, Angular's template compiler
labels
[Oct 8, 2026](https://github.com/angular/angular/pull/71259#event-32804815069)
[@ngbot](https://github.com/apps/ngbot)
[ngbot](https://github.com/apps/ngbot)
Bot
modified the milestone:
[Backlog](https://github.com/angular/angular/milestone/82)
[Oct 8, 2026](https://github.com/angular/angular/pull/71259#event-32804820166)
[@atscott](https://github.com/atscott)
[atscott](https://github.com/atscott)
changed the title
~~feat(compiler-cli): integrate hybrid preprocessor into compiler-cli~~
refactor(compiler-cli): integrate hybrid preprocessor into compiler-cli
[Oct 8, 2026](https://github.com/angular/angular/pull/71259#event-32805568855)
[@atscott](https://github.com/atscott)
[atscott](https://github.com/atscott)
[force-pushed](https://github.com/angular/angular/compare/15325074f8b7784a40fb94aef9acbc8634f889e1..a1ed175a7b4078a4aaf4b4312234b4e75a61c2ed)
the
feat/compiler-cli-preprocessor
branch
4 times, most recently
from
[`1532507`](https://github.com/angular/angular/commit/15325074f8b7784a40fb94aef9acbc8634f889e1) to
[`a1ed175`](https://github.com/angular/angular/commit/a1ed175a7b4078a4aaf4b4312234b4e75a61c2ed) [Compare](https://github.com/angular/angular/compare/15325074f8b7784a40fb94aef9acbc8634f889e1..a1ed175a7b4078a4aaf4b4312234b4e75a61c2ed)
[October 8, 2026 17:53](https://github.com/angular/angular/pull/71259#event-32812583312)
[crisbeto](https://github.com/crisbeto)
**[crisbeto](https://github.com/crisbeto)**
approved these changes
[Oct 8, 2026](https://github.com/angular/angular/pull/71259#pullrequestreview-5461113749)
[View reviewed changes](https://github.com/angular/angular/pull/71259/files)
[@atscott](https://github.com/atscott) [@mattrbeck](https://github.com/mattrbeck)[@alxhub](https://github.com/alxhub) [@crisbeto](https://github.com/crisbeto) [@JoostK](https://github.com/JoostK) [@JeanMeche](https://github.com/JeanMeche)
`refactor(compiler-cli): integrate hybrid preprocessor into compiler-cli`
β¦
`dac7269`
```
Integrate the hybrid Angular preprocessor (NGP) under packages/compiler-cli/preprocessor,
along with its language service integration, VS Code extension, and Rust/Wasm Bazel toolchain.
Key components included:
- Rust-based AST analyzer and Wasm compilation target (packages/compiler-cli/preprocessor/ng-analyze)
- Preprocessor engine and Jasmine test suites (packages/compiler-cli/preprocessor)
- Language service extension and specs (packages/compiler-cli/preprocessor/language-service)
- Experimental VS Code extension (ngp-vscode-ng-language-service)
- Rust toolchain and crate dependencies in Bazel (MODULE.bazel, Cargo.toml)
Monorepo integration & compatibility adjustments:
- Rust toolchain & hermetic Bazel testing: Made N-API optional (default = [] in Cargo.toml) and
added non-NAPI fallback methods on Analyzer and TestAnalyzer (analyzer.rs, test_analyzer.rs,
lib.rs) for native Bazel rust_test and Wasm compilation; replaced static Cargo.toml lookups in
fs.rs tests with hermetic tempfile fixtures for Bazel sandbox execution; updated driver test
fixture for Option<String> local_name.
- Angular monorepo TypeScript & linting compliance: Added tslint:disable:no-console pragmas to CLI
entrypoints (main.ts, ngp.ts); added explicit override modifiers (output_ast_printer.ts); aligned
TypeScript ESM imports (tcb_ls_util.ts); and consolidated compiler imports and type references
(processor.ts, hybrid_compiler.ts).
Co-authored-by: Matthew Beck <[email protected]>
Co-authored-by: Alex Rickabaugh <[email protected]>
Co-authored-by: Kristiyan Kostadinov <[email protected]>
Co-authored-by: JoostK <[email protected]>
Co-authored-by: Matthieu Riegler <[email protected]>
```
[@atscott](https://github.com/atscott)
[atscott](https://github.com/atscott)
[force-pushed](https://github.com/angular/angular/compare/a1ed175a7b4078a4aaf4b4312234b4e75a61c2ed..dac7269f6ecf3302558f501fd2d8503a66e328e0)
the
feat/compiler-cli-preprocessor
branch
from
[`a1ed175`](https://github.com/angular/angular/commit/a1ed175a7b4078a4aaf4b4312234b4e75a61c2ed) to
[`dac7269`](https://github.com/angular/angular/commit/dac7269f6ecf3302558f501fd2d8503a66e328e0) [Compare](https://github.com/angular/angular/compare/a1ed175a7b4078a4aaf4b4312234b4e75a61c2ed..dac7269f6ecf3302558f501fd2d8503a66e328e0)
[October 8, 2026 18:34](https://github.com/angular/angular/pull/71259#event-32815505458)
[@atscott](https://github.com/atscott)
[atscott](https://github.com/atscott)
marked this pull request as ready for review
[October 8, 2026 18:49](https://github.com/angular/angular/pull/71259#event-32816516866)
[@pullapprove](https://github.com/apps/pullapprove)
[pullapprove](https://github.com/apps/pullapprove)
Bot
requested a review
from [josephperrott](https://github.com/josephperrott)
[October 8, 2026 18:49](https://github.com/angular/angular/pull/71259#event-32816544793)
[@crisbeto](https://github.com/crisbeto)
[crisbeto](https://github.com/crisbeto)
added
[action: merge](https://github.com/angular/angular/issues?q=state%3Aopen%20label%3A%22action%3A%20merge%22)
The PR is ready for merge by the caretaker
[target: patch](https://github.com/angular/angular/issues?q=state%3Aopen%20label%3A%22target%3A%20patch%22)
This PR is targeted for the next patch release
[target: minor](https://github.com/angular/angular/issues?q=state%3Aopen%20label%3A%22target%3A%20minor%22)
This PR is targeted for the next minor release
and removed
[target: patch](https://github.com/angular/angular/issues?q=state%3Aopen%20label%3A%22target%3A%20patch%22)
This PR is targeted for the next patch release
labels
[Oct 8, 2026](https://github.com/angular/angular/pull/71259#event-32826601546)
Hide details
View details
[@crisbeto](https://github.com/crisbeto)
[crisbeto](https://github.com/crisbeto)
merged commit [`4e4ad75`](https://github.com/angular/angular/commit/4e4ad75144e55538cedc65f0ac3ff5b68cb34ce9)
into
angular:main
[Oct 8, 2026](https://github.com/angular/angular/pull/71259#event-32826770256)
25 of 30 checks passed
### Uh oh!
There was an error while loading. [Please reload this page](https://github.com/angular/angular/pull/71259).
[@crisbeto](https://github.com/crisbeto)
### **[crisbeto](https://github.com/crisbeto)** commented [Oct 8, 2026](https://github.com/angular/angular/pull/71259#issuecomment-6069327704)
Copy link
Copy Markdown
Member
| |
| --- |
| This PR was merged into the repository. The changes were merged into the following branches: - main: [4e4ad75](https://github.com/angular/angular/commit/4e4ad75144e55538cedc65f0ac3ff5b68cb34ce9) |
[@Jordan-Hall](https://github.com/Jordan-Hall)
[Jordan-Hall](https://github.com/Jordan-Hall)
mentioned this pull request
[Oct 9, 2026](https://github.com/angular/angular/pull/71259#ref-pullrequest-5780983728)
[feat(core-macro): add Angular-style template macro
Jordan-Hall/dioxus#1](https://github.com/Jordan-Hall/dioxus/pull/1)
Open
[xizhou0606](https://github.com/xizhou0606)
pushed a commit
to xizhou0606/ai-interview-experience
that referenced
this pull request
[Oct 10, 2026](https://github.com/angular/angular/pull/71259#ref-commit-162a2da)
liushurui
`Add Oct 10 tech news (incremental scan window 15:03-18:00 UTC Oct 10 β¦`
β¦
`162a2da`
```
β¦after e34403a's 14:00-15:03 coverage end, its feeds pulled 15:02-15:03; this session's feeds pulled 18:00-18:14 UTC with retries): Angular merged its Rust/Wasm hybrid preprocessor (NGP) into the compiler CLI (primary github.com/angular/angular/pull/71259 verified via the GitHub API - title 'refactor(compiler-cli): integrate hybrid preprocessor into compiler-cli', authored by Angular core's atscott, merged into main by crisbeto at 2026-10-08T21:23:49Z, labels action: merge / area: compiler / target: minor, 2239 files changed +372603 -18): the PR integrates the hybrid Angular preprocessor under packages/compiler-cli/preprocessor with a Rust-based AST analyzer and Wasm compilation target (packages/compiler-cli/preprocessor/ng-analyze), the preprocessor engine and Jasmine suites, language-service extension and specs, an experimental VS Code extension (ngp-vscode-ng-language-service), and a Rust toolchain with hermetic Bazel/Cargo wiring; discovered via HN submission 17:18:57Z 2p 0c id 50035023 titled 'Angular compiler rewritten in Rust, PR merged to main' - the HN title overstates (the PR integrates a hybrid preprocessor with a Rust AST analyzer, it is not a full compiler rewrite) and the entry copy follows the PR itself; gap-fill disclosure: the merge is Oct 8 21:23Z but no prior session could have seen it - no feed in the standing 45 set carries angular PRs (angular.dev/blog fetched this session carries no related post, so the PR is the canonical source), no HN submission existed through e34403a's 15:01:34Z sweep end per their record