The GitHub Actions job "Fory CI" on fory.git/row-codec-schema-versions has 
failed.
Run started by GitHub user stevenschlansker (triggered by stevenschlansker).

Head commit for run:
5978a5dbbceaf7be41e5db1de1c30a153f106aee / Claude (on behalf of Steven 
Schlansker) <[email protected]>
perf(format): generate row-codec schema projections lazily on first decode

Schema-evolution projection codecs were compiled eagerly at builder time:
the row/array/map builders enumerated the full historical cross-product and
loaded one generated codec class per combination, so a deep nested version
history paid its whole class cost up front whether or not those versions ever
appeared on the wire.

Defer that compilation to decode. Each builder now builds an immutable
hash -> ProjectionSource index that holds only the inputs (the VersionedSchema
and codegen context); the codec class is compiled the first time a payload with
that hash is decoded and cached in a per-encoder LongMap. No new 
synchronization:
encoders are single-threaded, and the class compile is already memoized globally
by the shared code generator, so a concurrent first-miss on the same hash
compiles the class once.

The build-time collision guards stay eager over the full cross-product 
(row/array
via SchemaHistory's strict-hash guard, map via its two combined-hash guards), 
so a
hash clash still fails fast at build rather than on an unlucky decode.

Because the build-time class count no longer tracks annotated history, the
projection-count warning no longer flags a real cost; remove
PROJECTION_COUNT_WARN_THRESHOLD and warnIfManyProjections. Also fix stale 
Javadoc
that claimed map keys are always read at the current schema and that map support
is in progress, and update the row-format guide's generation-cost note to the
lazy model.

Report URL: https://github.com/apache/fory/actions/runs/28530029395

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to