Program-facts (wpfacts) stage takes ~18 min / 4 GB on typescript.js (expected seconds)

Aperta
#13,974 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

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

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

bug package-audit performance

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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PerryTS/perry

Tutte le issue di PerryTS/perry

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.