Program-facts (wpfacts) stage takes ~18 min / 4 GB on typescript.js (expected seconds)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- rust, typescript
- 領域
- compilers, performance
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Rust
- スター
- 4.9k
- フォーク
- 166
- 平均マージ
- 3時間 46分
- マージ済み PR(30日)
- 891
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
PerryTS/perry のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信
-
package-audit performance
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
PerryTS/perry#13976 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug package-audit
難易度 4/5 3〜5日 初心者へのやさしさ 46/100
メンテナーはふだん 1 日以内に返信
-
bug package-audit
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
-
bug package-audit
難易度 4/5 3〜5日 初心者へのやさしさ 53/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
madesroches/fontaine#513 ·
メンテナーはふだん 1 日以内に返信
-
area:ui needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
bherbruck/solvecraft#13497 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
needs-triage tooling
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
neilsh/stunt-reel#317 ·
メンテナーはふだん 1 日以内に返信
-
Add Noto Sans Thaana (Dhivehi) - missing face blocking Thaana support in PdfCraft対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
storytold/craft-fonts#65 ·
メンテナーはふだん 2 日以内に返信