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
Spring compiler оптимизирует не абстрактное число узлов, а реальную стоимость browser artifact. Для одной математической траектории он строит несколько доказанно корректных представлений и детерминированно выбирает минимальное по объявленной cost function.
Подтверждённая проблема
Текущий pipeline минимизирует adaptive piecewise-linear nodes, после чего каждый узел сериализуется как:
linear(value percent%, value percent%, ...)
Но CSS linear() допускает implicit positions:
первый 0% и последний 100% могут быть опущены;
равномерные промежуточные stops могут не иметь процентов;
runs могут использовать автоматическое распределение.
Иногда больше равномерных values без positions короче, чем меньше adaptive nodes с длинными decimal percentages. Следовательно, minimum knot count != minimum artifact bytes.
Прототип показал случаи, где uniform implicit запись была короче adaptive explicit примерно на 5–10%, и другие случаи, где adaptive уверенно выигрывала. Нужен portfolio, не один глобальный победитель.
Critical anchors/extrema/tangent задаются явно, внутри допустимых runs positions опускаются или кодируются компактнее.
D. Cubic Hermite
Только после GO #231 и отдельного browser capability result.
Portfolio должен быть расширяемым internal образом, но не generic plugin architecture с runtime overhead.
Cost function
Первый обязательный критерий:
raw UTF-8 bytes browser artifact
Параллельно измерять:
gzip/Brotli consumer bytes;
number of keyframes/stops;
browser parse/start cost;
retained sample metadata для C¹ handoff;
initial+total bundle impact.
Выбор production representation не обязан всегда совпадать с raw-minimum, если browser start/memory доказывают другой Pareto winner. Тогда policy должна быть versioned и воспроизводимой, а не hardware-dependent runtime benchmark.
Канонизация CSS linear()
Независимо от полного portfolio проверить бесплатные/малорисковые сокращения:
не печатать обязательные 0%/100%, если CSS semantics exact;
shortest round-trip только там, где он нужен для tangent/identity;
implicit uniform positions;
canonical whitespace/separators;
не схлопывать соседние stops вопреки right-bias/discontinuity semantics;
round-trip через независимый CSS-linear parser/reference.
corpus-wide artifact bytes не хуже baseline ни в одном accepted scenario;
есть измеримый aggregate/representative win;
browser/start/handoff contracts зелёные;
code size/runtime graph не регрессируют.
NO-GO
Если selector complexity и compiler size превышают реальные consumer savings, оставить только подтверждённые canonical CSS сокращения, сохранить report и не шипить portfolio abstraction.
Пользовательский результат
Spring compiler оптимизирует не абстрактное число узлов, а реальную стоимость browser artifact. Для одной математической траектории он строит несколько доказанно корректных представлений и детерминированно выбирает минимальное по объявленной cost function.
Подтверждённая проблема
Текущий pipeline минимизирует adaptive piecewise-linear nodes, после чего каждый узел сериализуется как:
Но CSS
linear()допускает implicit positions:0%и последний100%могут быть опущены;Иногда больше равномерных values без positions короче, чем меньше adaptive nodes с длинными decimal percentages. Следовательно,
minimum knot count!=minimum artifact bytes.Прототип показал случаи, где uniform implicit запись была короче adaptive explicit примерно на 5–10%, и другие случаи, где adaptive уверенно выигрывала. Нужен portfolio, не один глобальный победитель.
Кандидаты первого portfolio
A. Adaptive explicit linear
Текущий certified RDP artifact.
B. Uniform implicit linear
Равномерная certified grid, сериализуются только progress values, positions выводит CSS grammar.
C. Hybrid linear
Critical anchors/extrema/tangent задаются явно, внутри допустимых runs positions опускаются или кодируются компактнее.
D. Cubic Hermite
Только после GO #231 и отдельного browser capability result.
Portfolio должен быть расширяемым internal образом, но не generic plugin architecture с runtime overhead.
Cost function
Первый обязательный критерий:
Параллельно измерять:
Выбор production representation не обязан всегда совпадать с raw-minimum, если browser start/memory доказывают другой Pareto winner. Тогда policy должна быть versioned и воспроизводимой, а не hardware-dependent runtime benchmark.
Канонизация CSS linear()
Независимо от полного portfolio проверить бесплатные/малорисковые сокращения:
0%/100%, если CSS semantics exact;Архитектурные требования
eval/runtime generated JS.RED / доказательства
GO
NO-GO
Если selector complexity и compiler size превышают реальные consumer savings, оставить только подтверждённые canonical CSS сокращения, сохранить report и не шипить portfolio abstraction.
Не входит
Родитель: #225. Связано: #220, #221, #222, #223, #227, #228, #231.