Vercel LabsがTypeScriptコンパイラをTypeScriptで書き直し、tsgoと全テストで一致
tsc-ts: TypeScript written in TypeScript
Vercel Labsが公開した実験的プロジェクトtsc-tsは、TypeScript 7.0.2コンパイラ(tsgo)をTypeScriptで移植し、scriptcでネイティブコードにコンパイルしたもの。スキャナやパーサ、バインダ、型チェッカーまで、約1万7000ユニットのテストコーパスでtsgoと全項目が一致するという。tsc --api互換のサーバーも備える。
packages/tsc-ts/src/compiler は、tsgo 7.0.2から慣用的なTypeScriptとして移植されたコンパイラである。
HNでの議論
48- pizlonator
確認したところ、Go版より速い。これは非常に驚きだし、超感動的だ!
注意点:
- これを「TypeScriptで書かれている」と言うのは正しくないと思う。実際には、scriptcがサポートするTypeScriptのサブスクリプトで書かれている。scriptcは単なるtsのサブセットではなく、最適化を促進するためにtsのセマンティクスから巧妙に逸脱している部分さえある。つまり、この人たちはRC-GCハイブリッドと多数の注意点を備えた、TypeScriptライクなネイティブ言語を本当に作り上げたのだ。単に新しい言語を作るよりもこれが良いかどうかは明らかではない。
- おそらくscriptcと共同開発されたので、scriptcがうまくサポートするイディオムから最大限の恩恵を受けている。そして、この結果を得るためにscriptcに特化した最適化を施したに違いない。
これは、彼らがサポートに投資することを前提に、2倍速いtsコンパイルを必要とするタイプの人なら有用かもしれない。
- nektro
> TypeScript 7.0.2コンパイラ(TypeScript-Go、またはtsgo)の実験的なTypeScriptポートで、scriptcによってネイティブコードにコンパイルされたもの。
すでにtypescriptにあるv6から始めた方が簡単だったのではないだろうか?
- _1tan
v1.4.3で登場したBunの新しいtime typecheckとベンチマークを取った人はいる?自分でやるけど、今マシンから遠く離れているから無理。
- tallowen
JavaScriptとGoやRustでツールを書くことの間のやり取りは、今不安定な均衡にあるように見える:
- Go / Rust:既存のツールをより高性能な言語で書き直すのがかつてないほど簡単になっている
- JavaScript:VercelやCloudflare WorkersのV8ランタイムは、特定のワークロード(例えば会話エージェント)を実行するのに、重いVMを動かすよりはるかに安価な方法だ。これを活用する別の例としてjust bashを参照(https://github.com/vercel-labs/just-bash)
どうなるか興味津々だ!
- drewbitt
何がミームで何がそうでないのか、もう分からない…