Loment
日本語

はじめに

このページは、プログラムを走らせることだけを扱う。言語そのものについては フロントページを見よ。

VS Code 拡張機能をインストール

インストールする

Loment はパッケージとして配布される。自分のプラットフォーム向けのアーカイブを 最新リリースから取れ。

Linux / WSL

linux-x64.tar.gz。展開して sh install.sh を実行する。 要求されるのは POSIX の sh だけだ。

Windows

windows-x64.zip —— 展開して powershell -File install.ps1 を実行する —— あるいはダブルクリックする windows-x64-setup.exe。

loment コマンド、lompi、そして言語サーバーが手に入る。 コンパイルと実行には Python も clang も WSL も要らない。パッケージは ネイティブバイナリと標準ライブラリであり、インストーラは何かを書き込む前に SHA256SUMS を照合する。

言語を使うのではなく変えたいなら、代わりにチェックアウトから作業せよ: git clone https://github.com/Loment-Lang/loment.git。コンパイラは Loment で書かれており、リポジトリにコミットされたシードから再ビルドする —— sh loment/bootstrap.sh がそれをビルドし、シードが自分自身を バイト単位で再現するかを確かめる。

プログラムを書く

これを hello.lomt に書く。

module hello fn _start() {    let s: str = "hello from Loment\n";    syscall4(1, 1, str_ptr(s) as u64, str_len(s) as u64);    syscall4(60, 0, 0, 0);}

_start はマシンが始まる場所である。sealed なプログラム —— 何もリンク しないもの —— には、代わりにエントリポイントを呼んでくれる runtime がその下にないので、 自分でそれを名指しする; そして printf もないので、出力は write システムコールを通る: ファイルディスクリプタ、文字列のポインタ、その長さである。二番目の 呼び出しは exit。choose hosted と書けば、代わりに普通の C プログラムが得られ、エントリポイントは fn main() -> u32 になる。

コンパイルして実行する

$ loment run hello.lomt          # compile, link, run$ loment build hello.lomt -o hello$ loment check hello.lomt        # check only, nothing written$ loment ir hello.lomt           # the LLVM IR it generates

Windows ではターゲットは PE なので、出力を .exe と名付ける —— リンカはその名前から形式を選ぶ。

言語を見て回る

ツールチェインは自分自身を説明する。この四つがその大半を担う。

$ loment example tour   # the whole language in one file$ loment cheat          # the traps, ordered by how easily they bite$ loment builtins       # every built-in function there is$ loment syntax         # syntax summary

loment example tour は言語全体を、コメント付きのひとつのソースファイル として出力する。そのコメントは中国語で、0.1.4 ではその特定のファイルは リンクしない。サンプルにある四つのプログラムが、 実行できると検証済みのものである。

サンプル このサイトの短いプログラムに加えて、リポジトリにある全部。 QUICKSTART.md このページの長い版。すべてのビルド経路と FFI の注意を含む。 README その言語が何のためか、ほかに何が違うか、そして正直に言って何がまだ終わっていないか。