🪃
Uiua 言語で Hello, World
Uiua とは
Uiua (wee-wuh) はスタックベースの配列プログラミング言語で、simplicity, beauty, そして tacit code にフォーカスしています。
参考: Tacit Programming https://en.wikipedia.org/wiki/Tacit_programming
環境
MacOS で試してます。
事前準備
Git と Rust が必要。両方 Homebrew などで入れておいてください。
インストール
公式ドキュメントを参考に。 https://www.uiua.org/install
git clone https://github.com/uiua-lang/uiua
cd uiua
cargo install --path . --features audio
clap という crate のバージョンが解決できないというエラー?
$ cargo install --path . --features audio
Installing uiua v0.1.0 (/Users/me/xxxx/uiua)
Updating crates.io index
error: failed to compile `uiua v0.1.0 (/Users/me/xxxx/uiua)`, intermediate artifacts can be found at `/Users/me/xxxx/uiua/target`
Caused by:
failed to select a version for the requirement `clap = "^4"`
candidate versions found which didn't match: 3.2.25, 3.2.24, 3.2.23, ...
location searched: crates.io index
required by package `uiua v0.1.0 (/Users/me/xxxx/uiua)`
ググると rust のバージョンを上げろというのが出てくる。
現在のバージョンは:$ rustup show
Default host: aarch64-apple-darwin
rustup home: /Users/me/.rustup
installed targets for active toolchain
--------------------------------------
aarch64-apple-darwin
x86_64-unknown-linux-gnu
x86_64-unknown-linux-musl
active toolchain
----------------
stable-aarch64-apple-darwin (default)
rustc 1.56.1 (59eed8a2a 2021-11-01)
アップデート
rustup update
無事に 1.72.1 に上がった
$ rustup show
Default host: aarch64-apple-darwin
rustup home: /Users/me/.rustup
installed targets for active toolchain
--------------------------------------
aarch64-apple-darwin
x86_64-unknown-linux-gnu
x86_64-unknown-linux-musl
active toolchain
----------------
stable-aarch64-apple-darwin (default)
rustc 1.72.1 (d5c2e9c34 2023-09-13)
改めてインストール..
$ cargo install --path . --features audio
Installing uiua v0.1.0 (/Users/me/xxxx/uiua)
Updating crates.io index
Downloaded backtrace v0.3.69
Downloaded color_quant v1.1.0
Downloaded hashbrown v0.14.0
・・・
Compiling ecow v0.1.2
Compiling tower-lsp v0.19.0
Compiling uiua v0.1.0 (/Users/me/xxxx/uiua)
Finished release [optimized] target(s) in 1m 59s
Installing /Users/me/.cargo/bin/uiua
Installed package `uiua v0.1.0 (/Users/me/xxxx/uiua)` (executable `uiua`)
通った!
実行
uiua
コマンドを実行してみるとヘルプが表示される。
$ uiua
Usage: uiua <COMMAND>
Commands:
init Initialize a new main.ua file
run Format and run a file
test Format and test a file
watch Run a main.ua in watch mode
fmt Format a uiua file or all files in the current directory
lsp Run the Language Server
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
No .ua file found nearby. Initialize one in the current directory with `uiua init`
uiua の ハローワールド!
$ cd ../
$ mkdir hello-uiua && cd hello-uiua
$ uiua init
$ cat main.ua
"Hello, World!"
$ uiua run
"Hello, World!"
uiua コマンドを引数なしで実行した場合カレントディレクトリに .ua ファイルがあるとそれを watch 変更されると自動的に実行してくれるらしい。
けど、エラーになった。。
$ uiua
The application panicked (crashed).
Message: called `Result::unwrap()` on an `Err` value: Error { kind: PathNotFound, paths: [""] }
Location: src/main.rs:182
Backtrace omitted.
Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
続き
Discussion