You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Эти расширения станут основным новшеством версии 3.4. Однако, прямо сейчас создавать новую версию преждевременно по следующим причинам.
@Apakhov и @VladisP намеренно работали с очень ограниченным объёмом кода (в смысле, я ограничил их работу). Работа @Apakhov’а была ограничена файлом OptTree-Drive-Expr.ref, работа @VladisP’а — файлами GenericMatch.ref и OptTree-Spec.ref. Однако, полноценная реализация новых функций требует изменения куда большего объёма кода (например, скрипта в OptTree.ref).
Ограниченность поля для работы @Apakhov’а и @VladisP’а была намеренной, т.к. этого было достаточно для выполнения содержательной части задачи.
Ациклическая прогонка @Apakhov’а делает ненужной авторазметку прогоняемых функций в том виде, в каком она сейчас есть. Исходно разметка была призвана не допускать пометки $DRIVE для рекурсивных функций. Сейчас рекурсивные функции могут иметь метку $DRIVE, их прогонка не зациклится.
Со специализацией без шаблона @VladisP’а становятся ненужными шаблоны в абстрактном синтаксическом дереве. Но, чтобы их удалить, нужны более глубокие правки.
Да, авторазметка для специализации тоже становится ненужной.
Написанный студентами код может быть неоптимальным, т.к. у них нет опыта в оптимизации Рефала.
Новые оптимизации работают глубже, из-за чего могут выявиться проблемы в других частях системы. В частности, обостряются проблемы с раздуванием программ (Древесные оптимизации раздувают программы #332). На данный момент проблема купирована в 54c28cad9921556d208bc43dc88f55943d7885cb.
Хотя все автотесты выполнились, включая и случайные, тестовое покрытие, выполненное студентами неполное. Требуется более тщательное тестирование.
Автотесты проверяют корректность. Содержательную сторону нужно тестировать вручную.
Даже если обе оптимизации в отдельных ветках работали порознь, при работе вместе возможны проблемы.
Можно удалить ObjectMatch.ref, т.к. новый алгоритм сопоставления покрывает этот случай.
В первую очередь нужно
самоприменить компилятор на максимальных оптимизациях,
проверить, что совместная работа оптимизаций работает так, как надо (остаточная программа в логе соответствует ожиданиям).
Только что завершились две выпускные квалификационные работы:
Эти расширения станут основным новшеством версии 3.4. Однако, прямо сейчас создавать новую версию преждевременно по следующим причинам.
@Apakhov и @VladisP намеренно работали с очень ограниченным объёмом кода (в смысле, я ограничил их работу). Работа @Apakhov’а была ограничена файлом
OptTree-Drive-Expr.ref, работа @VladisP’а — файламиGenericMatch.refиOptTree-Spec.ref. Однако, полноценная реализация новых функций требует изменения куда большего объёма кода (например, скрипта вOptTree.ref).Ограниченность поля для работы @Apakhov’а и @VladisP’а была намеренной, т.к. этого было достаточно для выполнения содержательной части задачи.
Ациклическая прогонка @Apakhov’а делает ненужной авторазметку прогоняемых функций в том виде, в каком она сейчас есть. Исходно разметка была призвана не допускать пометки
$DRIVEдля рекурсивных функций. Сейчас рекурсивные функции могут иметь метку$DRIVE, их прогонка не зациклится.Со специализацией без шаблона @VladisP’а становятся ненужными шаблоны в абстрактном синтаксическом дереве. Но, чтобы их удалить, нужны более глубокие правки.
Да, авторазметка для специализации тоже становится ненужной.
Основные компоненты для Универсальная древесная оптимизация $OPT #314 уже реализованы (#251, #322, #340). Фактически в Универсальная древесная оптимизация $OPT #314 нужно реализовать поддержку псевдокомментариев так, как она описана (и в следующем релизе удалить старый синтаксис).
Написанный студентами код может быть неоптимальным, т.к. у них нет опыта в оптимизации Рефала.
Новые оптимизации работают глубже, из-за чего могут выявиться проблемы в других частях системы. В частности, обостряются проблемы с раздуванием программ (Древесные оптимизации раздувают программы #332). На данный момент проблема купирована в 54c28cad9921556d208bc43dc88f55943d7885cb.
Хотя все автотесты выполнились, включая и случайные, тестовое покрытие, выполненное студентами неполное. Требуется более тщательное тестирование.
Автотесты проверяют корректность. Содержательную сторону нужно тестировать вручную.
Даже если обе оптимизации в отдельных ветках работали порознь, при работе вместе возможны проблемы.
Можно удалить
ObjectMatch.ref, т.к. новый алгоритм сопоставления покрывает этот случай.В первую очередь нужно