chaokunyang commented on PR #3252:
URL: https://github.com/apache/fory/pull/3252#issuecomment-3914937533
The float16 serializer is added, but key runtime integration paths are
incomplete: dynamic-any resolution, skip/compatibility handling, and primitive
array encoding are not wired for the new type. These cause real runtime
failures and cross-language/type-id mismatches.
- [P1] Register Float16 in builtin type resolver
—rust/fory-core/src/serializer/number.rs:106-106
This adds a Serializer for float16, but the builtin registration table is
not updated, so Float16 has no runtime TypeInfo entry. Typed fields can
work, but polymorphic paths (Box<dyn Any>, Rc/Arc<dyn Any>) fail with
TypeId ... not found in type_info registry when the payload is Float16, which
makes the new primitive unusable in existing dynamic-any flows.
- [P1] Support skipping FLOAT16 in compatible deserialization —
/Users/chaokunyang/Desktop/dev/fory/rust/fory-core/src/serializer/number.rs:121-123
Now that TypeId::FLOAT16 is emitted, compatible/schema-evolution readers
must be able to skip it, but serializer/skip.rs has no FLOAT16 handling.
Deserializing older schemas from newer payloads that contain float16
values currently fails with Unimplemented type id: 17 instead of skipping the
unknown field, which breaks backward-compatible reads.
- [P1] Serialize Vec<Float16> as FLOAT16_ARRAY
—rust/fory-core/src/types.rs:401-401
This declares Vec<float16> as FLOAT16_ARRAY, but the list primitive-path
logic still omits float16, so Vec<Float16> is serialized as generic LIST
rather than FLOAT16_ARRAY. That causes type mismatches against peers that
send/expect the xlang primitive array type and also loses the primitive-array
fast path for this new type.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]