google/runeとは?
The Rune Programming Language
https://github.com/google/rune
google非公式の新しいプログラミング言語です。
githubから引用
より速く、より安全で、生産性の高いシステム プログラミング言語 これは公式にサポートされている Google 製品ではありません。 注: ルーンは未完成の言語です。 Rune の優れた新しいセキュリティ機能と効率性機能を気軽に試して評価してください。 Rune は、C および C ライブラリとうまくやり取りできるように設計された、Python にインスパイアされた効率的なシステム プログラミング言語です。 Rune には、メモリの安全性やシークレットの一定時間の処理など、多くのセキュリティ機能があります。 Rune は、Structure-of-Array (SoA) メモリ管理により、ほとんどのメモリ集約型アプリケーションで C よりも高速であることを目指しています。
同じような名前でrune-rsというrust用のライブラリがありましたが、そちらとは別物です。
動くところまでやってみます。ほとんど作業ログです。
準備
ホスト側
git cloneで必要なリポジトリを落としておきます。
$ git clone https://github.com/waywardgeek/datadraw.git
$ git clone https://github.com/google/rune.git
$ git clone https://github.com/pornin/CTTK.git
Dockerfileを作成してその中にgoogle/runeをインストールしていきます。
FROM ubuntu:22.10
WORKDIR /opt
COPY . .
$ docker build -t rune .
$ docker run -it rune /bin/bash
コンテナ側
以降はdocker内で実行しているコマンドです。
$ apt update
$ apt install bison flex libgmp-dev clang clang-14 gdb automake build-essential
runeをコンパイルするのに必要なものを入れていきます。
READMEに書いてあるとおりに進めます。
$ cd datadraw
$ ./autogen.sh
$ ./configure
$ make
$ make install
$ cd ..
$ cp CTTK/inc/cttk.h CTTK
$ cd rune
$ make
$ ./runtests.sh
$ make install
ここまで特に問題なくセットアップできていれば、
$ which rune
/usr/local/bin/rune
といった感じでruneコマンドが利用できるようになっているはず。
試す
$ mkdir -p /opt/app
$ cd /opt/app
$ echo 'println "Hello, World!"' > hello.rn
$ rune -g hello.rn
$ ./hello
Hello, World!
デバッグでgdbを利用できるようです。
# debug
$ gdb ./hello
...
(gdb)
所感
python感が感じられるほどまだ触っているわけではないので、もっと触っていけばわかるのだろうか?という感触です。(インスパイアされているだけでpythonとはまた別なんだろう)
自分のIDに似ているので今後の動向に注目していきたいです。