TypeScript Weekly #7:依存関係シグネチャ並列計算で増分再ビルドが56%高速化、LSPファイル操作遅延が4割超削減、TScertが健全なコアサブセットを検証

TypeScript · Weekly #7

TypeScript Weekly #7:依存関係シグネチャ並列計算で増分再ビルドが56%高速化、LSPファイル操作遅延が4割超削減、TScertが健全なコアサブセットを検証

typescriptTypeScript週刊コンパイラ形式手法

データソース:GitHub Releases + 官方博客 + HN

📦 リリース動向

公式安定版の現状とメインラインの進化

現在の公式最新安定バージョンは TypeScript 7.0.2(2026年8月20日リリース、tag v7.0.2)です。7.0におけるアーキテクチャ刷新の詳細は前回の解説記事 TypeScript 7.0 詳解 をご参照ください。最新プレビュー版は TypeScript 7.1 Beta(2026年10月20日リリース、tag v7.1-beta)となっています。11月6日には公式拡張機能アップデート vscode-typescript 1.0.2(tag vscode-typescript/v1.0.2)がリリースされ、ワークスペースにおけるコンパイラバージョンの判定ロジックが修正されました。

過去7日間で、公式メインブランチ(main)には合計53件のプルリクエストがマージされました。進化の重点は、増分コンパイルの並列化、言語サーバープロトコル(LSP)の定常遅延削減、および仮想化環境でのファイル監視の互換性向上に置かれています。

モジュール / 機構マージ日機構調整の要点実際の影響
依存関係シグネチャの並列再計算2026-11-03PR #64659をマージ。基本モジュール変更後の下流宣言シグネチャ計算をワーカースレッドの並列タスクへ分散し、上限を GOMAXPROCS にバインド増分コンパイルで最も時間を要していた単一コアの直列フェーズを解消。6,000ファイルの負荷テストで再ビルド時間が3.4秒から1.5秒に短縮。
LSPプロファイリング詳細チューニング2026-11-05PR #64877をマージ。メモリ割り当てゼロの SyncMap.LoadClean 読み取りパスを導入し、ディレクトリの並行プリフェッチと parseTask フィールドの圧縮を実施VS Codeプロジェクトにおけるファイルの作成・削除遅延が43%削減(374msから218msへ)。設定変更遅延も40%改善。
EXDEV監視フォールバック2026-11-06PR #65325をマージ(Issue #65290を修正)。Linuxの fanotify_mark がデバイス境界をまたぐマウントエラーに遭遇した際、自動的にフォールバックvirtiofsマウント環境や多層Dockerコンテナ内で tsc --watch を実行した際に散発していた監視障害やクラッシュを解消。
クラスメンバのコンパクトな順序保持テーブル2026-11-03PR #65093をマージ(Issue #65052を修正)。クラスおよびインターフェースのメンバ配置において、ハッシュテーブルをコンパクトな SymbolTable に置き換え型メタデータの常駐メモリを削減。クラスやインターフェースのメンバ宣言順序を正確に復元(自クラス優先、基底クラスは右から左へ)。

公式の増分再ビルドベンチマークデータによると、多数の箇所から参照される基盤ファイルを変更した場合、マルチコア並列化によってブロッキング待ち時間が大幅に削減されています。

テストシナリオ / コードベース旧バージョンの直列所要時間PR #64659 並列所要時間変動幅ピークメモリの変化
6,000リーフノード合成テスト(単一コア)3.40 s(CPU 206%)1.50 s(CPU 524%)-55.88%368 MiB → 370 MiB
6,000ノードテスト(—checkers 8)3.40 s1.20 s-64.71%368 MiB → 377 MiB
6,000リーフノードの全量変更1.50 s1.50 s変化なし456 MiB → 377 MiB (-17.3%)
n8n nodes-base(433箇所の参照)5.40 s4.50 s-16.67%メモリ変化なし

📝 深層レポート

TScert公開:定理証明支援系Leanにより健全なTypeScriptコアを構築

何が起きたか: 11月4日、静的解析ツールInferの原作者であるCristiano Calcagno氏が、型チェッカープロジェクト TScert をオープンソース化しました(HNの議論)。このプロジェクトは定理証明系Leanを用いて型の健全性を検証し、形式的証明を伴うコードのみを通過させます。

なぜ重要か: 公式コンパイラは配列の共変性や境界外インデックスに関して意図的な不健全さを残しており、型チェックを通過しても実行時に TypeError が発生するリスクがあります。TScertは可変配列の不変性を強制し、ループの境界条件を形式的に検証することで、実行時の型エラーを根絶します。

誰に影響するか: 低レイヤーの暗号化ライブラリ、金融決済システム、AI自動生成コードに依存する基盤システムを開発するエンジニアリングチーム。

筆者の視点: 動的リフレクションやグローバルプロトタイプへの妥協を排し、厳密に検証可能なサブセットに集中することで、高い安全性が求められる領域に数学的な保証をもたらしています。


メインブランチが依存関係シグネチャの並列計算をマージ:増分再ビルドが56%高速化

何が起きたか: 11月3日、TypeScript公式はPR #64659をマージし、増分コンパイル(--incremental)時に影響を受ける下流の宣言シグネチャを走査する処理をワーカースレッドの並列タスクとしてスケジューリングするようにしました。

なぜ重要か: 基盤モジュールが変更された際、旧コンパイラは単一コアで直列にシグネチャを計算していました。新設計では下流ファイルを並行タスクとして分離し、GOMAXPROCS を上限に並列処理します。6,000ノードの依存関係テストでは、再ビルド時間が3.4秒から1.5秒(--checkers 8 では1.2秒)へ短縮され、内部状態の誤判定による非決定的な tsbuildinfo の出力不具合も修正されました。

誰に影響するか: 依存関係が密結合した大規模モノレポや、増分ビルドに大きく依存しているフロントエンドチーム。

筆者の視点: Goへのリライト以降に残されていた単一コア計算のボトルネックを解消し、マルチコア並列化を依存関係推論まで拡張したことで、日常の開発におけるホットリロード体験が直接的に向上します。


RestateがDurable Coroutinesを発表:ジェネレータを活用した決定論的ステートリカバリ

何が起きたか: 11月4日、分散ランタイムのRestateは「Durable Coroutines for TypeScript」と題する記事を公開しました(HNの議論)。ES6ジェネレータ(yield*)をベースに再構築されたユーザー空間コルーチンスケジューラが披露されています。

なぜ重要か: 従来のフレームワークがPromiseをインターセプトする方式では、マイクロタスクのイベントループの乱れによってリプレイ順序が狂いやすい課題がありました。RestateはコルーチンをFiberとしてカプセル化し、スケジューラがキューに従って明示的に next() を呼び出しながら操作ログを記録します。これにより、障害復旧時でも実行シーケンスが100%決定論的に再現され、コルーチンのキャンセルも安全に行えます。

誰に影響するか: 長時間実行されるワークフロー、分散マイクロサービスのオーケストレーション、自律型AIエージェントのステートマシンを構築するエンジニア。

筆者の視点: 言語標準のジェネレータプリミティブに立ち返ることで非同期処理の競合状態を根本から排除し、分散システムにおける障害調査の複雑さを大きく軽減しています。


GeaStackがgeatscをオープンソース化:TypeScriptをネイティブC++へ静的コンパイル

何が起きたか: 11月5日、クロスプラットフォームツールキットのGeaStackが静的コンパイラ geatsc を公開しました(HNの議論)。TypeScriptのソースコードをJSエンジンやWebAssemblyランタイムを一切介さず、ネイティブC++コードへ直接コンパイルします。

なぜ重要か: ESP32やRP2350などの物理メモリが限られたマイクロコントローラでは、V8やQuickJSなどのエンジンを動作させることが困難でした。geatsc は tsc のフロントエンド型チェックを活用し、TSのクラスをC++の構造体へ、数値をネイティブのワード長へマッピングすることで、マイコンのファームウェアに直接書き込み、マイクロ秒単位のコールドスタートを実現します。

誰に影響するか: IoTファームウェア開発チーム、省電力エッジデバイス制作者、フルスタックハードウェアエンジニア。

筆者の視点: 型注釈が完全に静的なセマンティクスを持つ場合、コンパイル時に高度な脱動的化が可能となり、高級スクリプト言語をハードリアルタイム環境で動作させられるようになります。


🔥 コミュニティの話題

TScertの形式検証健全コアが巻き起こす型システムの役割論争

11月4日、Cristiano Calcagno氏によるTScertの公開は、Hacker News上で言語設計に関する熱い議論を呼びました(25ポイント、11コメント、トピックはこちら)。議論の核心は、型システムにおける設計思想のトレードオフです。

  • エコシステム互換性と実用重視派:この立場では、TypeScriptの本質的な価値は既存のJavaScriptエコシステムを漸進的に強化することにあると考えます。実際のプロダクト開発では動的なオブジェクト構築やサードパーティ製ライブラリとの柔軟な連携が不可欠です。数学的な健全性を求めて可変配列を完全に不変とし、あらゆるプロパティアクセスに明示的な undefined チェックを強制すれば、膨大なnpmエコシステムの再利用性が損なわれ、大量のボイラープレートに悩まされることになります。
  • 数学的証明とゼロ欠陥追求派:この立場からは、金融決済や暗号通信、大規模なAIエージェントによるコード生成環境において、型の見せかけによる障害は極めて深刻だと指摘されます。公式コンパイラの緩やかな前提によって予期せぬ undefined が検査をすり抜けるケースは後を絶ちません。中核サブセットに形式証明の境界を設けることで、ミッションクリティカルなシステムに数学的な欠陥ゼロの保証が与えられ、実行時の防御的検証コードを省くことができます。

DiscordがElectronを廃止しネイティブ移行:デスクトップ開発の技術選定を巡る議論

11月7日、DiscordがデスクトップアプリをネイティブUIフレームワークGPUIで刷新しメモリ使用量を70%削減したという報道が、Hacker Newsで大きな反響を呼びました(444ポイント、75件の直接コメント、トピックはこちら)。論点はマルチプラットフォーム開発のパラダイムに集中しています。

  • ネイティブ性能と省リソース追求派:デスクトップツールごとに独立したChromiumとNode.jsランタイムを抱え込ませる設計は、明らかなリソースの浪費であると批判します。バックグラウンドでギガバイト単位のメモリとVRAMを消費し、入力遅延を引き起こす現状に対し、巨大なDOMツリーとガベージコレクションを排除したDiscordの成果は、ネイティブコンパイルUIや軽量エンジンの優位性を明確に証明したと主張します。
  • マルチプラットフォーム生産性とWebエコシステム重視派:WebとTypeScriptのエコシステムがもたらす開発効率の高さは唯一無二であると強調します。複数OS間でのコード共有、豊富なUIコンポーネント資産、迅速なアップデート配信力は、中小規模のチームが高機能なアプリケーションを提供し続けるための必須条件です。各OSごとにC++やRustで書き直す開発保守コストを負担できる企業は限られており、Webアーキテクチャそのものを否定するのではなく、軽量Webviewの活用やスクリプト最適化こそが進むべき道だと論じています。

🔭 来週の注目ポイント

  • TypeScript 7.1 のリリーススケジュール:公式チームが11月中旬に7.1 RCブランチを切るかどうかに注目。特に --disableDynamicImportExtensionRewriting(PR #65289)の主要バンドラ(Vite、Rollup等)への統合進捗が確認されます。
  • 仮想化マウント環境でのファイル監視の安定性:Linuxのvirtiofsマウント環境において、fanotify から inotify への自動フォールバックパッチ(PR #65325)がWSL2やコンテナクラスターでどのように機能しているか、フィードバックの行方が注目されます。