1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DEPARTUREAdvent Calendar 2022

Day 8

google/runeを動くところまでやってみる

Posted at

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に似ているので今後の動向に注目していきたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?