Loment
日本語

学習

Loment を学ぶ

見るべき場所は三つあり、その中最も強いのは自分自身を説明するツールチェイン である: 言語全体を出力し、存在するすべての組み込み関数を列挙し、与えられたエラーコードが 何を意味するかを教えてくれる。このページは筋の通った順序を示し、各段に足りないものを その段の隣に置く。

足りないのは教材であって、材料ではない。マニュアルはチュートリアルでは なくリファレンスで、中国語で書かれている; 設計記録もそうだ。以下のリソースが不完全で あるか、あなたがこれから使おうとしている仕方で一度も使われたことがないとき、このページは あなたに自分で見つけさせるのではなく、そう述べる。

何かを読む前に、何かを走らせる

ここでは何も、先に理解されている必要はない。パッケージを 最新リリースから インストールせよ —— Windows ではインストーラではなく zip を取る —— そうすれば、 出発点を書き出してくれるコマンドは、それ自体が Loment のプログラムである:

$ loment new hello        # writes hello.lomt; it will not overwrite one$ loment run hello.lomt   # compile, link, run — the exit code is the program's

コンパイルして実行する経路には、Python も clang も WSL も要らない。それが何を 生み出し、なぜそうするのかははじめににあり、それが 生み出せる二種類の成果物はフロントページにある。

言語を一度に読み通す

言語全体がコメント付きのひとつのファイルとして手に入る。それを 出力するコマンドは、このウェブサイトではなくツールチェインに同梱されている。一度 上から下まで読めば、存在するあらゆる構文を見たことになる —— この言語は、機能を ひとつずつ学ぶためではなく、それに耐えるように作られた。

書かれたガイドもある。それは意図的に自己完結している: インストール済みパッケージの中のコピーは、リポジトリにあるものと同じファイルなので、 ネットワークなしで読め、両者が同一であり続けることがプロジェクトの基準である。

$ loment example tour    # the language as one commented source file$ loment skill --print   # the written guide, printed in full

その最初のコマンドについて、走らせる前に二点。tour のコメントは 中国語であり、現在公開されているリリースではその特定のファイルは リンクしない —— セルフホストリンカの既知の欠陥であり、 サンプルページにある四つのプログラムが、実行できると 検証済みのものである。二番目のコマンドが出力するガイドは英語である。

ターミナルを離れずに調べる

ここが本当に珍しい部分であり、その言語を使うつもりがなくても試す価値がある。 ツールチェインがリファレンスである。これらはすべてインストール済み パッケージから読むので、ネットワークなしで動き、ウェブサイトが最後に言ったことでは なく、あなたが実際に持っているバージョンについて答える。

$ loment cheat            # the whole language on one page$ loment syntax           # the syntax on one page$ loment builtins         # every built-in function there is$ loment keywords         # the reserved words$ loment explain E4       # what a diagnostic means, and what to change

覚えておくべきは最後のものである。エラーコードは単体ではただの数字にすぎない; ツールチェインはそれに付随する文を抱えており、コンパイラが何に異議を唱えていたのか、 どちらへ動けばよいのかを教えてくれる。引数なしの loment help が残りを 列挙し、長い形は wiki にある。

書き物で調べる

マニュアル

コンパイラとサンプルのコーパスから生成され、リポジトリに同梱される: 仕様と、 同梱されたすべてのサンプルモジュールの API リファレンス。中国語で 書かれている。そしてそれはチュートリアルではなくリファレンス である —— 何かが何であるかは教えるが、それをどう使うかは教えない。

Wiki

このサイトと同じ素材を、言語の百科事典として並べたもの: 構文、型、組み込みの表、 回収の段階、エラーコード、そして他の言語と意図的に違う点。英語であり、ひとつの ことについてひとつのページが欲しいときに赴く場所である。

設計記録

この言語のあらゆる決定の背後には番号付きの文書があり、その主張を論じ、それが 何を犠牲にしたかを名指しする。それらは中国語で書かれている。 学習者向けに書かれたものではない —— だが、ここか wiki のページが「設計が そう言っている」と述べるとき、その根拠はここにある。

コードを読んで学ぶ

リポジトリはサンプルプログラムのコーパスを抱えており、ツールチェインはブラウザを 開かずにそのどれでも出力できる:

$ loment examples        # what is bundled$ loment example demo    # print one of them in full

もっとやさしい入り口としては、このサイトの四つの プログラムが短く、それぞれが実際に生み出した出力を示している。コーパス全体は リポジトリの loment/examples/ の下にあり、その中のすべてのファイルが今日リンクするわけではない。

エディタに助けてもらう

VS Code 拡張はマーケットプレイスに hooyan2022.loment として公開されている —— 拡張機能パネルで Loment を検索する。言語サーバーが することは本物である: タイプするそばから検査器が出す診断、補完、定義へ移動、そして フォーマット —— サーバ自身ではなく、別個のフォーマッタを通して。Vim 向けのファイルも あり、サーバは LSP を stdio 上で話すので、クライアントを持つエディタならどれでも接続できる。

拡張はクライアントであって、コンパイラではない。ツールチェインは一切 積んでいない: 言語サーバー、ビルド、デバッガはすべて、開いているフォルダから上位へたどって 見つけた Loment のチェックアウトの中のプログラムを走らせる。これをインストールして、近くに チェックアウトのないファイルを開けば、返ってくるのはハイライトだけでほかには何もない —— エディタ拡張が壊れていると結論する前に、知っておく価値がある。

それに頼る前に知っておく価値のある三つの欠落。ファイルをまたぐ シンボル索引が存在しないので、補完と定義へ移動は現在の文書しか見ない。サーバは フォーマットの機能を宣言していない; フォーマットは別個のプログラムである。そして プロジェクト自身の覚書は、サーバが実際のエディタの中で手で動かされたことが 一度もないと述べている —— そのテストは同じリクエストハンドラを直接呼んでいる。 デバッガにも独自の欠落がある: 条件付きブレークポイントも、式の評価もなく、ローカルは 名前ではなくレジスタである。 wiki のエディタのページ がそれらをすべて列挙している。