Skip to content

Decouple core modern CEL value representation from legacy V1 evaluation types so pure modern runtimes no longer link deprecated evaluation and interop targets transitively. - #2456

Open
copybara-service[bot] wants to merge 1 commit into
masterfrom
test_1021200957

Conversation

@copybara-service

Copy link
Copy Markdown

Decouple core modern CEL value representation from legacy V1 evaluation types so pure modern runtimes no longer link deprecated evaluation and interop targets transitively.

Previously, the core value library bundled legacy list, map, and struct wrapper bridges directly alongside modern arena-allocated values and aliased the legacy target back into itself. Any binary using modern CEL values was forced to pull in legacy registries, evaluation helpers, and type providers even when no legacy APIs were called.

Extracting the legacy wrapper implementations and compatibility adapters into a separate library target, backed by lightweight per-instance dispatch tables registered only when legacy wrappers are constructed, preserves existing interop behavior for unmigrated callers without imposing legacy binary footprint on modern consumers. Removing redundant multiple inheritance from modern container implementations also prevents legacy container interfaces from anchoring unnecessary virtual tables into pure modern binaries.

@copybara-service
copybara-service Bot force-pushed the test_1021200957 branch 3 times, most recently from 9fdbe0f to 00da8c5 Compare November 13, 2026 21:45
…on types so pure modern runtimes no longer link deprecated evaluation and interop targets transitively.

Previously, the core value library bundled legacy list, map, and struct wrapper bridges directly alongside modern arena-allocated values and aliased the legacy target back into itself. Any binary using modern CEL values was forced to pull in legacy registries, evaluation helpers, and type providers even when no legacy APIs were called.

Extracting the legacy wrapper implementations and compatibility adapters into a separate library target, backed by lightweight per-instance dispatch tables registered only when legacy wrappers are constructed, preserves existing interop behavior for unmigrated callers without imposing legacy binary footprint on modern consumers. Removing redundant multiple inheritance from modern container implementations also prevents legacy container interfaces from anchoring unnecessary virtual tables into pure modern binaries.

PiperOrigin-RevId: 1021200957
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants