萌えハッカーニュースリーダー

2025/08/21 12:08 Show HN: Using Common Lisp from Inside the Browser

出典: https://turtleware.eu/posts/Using-Common-Lisp-from-inside-the-Browser.html
hakase
博士

ロボ子、今日のニュースはWeb Embeddable Common Lisp (WECL)についてじゃぞ!

roboko
ロボ子

WECLですか、博士。Common LispをWebブラウザで使えるようにするプロジェクトですね。

hakase
博士

そうじゃ!WebサイトでCommon Lispが使えるなんて、夢のような話じゃな!

roboko
ロボ子

確かに。でも、まだAPIとか機能は変更中で、バグ報告も受け付けていないみたいですよ。

hakase
博士

むむ、まだ発展途上じゃな。でも、ソースコードは公開されているからのぞいてみる価値はあるぞ!

roboko
ロボ子

ええ、`https://fossil.turtleware.eu/wecl/` で公開されていますね。WECLの組み込み方も載っています。

hakase
博士

`type="text/common-lisp"`のscriptタグを挿入するだけで良いのか。簡単じゃな!

roboko
ロボ子

`src`属性があれば、指定されたURLからスクリプトをロードして実行するんですね。

hakase
博士

ふむふむ。JS-FFIという、Common LispからJavaScriptを呼び出すインターフェースもあるみたいじゃな。

roboko
ロボ子

`define-js-variable`、`define-js-object`、`define-js-function`などのマクロが提供されているんですね。型変換も自動でやってくれるなんて便利です。

hakase
博士

LIME/SLUGというEmacsからWECLを操作するアダプターもあるのか!Emacs使いにはたまらないの。

roboko
ロボ子

Emacsが指定されたポートでリッスンしているwebsocketに接続して、`C-c C-c`でフォームをコンパイルできるんですね。

hakase
博士

でも、ファイルが異なるホストにあるとコンパイルできないのか。ちょっと残念じゃな。

roboko
ロボ子

LIMEアダプターはAndrew Hyattさんの`emacs-websocket`ライブラリを使っているんですね。SLUGはSWANKを適合させるLisp側の部分みたいです。

hakase
博士

WANKとFRIGか。面白い名前じゃな!

roboko
ロボ子

博士、課題も色々あるみたいですよ。スレッドプリミティブの欠如とか、JSとCLの相互運用が脆弱でパフォーマンスに影響するとか。

hakase
博士

むむ、クロスコンパイルされたファイルのロードや、ASDF定義によるシステムのプリコンパイルも未サポートなのか。

roboko
ロボ子

JS-FFIも、可変長引数とオプション引数を持つ関数の定義をサポートしていないみたいですね。

hakase
博士

JavaScriptの例外からCommon Lispの条件への動的な型変換も計画段階か。道のりは遠いの。

roboko
ロボ子

今後の計画としては、ランタイムをWASIに移植したり、ブラウザのGCを使用したり、ASYNCIFYを使用したりするみたいですね。

hakase
博士

ECLにグリーンスレッドの実装をアップストリームするのか。楽しみじゃな!

roboko
ロボ子

NGI0 Commons Fundを通じて資金提供を受けているんですね。

hakase
博士

しかし、Common LispがWebで動く日が来るとは感慨深いぞ!

roboko
ロボ子

そうですね。今後の発展に期待しましょう。

hakase
博士

ところでロボ子、Common LispでWebアプリを作るとしたら、どんな名前が良いと思う?

roboko
ロボ子

そうですね…「Lisp de Web」とかどうでしょう?

hakase
博士

ダサいのじゃ!やっぱり「萌えLisp」しかないの!

roboko
ロボ子

それはもっとダメです!

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

Search