LINUX.ORG.RU

re2c 2.0

 , ,


3

2

В понедельник 20 июля вышел релиз re2c – генератора быстрых лексических анализаторов. Основные изменения:

  • Добавлена поддержка языка Go (включается или опцией --lang go для re2c, или в виде отдельной программы re2go). Документация для C и Go генерируется из одного и того же текста, но с разными примерами кода. Полностью переработана подсистема кодогенерации в re2c, что должно облегчить поддержку новых языков в будущем.

  • Добавлена альтернативная система сборки на CMake (спасибо ligfx!). Попытки перевести re2c на CMake предпринимались уже давно, но до ligfx никто не предложил полноценное решение. Старая система сборки на Autotools продолжает поддерживаться и использоваться, и в обозримом будущем нет планов от неё отказаться (отчасти чтобы не создавать проблем разработчикам дистрибутивов, отчасти потому что старая система сборки стабильнее и лаконичнее новой). Обе системы наравне непрерывно тестируются при помощи Travis CI.

  • Добавлена возможность задания интерфейсного кода в конфигурациях при использовании обобщённго АПИ (generic API). Раньше большинство АПИ приходилось задавать в форме функций или функциональных макросов. Теперь их можно задавать в форме произвольных строк с именованными шаблонными параметрами вида @@{name} или просто @@ (если параметр один и не возникает неоднозначности). Стиль АПИ задаётся конфигурацией re2c:api:style (значение functions задаёт функциональный стиль, а free-form – произвольный).

  • Улучшена работа опции -c, --start-conditions, позволяющей совмещать несколько взаимосвязанных лексеров в одном re2c-блоке. Теперь можно использовать обычные блоки наравне с условными и задавать несколько не связанных условных блоков в одном файле. Улучшена работа опции -r, --reuse (повторное использование кода из одного блока в других блоках) в сочетании с опциями -c, --start-conditions и -f, --storable-state (лексер с сохраняемым состоянием, который можно прервать в произвольном месте и продолжить выполнение позже).

  • Исправлена ошибка в недавно добавленном алгоритме обработки конца входных данных (EOF rule), приводившая в редких случаях к неправильной обработке перекрывающихся правил.

  • Упрощён процесс бутстрапа. Раньше система сборки пыталась динамически найти уже собранный re2c, который можно было бы использовать для пересборки самого себя. Это приводило к неправильным зависимостям (поскольку граф зависимостей получался динамическим, чего большинство систем сборки не любит). Теперь чтобы пересобрать лексеры, требуется в явном виде сконфигурировать систему сборки и задать переменную RE2C_FOR_BUILD.

Спасибо всем, кто участвовал в подготовке этого релиза!

>>> Подробности



Проверено: cetjs2 ()

Зачем это нужно?

Капец, в OSS-проектах сжв бушуют, TMSC госдеп запрещает принимать заказы, а на лорчике благодать да тишина. Какие-то утилитки полируют.

anonymous ()

Уроды из Mozilla решили, что firefox доломан окончательно, и принялись ломать thunderbird

С этой целью они выпустили новый «ESR» релиз, thunderbird 78, который при неосторожных обновлениях способен замненить истинный ESR, thunderbird 68. В новом релизе применены следующие методы борьбы против пользователя:

  • Прекращена поддержка главного плагина, который составлял большую часть смысла использования thunderbird - enigmail.

  • Сама по себе поддержка openpgp-шифрования пока вроде как остаётся, но вместо стабильной, хорошо работающей и юниксвейной реализации, gnupg, которая давно уже стала синонимом самих понятий openpgp и end-to-end шифрование почты, предлагается наколеночная rnp, о которой никто никогда не слышал, и в которой непонятно сколько бекдоров.

  • В частности, rnp использует несовместимый с gnupg вендорлокнутый формат хранения ключей. Более точная сверка ключей, чем сверка только их фингерпринтов, теперь сильно затруднена.

  • Вообще, отключена поддержка не только enigmail, но и всех XUL-аддонов, полностью повторяя путь разрушения firefox.

  • Для шифрования почты теперь принудительноприменяются порочные, ложные и ошибочные практики, вроде использования «««мастер»»»-«««пароля»»».

Пользователям рекомендуется как можно скорее запретить у себя в дистрибутивах обновление пакета thunderbird до версии выше 68.

anonymous ()