Рефакторинг, учитывающий неразменные переменные #354
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
@VladisP, Вам интересен только первый коммит 7119e63 — переименование функции
Solve
вSolve-Drive
. Вам в рамках задачи #322 потребуется также написать функциюSolve-Spec
, которая будет использоваться при специализации. Там, гдеSolve-Spec
будет предлагать динамическое обобщение, функцияSolve-Drive
должна будет просто возвращатьUndefined
.@Apakhov, я поменял интерфейс функции
OptTree-Drive
, чтобы он был совместим с оптимизациями #231 и #283, возможно, я ими займусь весной. Кроме того, ушло устаревающее деление режима прогонки на режим «прогонки» (когда сужение разрешены) и «встраивания» (когда они запрещены). Полностью это деление устареет при выполнении Вами задачи #340. Таким образом, второй коммит 1ef5b6c — шаг в направлении #340.Возможно, я ещё немного упрощу
OptTree-Drive
— вместоt.Metatables
между функциями будет передаватьсяe.DriveInfo
, поэтому пока это draft pull request. Чистовиком он будет либо если я это сделаю (сегодня-завтра), либо передумаю, т.к. имеющаяся архитектура уже неплоха.Неразменные переменные (термин из старой статьи Турчина) — переменные, которые запрещено сужать при прогонке. В коде они обозначены как
e.WholeVars
.