Program-facts (wpfacts) stage takes ~18 min / 4 GB on typescript.js (expected seconds)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- rust, typescript
- Ambito
- compilers, performance
Direzione di ricerca
Start with program_facts.rs, which the issue names as describing the whole-program facts stage, and inspect the facts-only reporting options PERRY_FACTS_ONLY=1 and PERRY_FACTS_REPORT=1. Reproduce with the stated 10-line ts.transpileModule program and [email protected], then profile constraint generation and solving. Done means the stage handles tsc-sized modules in seconds or exits early with a note when a budget is exceeded.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Compiling a program that imports typescript from source spends ~18 minutes in the whole-program facts stage. program_facts.rs describes that stage as "a few seconds at most".
Setup: [email protected] with perry.compilePackages: ["typescript"] (plus allow.compilePackages), Perry ced22982, M1 mini. The program is a 10-line ts.transpileModule call.
| run | result |
|---|---|
| default compile | still in the facts stage after >20 min (killed) |
PERRY_FACTS_ONLY=1 PERRY_FACTS_REPORT=1 |
1061 s wall: 548 s constraint generation, 80 s solve, ~12.5M nodes, 4.1 GB peak footprint; wrote a 3.2 GB report dump |
PERRY_PROGRAM_FACTS=0 |
facts stage skipped; the remaining compile (mostly LLVM codegen of the single 9 MB typescript.js module, 34 units, ~990 MiB IR) takes 17–29 min at 7.4–10.3 GB peak RSS |
That LLVM time is a separate cost issue. The facts stage alone should not be ~18 min / 4 GB.
Why it matters: removing the native typescript binding (owner decision) makes import ts from 'typescript' compile typescript.js from source for every user. With the current numbers, each program that imports typescript costs ~35–45 min to compile by default. The object cache didn't hit across different entry programs either.
Expected: the facts stage scales to tsc-sized modules in seconds, or bails out early with a note when a module exceeds a budget.
- Lingua principale
- Rust
- Stelle
- 4.9k
- Fork
- 166
- Merge medio
- 3h 46m
- PR unite (30g)
- 891
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PerryTS/perry
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
package-audit performance
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
PerryTS/perry#13976 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug package-audit
Difficoltà 4/5 3-5 giorni Idoneità per principianti 46/100
I maintainer di solito rispondono entro 1 giorno
-
bug package-audit
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
bug package-audit
Difficoltà 4/5 3-5 giorni Idoneità per principianti 53/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di PerryTS/perry
Issue simili
-
area/tools bug session-analysis
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
oracle/rust-oracledb#66 ·
-
p3 testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
respanai/respan-gateway#166 ·
I maintainer di solito rispondono entro 1 giorno
-
fixes
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
astral-sh/ruff#30076 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno