gerbil
gambitに備わっているアクターベースの非同期処理やFFIなどをサポートしている。
また、標準でJSONやHTTP ClientなどWeb開発に使われるライブラリを標準でサポートしている。
名前の由来はスナネズミから。発音は「ジャービル」だと思われる。 gerbilは元々vyzo氏のプライベートなScheme実装で、様々な実装で使用されたマクロの集合からアクター指向の分散プログラミング向けの本格的な言語になったという背景がある。
ここではそれぞれの項目の簡単な解説に留める。
詳しい情報が欲しい場合は以下に列挙した別ページを読んでほしい。
環境構築
Homebrew
code:sh
brew install mighty-gerbils/gerbil/gerbil-scheme
Arch:
code:sh
paru -S gerbil-scheme
Nix:
code:sh
nix-shell -p gerbil
構文
R7RSに準拠しているため、それに則ったプログラムならそのまま動かせる。 Schemeの構文に関してはこちらのサイトが分かりやすくよく整理されている。 モジュール
Clojure likeな名前空間を持っている。
code:lisp
;; lib.ss
(export add)
(def add (a b)
(+ a b))
code:lisp
;; main.ss
import (./lib.ss)
(export main)
(def main
(displayln (add 1 1)))
Web開発
公式サイトにWebサーバーを構築するチュートリアルがある。 gerbilはgambitが提供している組み込みHTTP Server(HTTP/1.1)を使用できる。
パフォーマンスに疑問を持ったので雑にベンチを取ってみた。