Skip to content

Latest commit

 

History

History
337 lines (279 loc) · 27.7 KB

File metadata and controls

337 lines (279 loc) · 27.7 KB

Change Log

v2.3 (2018-03-29)

  • Рантайм:
    • Переименовать функцию рантайма ? в ?? #142
    • Исправить результат функции рантайма args при чтении кода скрипта с stdin (первым аргументом возвращать строку __stdin__) #143
  • Библиотека:
    • Переименовать функцию библиотеки generate_while в generate_if #144
    • Восстановить в библиотеке модуль для юнит-тестирования #153
  • Примеры:
    • Добавить в пример 1D-жизнь комментарий о том, что данный алгоритм является правилом 104 для элементарных клеточных автоматов (https://en.wikipedia.org/wiki/Elementary_cellular_automaton) #145
    • Добавить в пример 2D-жизнь параметр FILL_FACTOR (рассчитывать по нему параметр POINTS_NUMBER, если тот не задан) #146
    • Сфера:
      • Переименовать переменную eye_direction в normal #148
      • Выделить функцию clamp #149
  • Бенчмарк:
    • Добавить бенчмарк минификации — Virtual DOM:
    • Добавить утилиту для проведения бенчмарка #155
    • Добавить общее описание бенчмарка #156
  • Пакеты:
    • Подготовить проект к публикации в репозиторий пакетов Python #141
    • Подготовить плагин для редактора Atom к публикации в репозиторий пакетов Atom #152

v2.2 (2018-01-11)

  • Перевести имена служебных файлов в верхний регистр #97
  • Возвращать код завершения 1 при перехвате исключения KeyboardInterrupt (Ctrl+C) #101
  • Добавить поддержку shebang #102
  • Привести к единообразию обработку концов строк #116
  • Вернуть поддержку многострочных строковых литералов #132
  • Потенциальная поддержка REPL:
    • Скорректировать обработку исключений во время вычислений #78
    • Поддерживать повторные вычисления с тем же списком функций #79
    • Добавить заглушки для генерируемых функций рантайма #109
    • Хранить ошибки индивидуально в каждом экземпляре парсера #110
  • Рефакторинг:
    • Выделить отдельную функцию для парсинга кода из строки #108
    • Выделить отдельную функцию для выполнения кода из строки #118
    • Выделить логику выбора конкретного файла для загрузки в отдельный подпакет #126
    • Выделить логику кеширования загружаемых файлов в отдельный класс #127
  • Рантайм:
    • Удалить функцию рантайма arity #85
    • Добавление функций:
      • Добавить в рантайм функцию bool #70
      • Добавить в рантайм поддержку NaN и infinity #92
      • Добавить в рантайм константы pi и e #93
      • Добавить в рантайм функцию sleep #106
      • Добавить в рантайм функцию seed #112
      • Добавить в рантайм функцию is_main #129
    • Изменение функций:
      • Добавить функции рантайма env поддержку конфигов .env #72
      • Поменять порядок аргументов в функции рантайма angle #134
      • Функция load:
        • Поддерживать задание внешней реализации функции рантайма load #103
        • Обернуть функцию рантайма load в closure_trampoline #130
  • Библиотека:
    • Дополнить библиотеку для работы со списками #98
    • Поиск файлов при загрузке:
      • Включить библиотеку в pip-пакет #73
      • Добавить место установки pip-пакета как путь для поиска скриптов после переменной MICRO_LIBRARY #74
      • Поддерживать указание нескольких путей в переменной MICRO_LIBRARY #77
    • Изменение функций:
      • Упростить функцию библиотеки ansi #89
      • Доработать функцию библиотеки generate #111
      • Поменять порядок аргументов в функции библиотеки reduce #135
    • Удаление функций:
      • Удалить функцию библиотеки count #105
      • Удалить из библиотеки модуль для юнит-тестирования #107
  • Примеры:
    • Удалить из примеров тесты #83
    • Улучшить стиль кода в примерах #133
    • Выделить общий код из примеров #138
    • Добавление примеров:
      • Добавить новый пример - перцептрон #120
      • Добавить новый пример - множество Мандельброта #121
      • Добавить новый пример - сфера #124
      • Добавить новый пример - 2D-жизнь #125
    • Пример 1D-жизнь:
      • Убрать закольцовывание из примера 1D-жизнь #131
      • Разделить пример 1D-жизни на модули #137
      • Вынести магические константы из примера 1D-жизнь в его параметры #139
  • pip-пакет:
    • Указать в setup.py требуемую версию Python #75
    • Рефакторинг парсинга версии pip-пакета #100
    • Убрать явную установку группы для файла parsetab.py #119
  • Плагин для редактора Atom:
    • Удалить поддержку сниппетов из плагина для редактора Atom #80
    • Упростить обработку отступов в плагине для редактора Atom #81
    • Добавить описание установки в плагин для редактора Atom #82
    • Улучшить стиль кода в плагине для редактора Atom #86
  • Документация:
    • Упростить регулярные выражения для пунктуационных идентификаторов в документации #87
    • Изменить в документации описание типизации со слабой на сильную #99
    • Исправить описание некоторых функций рантайма в документации #117
    • Общее описание:
      • Дополнить описание модульности в документации #123
      • Дополнить описание требований к файлам исходного кода в документации #136
    • Библиотека:
      • Указать наименование (путь) модулей в документации на библиотеку #104
      • Поменять порядок функций в документации на библиотеку #122
    • Оформление:
      • Добавить логотип языка #90
      • Добавить оглавление к документации #96
      • Исправить знак копирайта #140

v2.1 (2017-04-30)

  • Добавить преобразование типов #1
  • Добавить возможность форсирования вычислений #2
  • Удалить тип int #3
  • Удалить внутренний тип bool #32
  • Добавить поддержку шестнадцатеричных числовых констант #29
  • Библиотека:
    • Добавить библиотеку для юнит-тестирования #53
    • Добавить библиотеку для работы со списками #58
    • Добавить библиотеку для работы с CLI #59
    • Добавить в библиотеку функцию для создания универсального цикла #68
  • Рантайм:
    • Переименовать функцию рантайма $ в [] #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
    • Системные функции:
      • Добавить в рантайм функции outln и errln #9
      • Добавить в рантайм функцию env #14
      • Добавить в рантайм функцию time #15
      • Поддерживать чтение строки в функции рантайма in #16
      • Добавить в рантайм функцию inln #39
      • Добавить поддержку вывода сообщения в функцию рантайма exit #45
  • Обработка строк:
    • Упростить регулярные выражения символов и строк #23
    • Упростить функции quote и unquote #24
    • Добавить поддержку шестнадцатеричных escape-последовательностей #25
    • Удалять конечные нули из дробной части при преобразовании числа в строку #33
  • Обработка ошибок:
    • Выбрасывать исключение при попытке преобразования в строку значения неизвестного типа #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-пакет:
    • Оформить pip-пакет #7
    • Подключить библиотеку PLY как зависимость pip-пакета #8
  • Сниппеты:
    • Добавить в сниппеты пробелы в шаблонах с функциями #64
    • Добавить в сниппеты поддержку классов #65
    • Добавить в сниппеты заготовку для обхода списка #66
    • Добавить в сниппеты пробелы или переносы строк перед последним положением курсора #67
  • Сделать скоуп замыканий независимым между их запусками #56
  • Добавить возможности функции рантайма load по поиску файлов самому интерпретатору #55
  • Добавить кеширование загружаемых скриптов #54
  • Использовать независимые списки функций при парсинге и вычислениях #51
  • Добавить новый пример — weasel program #50
  • Изменить лицензию документации на CC BY 4.0 #28
  • Игнорировать символ возврата каретки #26

v2.0 (2016-12-06)

  • добавлена полустатическая типизация — статически типизированны только вызываемые типы (функции арности больше 0), остальные типы используют динамическую типизацию;
  • благодаря появлению полустатической типизации:
    • парсинг кода осуществляется до его выполнения;
    • осуществляется построение AST;
  • снято ограничение на глубину рекурсии (теперь рекурсия не ограничена ни Python, ни стеком);
  • убраны:
    • автоматический вызов функций при их определении;
    • поддержка императивного программирования;
    • доступ к интерпретатору (функция eval);
  • мутабельные структуры данных заменены на иммутабельные.

v1.0 (2016-02-15)

  • 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.

v0.23 (2016-02-13)

Add a plugin for the Atom editor.

v0.22 (2016-02-13)

  • Add examples.
  • Add a rand function.
  • Extend a list access.
  • Add a read function.

v0.21 (2016-02-12)

Add an options processing.

v0.20 (2016-02-12)

  • 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 (2016-02-12)

Refactoring.

v0.18 (2016-02-07)

  • Add a nil type.
  • Add a support of an assignment to a parent scope.
  • Add a while operator.
  • Correct a result value for an empty token list.

v0.17 (2016-02-06)

Add a conditional operator.

v0.16 (2016-02-06)

  • Add print functions.
  • Add conversions.
  • Add a creation of numbers as character tokens.
  • Correct a string processing:
    • correct a parsing;
    • check that a string token is valid;
    • unescape string tokens.
  • Correct the lexer: add punctuation restrictions.

v0.15 (2016-02-06)

  • Add a support of float numbers.
  • Add few new operations with numbers.
  • Strengthen restrictions on operations with numbers.

v0.14 (2016-02-04)

Add a support of a boolean type.

v0.13 (2016-02-04)

Add a supports of lists and strings and replace the preprocession to the specially builtin function.

v0.12 (2016-02-03)

  • Add an evaluation of an expression list into user functions.
  • Allow a redeclaration of functions.
  • Add a local function map.
  • Add the preprocessor.

v0.11 (2016-02-03)

  • Read a code from stdin.
  • Add the lexer.
  • Add a support of comments.

v0.10 (2016-02-02)

  • Add an interpretation of an end of a token list as a creation of a closure.
  • Add a support of closures for builtin functions.
  • Remove a memorizing of anonymous functions.
  • Add a printing of a function body.

v0.9 (2016-02-01)

Add an evaluation of an expression list.

v0.8 (2016-01-31)

Add an using of outer arguments into user functions.

v0.7 (2016-01-31)

Add an applying of closures as result values.

v0.6 (2016-01-31)

Add an applying of closures as function arguments.

v0.5 (2016-01-31)

Add a creation of closures (with a parameters binding).

v0.4 (2016-01-31)

Add an using of arguments into user functions.

v0.3 (2016-01-31)

Add an evaluation of user functions.

v0.2 (2016-01-23)

Add a parsing of user functions.

v0.1 (2016-01-20)

Add a basic evaluation: functions — only built-in (supports: +, -, *, /), values — only natural numbers.

Lexer not implemented — requires to input a list of tokens.

This change log was automatically generated by github_changelog_generator.