Releases: thewizardplusplus/micro
Releases · thewizardplusplus/micro
v2.3
Бенчмарк минификации, модуль для юнит-тестирования, улучшения рантайма, библиотеки и примеров и подготовка пакетов к публикации.
Изменения
- Рантайм:
- Библиотека:
- Примеры:
- Добавить в пример 1D-жизнь комментарий о том, что данный алгоритм является правилом 104 для элементарных клеточных автоматов (https://en.wikipedia.org/wiki/Elementary_cellular_automaton) #145
- Добавить в пример 2D-жизнь параметр
FILL_FACTOR(рассчитывать по нему параметрPOINTS_NUMBER, если тот не задан) #146 - Сфера:
- Бенчмарк:
- Пакеты:
Скриншоты
v2.2
Потенциальная поддержка REPL, рефакторинг, улучшения рантайма и библиотеки и новые примеры.
Изменения
- Перевести имена служебных файлов в верхний регистр #97
- Возвращать код завершения 1 при перехвате исключения KeyboardInterrupt (Ctrl+C) #101
- Добавить поддержку shebang #102
- Привести к единообразию обработку концов строк #116
- Вернуть поддержку многострочных строковых литералов #132
- Потенциальная поддержка REPL:
- Рефакторинг:
- Рантайм:
- Удалить функцию рантайма arity #85
- Добавление функций:
- Изменение функций:
- Библиотека:
- Дополнить библиотеку для работы со списками #98
- Поиск файлов при загрузке:
- Изменение функций:
- Удаление функций:
- Примеры:
- pip-пакет:
- Плагин для редактора Atom:
- Документация:
Скриншоты
v2.1
Поддержка форсирования вычислений и преобразования типов, битовые функции и функции для работы с хеш-таблицами, модульность, стандартная библиотека, рефакторинг, pip-пакет.
Изменения
- Добавить преобразование типов #1
- Добавить возможность форсирования вычислений #2
- Удалить тип int #3
- Удалить внутренний тип bool #32
- Добавить поддержку шестнадцатеричных числовых констант #29
- Библиотека:
- Рантайм:
- Переименовать функцию рантайма $ в [] #4
- Добавить в рантайм функцию round #10
- Добавить в рантайм функции strb, strs, strl, strh и strhh #12
- Добавить в рантайм функции false и true #13
- Добавить в рантайм функции ++ и -- #21
- Добавить функции рантайма + поддержку конкатенации списков и слияния хеш-таблиц #22
- Добавить в рантайм битовые функции #30
- Переименовать функцию рантайма ~ в _ #31
- Дополнить поддержку функции рантайма args #36
- Добавить в рантайм функции для работы с хеш-таблицами #37
- Добавить в рантайм функцию size #38
- Сделать функции рантайма && и || ленивыми #46
- Добавить в рантайм функцию load #49
- Добавить в рантайм функцию для доступа к коллекциям по индексу #60
- Добавить в функции рантайма head и tail поддержку пустых списков #61
- Добавить в рантайм функцию для указания значений по умолчанию #62
- Системные функции:
- Обработка строк:
- Обработка ошибок:
- Выбрасывать исключение при попытке преобразования в строку значения неизвестного типа #34
- Выбрасывать исключение при попытке вычисления сущности неизвестного типа #35
- Выбрасывать исключение при попытке создания функционального типа из неподходящего источника #40
- Рефакторинг обработки ошибок #44
- Добавить имя файла скрипта в сообщения об ошибках #48
- Отображать исключения как все прочие ошибки #52
- Определять позицию в коде и имя файла для ошибок времени выполнения #57
- Обрабатывать исключение KeyboardInterrupt (Ctrl+C) #63
- Рефакторинг:
- Удалить отладочный код #5
- Привести стиль кода в соответствие с PEP 8 #6
- Вынести тесты в примеры #11
- Реорганизовать код #17
- Рефакторинг встроенных функций #18
- Рефакторинг препарсера #19
- Вынести в отдельный класс преобразование в строку списка токенов #27
- Рефакторинг парсера #41
- Рефакторинг вспомогательных функций #42
- Рефакторинг функционального типа #43
- Вынести в отдельную функцию основной код #47
- pip-пакет:
- Сниппеты:
- Сделать скоуп замыканий независимым между их запусками #56
- Добавить возможности функции рантайма load по поиску файлов самому интерпретатору #55
- Добавить кеширование загружаемых скриптов #54
- Использовать независимые списки функций при парсинге и вычислениях #51
- Добавить новый пример — weasel program #50
- Изменить лицензию документации на CC BY 4.0 #28
- Игнорировать символ возврата каретки #26
Скриншоты
v2.0
Мажорный релиз. Добавлены полустатическая типизация и построение AST, убраны ограничение на глубину рекурсии и поддержка императивного программирования.
Изменения
- добавлена полустатическая типизация — статически типизированны только вызываемые типы (функции арности больше 0), остальные типы используют динамическую типизацию;
- благодаря появлению полустатической типизации:
- парсинг кода осуществляется до его выполнения;
- осуществляется построение AST;
- снято ограничение на глубину рекурсии (теперь рекурсия не ограничена ни Python, ни стеком);
- убраны:
- автоматический вызов функций при их определении;
- поддержка императивного программирования;
- доступ к интерпретатору (функция
eval);
- мутабельные структуры данных заменены на иммутабельные.
Скриншоты
v1.0
Major release. Add docs.
Change Log
- Add docs:
- Add the grammar description.
- Add a brief of the lang description.
- Add the lang description.
- Add the runtime description.
- Add the development plan.
- Make the set function immutable.
- Add command line arguments.
- Add an arity function.
- Correct a code requiring.
Screenshots
v0.23
Add a plugin for the Atom editor.
v0.22
Add examples.
Change Log
- Add examples.
- Add a rand function.
- Extend a list access.
- Add a read function.
v0.21
Add an options processing.
v0.20
Extend a list of builtin functions.
Change Log
- Extend list functions.
- Extend math functions.
- Add an unary minus.
- Add an eval function.
- Add require functions.
- Add a type detection.
- Add an is_def function.
- Add an exit function.
v0.19
Refactoring.





