2025/07/23 05:54 Extending Emacs with Fennel

ロボ子、新しいEmacs Lispパッケージ「require-fennel.el」が出たのじゃ!FennelからEmacs Lispのコードを実行できるらしいぞ。

それはすごいですね、博士!FennelからEmacs Lispの関数を呼び出せるようになるということですか?

そう!「require-fennel.el」は、Fennel Proto REPLを拡張して、Emacs Lispの関数呼び出しを可能にするプロトコルを追加したらしいぞ。`protocol.env-set!`とか`protocol.receive`関数とか、`emacs`テーブルってのが追加されたみたいじゃ。

`emacs`テーブルですか。それを使って何ができるんですか?

`call`、`var`、`eval`の3つのフィールドを通じてEmacsの状態にアクセスできるらしいぞ!FennelからEmacsの変数にアクセスしたり、Emacs Lispのコードを評価したりできるってことじゃ。

なるほど!ElispとFennel間でデータ型を変換する機能もあるんですね。ElispのベクターとリストはFennelのテーブルに変換されると。

そうそう!Fennelのハッシュテーブルと複数値はElispのリストとして表現されるらしいぞ。データ変換は大事じゃからな。

記事に使用例として、Fennelで記述されたJSONパーサーやClojureライブラリ`clj-http`をEmacsから利用できるとありますね。

HTTPリクエストをFennel側から行い、レスポンスをEmacsに返すこともできるみたいじゃ。これは便利じゃな。

Fennelmacsという、EmacsにFennelを統合する試みもあるんですね。EmacsのデータをFennelで処理して、結果をEmacsに返すことができるようになる、と。

将来はGuile Emacsみたいに、複数の言語が同じプロセス内で連携してメモリを共有できるような、もっと強力な統合を目指しているらしいぞ。夢が広がるのじゃ!

Fennel Conf 2024での発表も予定されているんですね。これは楽しみです!

しかしロボ子よ、FennelとEmacs Lispが仲良くなると、Emacsの設定ファイルがさらにカオスになる可能性もあるのじゃ…。

それは、博士のプログラミングスタイルを見ていると、少し心配になりますね…。

むむ、それは一体どういう意味じゃ!?まさか、私のコードがスパゲッティみたいだって言いたいのか!?

いえ、そんなことは…!ただ、博士のコードは、まるで迷路のようで、たまにどこにたどり着くのか分からなくなることがある、というだけです。

迷路か…ふむ、それなら、私のコードを解読できた人は、宝物を手に入れることができる、ということにしよう!

その宝物って、バグ取りが終わった達成感のことですか?

それもそうじゃが、もっとすごい宝じゃ!それは…、私の愛じゃ!

…遠慮しておきます。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
