Skip to content

Commit

Permalink
Подавление древесной оптимизации в rl-lexgen при помощи gen_e__ (#359)
Browse files Browse the repository at this point in the history
Ранее древенсая оптимизация в lexgen’е подавлялась при помощи объявления
функций как

    $SPEC State (e.acc) e.text;

До реализации #251 «Специализация без шаблона» эта строчка подавляла
специализацию функции-состояния в режиме -OA+. Сейчас эта строчка наоборот,
форсирует специализацию этой функции даже в режиме -OA-.

Избыточная прогонка подавлена при помощи организации автомата так, чтобы
авторазметка (#251) рассматривала некоторые «опасные» функции как базисные,
см. 0cda99e2d.

В текущей версии 3.3 реализована поддержка функции обобщения gen_e__ (#331),
которая предназначена для подавления специализации. Теперь все аккумуляторы
принудительно обобщаются при помощи gen_e__. Прогонка подавляется за счёт
того, что в актуальной версии не реализована прогонка функций с активным
аргументом (#230).

Потеря быстродействия не страшна, т.к. Простой Рефал уже deprecated (#318,
DSL, который растворяется во время компиляции (#50).

Потеря быстродей
  • Loading branch information
Mazdaywik committed Jul 24, 2021
1 parent 67a293a commit a0aeae5
Show file tree
Hide file tree
Showing 4 changed files with 1,296 additions and 1,414 deletions.
Loading

0 comments on commit a0aeae5

Please sign in to comment.