Releases: rsashka/newlang
Releases · rsashka/newlang
v0.4.0
New features and changes in the syntax of NewLang
- Reworked the definition of object types using prefix naming (sigils)
- Interrupting the execution flow and returning can now be done for named code blocks.
- Simplified the syntax for importing native variables and functions (C/C++)
- Stabilized the syntax for initializing tensor, dictionary, and function argument values with initial data.
- Added built-in macros for writing code using keywords in a DSL style
New compiler features (nlc)
- Completely redesigned the macroprocessor.
- Reworked the compiler architecture with division into parser, macroprocessor, syntax analyzer, interpreter, and code generator.
Miscellaneous
- The documentation website has been translated to Hugo and made bilingual.
- Instead of binary builds, a section Playground and example code has been added to the website for small experiments.
- Transition to clang-16 has been completed (transition to clang-17 and newer is planned after full implementation of coroutines and support for extended floating-point number formats).
- The number of project contributors has increased to more than one!
Новые возможности и изменения в синтаксисе NewLang
- Переработано определение типов объектов с помощью префикса имен (сигила)
- Прерывание потока выполнения и возврат теперь может выполняться для именованных блоков кода.
- Упрощен синтаксис импорта нативных переменных и функций (С/С++)
- Стабилизирован синтаксис для заполнение начальными данными значений тензоров, словарей и аргументов при вызове функций.
- Появились встроенные макросы для написания кода с использованием ключевых слов в стиле DSL
Новые возможности компилятора (nlc)
- Полностью переделан макропроцессор.
- Переработана архитектура компилятора с разделением на парсер, макропроцессор, синтаксический анализатор, интерпретатор и генератор кода.
Разное
- Сайт с документацией переведен на Hugo и сделан двуязычным.
- Вместо бинарных сборок на сайт добавлен раздел Playground and example code для небольших экспериментов.
- Выполнен переход на clang-16 (переход на clang-17 и старше планируется после полной реализации корутин и поддержки расширенных форматов чисел с плавающей запятой).
- Количество контрибуторов проекта стало больше одного!
Version 0.3
Новые возможности и изменения в синтаксисе NewLang
- Простые чистые функции удалены.
- Зафиксирован синтаксис операторов проверки условия и циклов.
- Оператор цикла while теперь поддерживает конструкцию else.
- В синтаксис NewLang добавлены пространства имен.
- Реализована часть концепции ООП и добавлена поддержка определения классов.
- Переработана идеология возвратов из функции и обработки исключений.
Разное
- Выполнен переход на clang 15
- Вызов нативных функций вновь сделан с помощью libffi
- Реализована полноценная поддержка Windows
Version 0.2
- Добавлены макросы (появилась возможность использовать более привычный синтаксис на основе ключевых слов)
- Реализованы итераторы
- Добавлен новый тип данных - рациональные числа не ограниченной точности
- Многострочные комментарии стали вложенными
- Имена встроенных типов переименованы с указанием размерности
- Переход с gcc на clang, а libffi заменена на JIT компиляцию вызова нативных функций
- В релиз добавленые бинарные сборки для Linux
Version 0.1.0
First release with complete syntax