Обучение
Изучение 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 без аргумента перечисляет остальное, а
вики содержит длинную форму.
Ищите справку в текстах
Руководство
Генерируется из компилятора и корпуса примеров и поставляется в репозитории: спецификации и справочник по API для каждого входящего в поставку примера-модуля. Написан на китайском, и это справочник, а не руководство, — он говорит, что вещь есть, а не что с ней делать.
Вики
Тот же материал, что и на этом сайте, устроенный как энциклопедия языка: синтаксис, типы, таблица встроенных, ступени возврата памяти, коды ошибок и то, что намеренно отличается от других языков. На английском, и это то место, куда идти, когда нужна одна страница об одной вещи.
Записи о проектировании
За каждым решением в этом языке стоит пронумерованный документ, который приводит доводы и называет, чего это стоило. Они написаны на китайском, и они не для обучающихся, — но когда страница здесь или в вики говорит «так велит проектирование», вот где это.
Учитесь, читая код
В репозитории лежит корпус примеров программ, и инструментальная цепочка может напечатать любой из них, не открывая браузера:
$ 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, которую находят, поднимаясь вверх от открытой у вас папки. Установите его и откройте файл, когда локальной копии рядом нет, — и вы получите подсветку синтаксиса и больше ничего: это стоит знать, прежде чем заключить, что расширение сломано.
Три пробела, о которых стоит знать, прежде чем полагаться на него. Нет межфайлового индекса символов, так что автодополнение и переход к определению видят только текущий документ. Сервер не объявляет возможность форматирования; форматирование — отдельная программа. И собственные заметки проекта говорят, что сервер никогда не запускался в настоящем редакторе вручную: его тесты вызывают тот же обработчик запросов напрямую. У отладчика свои пробелы: нет условных точек останова, нет вычисления выражений, а локальные переменные — это регистры, а не имена. Страница о редакторе в вики перечисляет их полностью.