Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Подавление древесной оптимизации в rl-lexgen при помощи gen_e__ (#359)
Ранее древенсая оптимизация в 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