うっかり世界最強のWasmコンパイラを作ってしまった件 - Qiita

はじめに ブラウザで高速なバイナリ処理や計算ロジックを動かしたいとき、WebAssembly(Wasm)の導入を検討したことのあるWebエンジニアは多いはずです。しかし、いざ手を出そうとすると、常に過剰なトレードオフに突き当たります。 C/...
🔒 26
💬 21
gfxほうほう。あとで Wado と比べてみよう(Wado も世界最小のwasmをうたう処理系)。
2026/09/11 08:37★★★
deb世界最強の世界最小のwasm-goトランスパイラ!!WASMの呼出規約とかABI、ランタイム問題はともかく
2026/09/11 09:41
amd64x64やっぱり専用言語があった方がいいよね。どうしてもランタイムライブラリとセットになるわけだし。
2026/09/11 10:07★★
nguyen-oiGo風構文で2.5KBのWasm吐いてJS連携コード自動生成とか夢の技術すぎるだろ
2026/09/11 10:17
yarumato“ブラウザで高速なバイナリ処理や計算ロジックのためにWasm。C/C++: POSIX互換や仮想FSまで引き連れてくる。Rust:学習曲線、ビルドパイプライン。Go: 最小構成でも2〜3MB。自作のGoライクなプログラミング言語を開発”
2026/09/11 10:18★★
napsucksしゅごい
2026/09/11 10:43
kaorunLibcみたいな汎用ライブラリを自前で持って最小限に縮めるのは合理的だけど、その分のバッファオーバーランみたいな脆弱性対策も自前にならざるを得ないので潜在的な手間と責任は増えそうな気も…
2026/09/11 11:11★★★★★
shoh8“2.56 KB”え、すげえじゃん(キュン)
2026/09/11 11:22
ika2434凄すぎる試したい
2026/09/11 12:00
soulfulmiddleagedman遊んでみたい
2026/09/11 12:27
udzuraはてブコメント見て、逆にそもそも実行領域とのメモリ分離がされているwasmにとってはlibcが重厚すぎなのかもな、と思った
2026/09/11 12:35★★★★★★★
strawberryhunter最近、自分もプログラミング言語を作ってみたけど、うっかり作れるものでは全然なかった。うっかりとか、ちょっと(かなり)盛ったと言ってほしい。
2026/09/11 13:57
toaruRもー、変態なんだから
2026/09/11 14:11
dentaroうっかりね
2026/09/11 14:54
atsushienoQiitaアカウントを見た感じ、自作コンパイラの解説記事を書いたが願望に反して全然広まらなかったので「世界最強」みたいな誇大広告を混ぜて宣伝することにした、という流れ(誇大広告撲滅委員会)
2026/09/11 15:09
igrep"外部宣言(declare)された標準関数はLLVMにとってブラックボックスですが、IR内部関数として定義することで、Clangの最適化パス(-O2)によって自動でインライン展開やSIMDベクトル化が行われます"
2026/09/11 15:44
t_f_m"多くのWasmコンパイラが肥大化する最大の要因は、言語ランタイムが暗黙のうちに要求するC標準ライブラリ(printf、memcpy、strlen、strcmp など)にあります"
2026/09/11 15:52
chi-bdWasmはもっと手軽にCPU BoundなJSメソッドの置き換え目的に使えるようにならないかなぁ。自分にとっては進化の方向性が右斜め上に感じることしばしば
2026/09/11 15:58
irohairoha168最小バイナリサイズのwasmを作りたいならEmscripten(clang)が現状最強の認識。あと、memcpyを例に出すのは不適切でmemory.copyを使えばwasm上は1命令で済む
2026/09/11 16:22
circledfree: (ptr) => {}, // 解放しない, this.heapPtr += (s + 7) & ~7; // 単調増加 → DoSだな。あと「フォームのバリデーション」や「軽いパーサー」程度なら、そもそも素のJSで書いた方が依存も生成物も少ないという事実が
2026/09/11 16:22