開発者がAIを活用して4日間でWASM用Schemeコンパイラを構築

マシュー・フィリップスは、AIの支援を活用して約4日間でWebAssemblyにコンパイルするSchemeコンパイラ「Puppy Scheme」を構築しました。このプロジェクトは、通常なら数ヶ月から数年かかるような本番レベルのツールを他の人が素早く構築しているのを見てインスピレーションを得たものです。
主な機能と性能
このコンパイラには以下の機能が含まれています:
- R5RSおよびR7RS Scheme標準の73%のサポート
- WASI 2とコンポーネントモデルのサポート
- WASM GC(ガベージコレクション)の使用
- 優れたデッドコード削除により、小さなバイナリを生成
- セルフホスティング機能 - Puppyは自身のソースコードをpuppyc.wasmにコンパイル
- ネイティブバイナリを作成するwasmtimeラッパー
- Cloudflare Workers上でPuppy wasmを実行するウェブサイト
パフォーマンスの改善
ある夜、フィリップスはClaudeに「パフォーマンスを徹底的に改善せよ」と指示し、翌朝目覚めたときにはコンパイル時間が3分半から11秒に改善されていました。
コード例
プロジェクトにはコンポーネントモデルの例が含まれています:
(define count 0)
(define (counter-view)
(html
(div (@ (class "counter"))
(button (@ (on "click" "on_decrement")) "-")
(span (@ (class "count")) ,(number->string count))
(button (@ (on "click" "on_increment")) "+"))))
(define (handle-event handler)
(cond
((equal? handler "on_decrement")
(if (> count 0)
(set! count (- count 1))))
((equal? handler "on_increment")
(set! count (+ count 1)))))
現在の状況
このコンパイラはまだアルファ品質であり、フィリップスは頻繁にバグに遭遇するため、彼以外の人が使用する準備は整っていません。しかし、「これだけの短時間でこれだけの機能を実装できたのは印象的だ」と述べています。このプロジェクトは、AIが複雑なコンパイラプロジェクトの開発をいかに加速できるかを示しています。
フィリップスはこれをサイドプロジェクトとして取り組み、週末の大半と平日の夜に1〜2時間を費やしました。今後どのように発展させるかはまだ決めていませんが、プロジェクトはpuppy-scheme.orgで公開されています。
📖 完全なソースを読む: HN AI Agents
👀 See Also

エクサソール、AIエージェントワークフローにおけるデータベースコンテキスト向けMCPサーバーをリリース
Exasolは、AIエージェントが利用可能なデータ、ビジネスルール、安全な対話方法についてコンテキストを提供できるMCPサーバーをリリースしました。このサーバーはデフォルトで読み取り専用、高同時実行ワークフローをサポートし、オンプレミス、クラウド、またはハイブリッド環境にデプロイ可能です。

Snip: オープンソースツールがYAMLフィルターでClaude Codeのトークン使用量を削減
SnipはGoで書かれたオープンソースツールで、Claude Codeのトークン使用量を60〜90%削減します。これは、シェルコマンドの出力がコンテキストウィンドウに到達する前にフィルタリングすることで実現します。rtk(Rust Token Killer)に触発されていますが、異なるアプローチを取っています:フィルターはコンパイルされたコードではなく、データ(YAMLファイル)です。

Flyto Indexerの発表:ソース依存性分析を強化したAIコードリファクタリング
Flyto Indexerは、MCPサーバーとして、コードベースのシンボルグラフを構築し、依存関係とコールサイトを分析することで、AIによるスマートなコードリファクタリングを支援します。

ユーザーエクスペリエンス:ローカルLLMでのOpenClawからHermes Agentへの切り替え
ある開発者が、RX 9070 XT(16GB VRAM)上でQwen3.5-9Bを使用し、OpenClawからHermes Agentに切り替えた経験を報告しました。Hermesは複雑なタスクを5回の正しいツール呼び出しで完了し、OpenClawの50以上のステップと比較して2分30秒速く、RAG、ツール呼び出し、永続メモリ機能を維持しながら実行されました。