This is an automated email from the ASF dual-hosted git repository.
chaokunyang pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/fory.git
from e13399532 feat(JavaScript): Impl xlang Map and Collection (#3249)
add 9891bdeb5 feat(compiler/runtime): use hash for generated class as id
and refactor user type id encoding (#3248)
No new revisions were added by this update.
Summary of changes:
.gitignore | 48 +-
compiler/README.md | 4 +
compiler/extension/fory_options.proto | 7 +
compiler/fory_compiler/cli.py | 43 +-
compiler/fory_compiler/frontend/fbs/translator.py | 1 +
compiler/fory_compiler/frontend/fdl/parser.py | 32 +-
.../fory_compiler/frontend/proto/translator.py | 1 +
compiler/fory_compiler/generators/base.py | 15 +
compiler/fory_compiler/generators/cpp.py | 20 +-
compiler/fory_compiler/generators/go.py | 12 +-
compiler/fory_compiler/generators/java.py | 38 +-
compiler/fory_compiler/generators/python.py | 18 +-
compiler/fory_compiler/generators/rust.py | 12 +-
compiler/fory_compiler/ir/ast.py | 13 +-
compiler/fory_compiler/ir/type_id.py | 69 ++
compiler/fory_compiler/ir/validator.py | 71 ++
compiler/fory_compiler/tests/test_auto_id.py | 202 ++++++
.../fory_compiler/tests/test_proto_frontend.py | 15 +
cpp/fory/meta/meta_string.cc | 17 +-
cpp/fory/meta/meta_string_test.cc | 3 +-
cpp/fory/serialization/any_serializer.h | 7 +-
cpp/fory/serialization/array_serializer.h | 16 +-
cpp/fory/serialization/basic_serializer.h | 80 +--
cpp/fory/serialization/collection_serializer.h | 116 ++--
.../serialization/collection_serializer_test.cc | 1 +
cpp/fory/serialization/context.cc | 234 +++++--
cpp/fory/serialization/context.h | 41 +-
cpp/fory/serialization/enum_serializer.h | 4 +-
cpp/fory/serialization/map_serializer.h | 91 ++-
cpp/fory/serialization/serialization_test.cc | 46 +-
cpp/fory/serialization/serializer.h | 11 +-
cpp/fory/serialization/skip.cc | 68 +-
.../serialization/smart_ptr_serializer_test.cc | 4 +
cpp/fory/serialization/smart_ptr_serializers.h | 28 +-
cpp/fory/serialization/string_serializer.h | 20 +-
cpp/fory/serialization/struct_serializer.h | 79 ++-
cpp/fory/serialization/struct_test.cc | 2 +
cpp/fory/serialization/temporal_serializers.h | 24 +-
cpp/fory/serialization/tuple_serializer.h | 20 +-
cpp/fory/serialization/type_info.h | 6 +-
cpp/fory/serialization/type_resolver.cc | 190 ++++--
cpp/fory/serialization/type_resolver.h | 557 +++++++++++++---
cpp/fory/serialization/union_serializer.h | 16 +-
cpp/fory/serialization/unsigned_serializer.h | 74 +--
cpp/fory/serialization/variant_serializer.h | 8 +-
cpp/fory/serialization/xlang_test_main.cc | 13 +-
cpp/fory/type/type.h | 53 +-
cpp/fory/util/flat_int_map_test.cc | 7 +-
dart/packages/fory/lib/src/const/obj_type.dart | 10 +
.../lib/src/exception/registration_exception.dart | 4 +-
dart/packages/fory/lib/src/fory_context.dart | 8 +-
dart/packages/fory/lib/src/meta/type_info.dart | 8 +-
.../resolver/impl/meta_string_resolver_impl.dart | 5 +
.../impl/meta_string_writing_resolver_impl.dart | 4 +-
.../lib/src/resolver/impl/xtype_resolver_impl.dart | 20 +-
docs/compiler/fdl-syntax.md | 153 ++++-
docs/compiler/generated-code.md | 3 +-
docs/compiler/index.md | 54 +-
docs/guide/cpp/custom-serializers.md | 8 +-
go/fory/array.go | 24 +-
go/fory/enum.go | 2 +-
go/fory/field_info.go | 31 +-
go/fory/fory.go | 62 +-
go/fory/map.go | 4 +-
go/fory/map_primitive.go | 76 +--
go/fory/meta_string_resolver.go | 19 +-
go/fory/optional_serializer.go | 6 +-
go/fory/pointer.go | 6 +-
go/fory/primitive.go | 56 +-
go/fory/reader.go | 53 +-
go/fory/set.go | 28 +-
go/fory/skip.go | 118 ++--
go/fory/slice.go | 8 +-
go/fory/slice_primitive.go | 8 +-
go/fory/string.go | 8 +-
go/fory/struct.go | 89 +--
go/fory/time.go | 8 +-
go/fory/type_def.go | 140 ++--
go/fory/type_def_test.go | 3 +
go/fory/type_resolver.go | 604 ++++++++---------
go/fory/types.go | 60 +-
go/fory/union.go | 4 +-
go/fory/writer.go | 3 +-
integration_tests/idl_tests/cpp/CMakeLists.txt | 2 +-
integration_tests/idl_tests/cpp/main.cc | 72 ++-
integration_tests/idl_tests/generate_idl.py | 56 +-
.../idl_tests/go/idl_roundtrip_test.go | 118 +++-
.../idl_tests/go/root_roundtrip_test.go | 6 +-
integration_tests/idl_tests/idl/addressbook.fdl | 2 +-
.../idl_tests/idl/{graph.fdl => auto_id.fdl} | 33 +-
integration_tests/idl_tests/idl/complex_pb.proto | 2 +-
integration_tests/idl_tests/idl/tree.fdl | 2 +-
.../apache/fory/idl_tests/IdlRoundTripTest.java | 70 +-
.../python/{src => }/idl_tests/__init__.py | 0
.../python/{src => }/idl_tests/roundtrip.py | 48 ++
integration_tests/idl_tests/python/pyproject.toml | 2 +-
integration_tests/idl_tests/run_python_tests.sh | 2 +-
integration_tests/idl_tests/rust/src/lib.rs | 38 +-
.../idl_tests/rust/tests/idl_roundtrip.rs | 62 +-
.../src/main/java/org/apache/fory/Fory.java | 257 ++++----
.../fory/builder/BaseObjectCodecBuilder.java | 111 ++--
.../java/org/apache/fory/builder/CodecBuilder.java | 13 +-
.../java/org/apache/fory/builder/CodecUtils.java | 12 +-
.../java/org/apache/fory/builder/Generated.java | 6 +-
.../fory/builder/MetaSharedCodecBuilder.java | 28 +-
.../fory/builder/MetaSharedLayerCodecBuilder.java | 14 +-
.../java/org/apache/fory/collection/LongMap.java | 2 +-
.../java/org/apache/fory/config/ForyBuilder.java | 2 +-
.../java/org/apache/fory/memory/MemoryBuffer.java | 10 +-
.../main/java/org/apache/fory/meta/ClassSpec.java | 26 +-
.../main/java/org/apache/fory/meta/FieldTypes.java | 188 ++++--
...ssDefDecoder.java => NativeTypeDefDecoder.java} | 79 ++-
...ssDefEncoder.java => NativeTypeDefEncoder.java} | 88 ++-
.../fory/meta/{ClassDef.java => TypeDef.java} | 81 +--
.../java/org/apache/fory/meta/TypeDefDecoder.java | 39 +-
.../java/org/apache/fory/meta/TypeDefEncoder.java | 61 +-
.../org/apache/fory/resolver/ClassResolver.java | 712 +++++++++++----------
.../java/org/apache/fory/resolver/MetaContext.java | 4 +-
.../apache/fory/resolver/MetaStringResolver.java | 12 +-
.../apache/fory/resolver/SerializationContext.java | 4 +-
.../resolver/{ClassInfo.java => TypeInfo.java} | 112 ++--
.../{ClassInfoHolder.java => TypeInfoHolder.java} | 14 +-
.../org/apache/fory/resolver/TypeResolver.java | 710 ++++++++++----------
.../org/apache/fory/resolver/XtypeResolver.java | 446 +++++++------
.../apache/fory/serializer/ArraySerializers.java | 18 +-
.../apache/fory/serializer/CodegenSerializer.java | 6 +-
.../org/apache/fory/serializer/FieldGroups.java | 34 +-
.../apache/fory/serializer/ForwardSerializer.java | 8 +-
.../org/apache/fory/serializer/LazySerializer.java | 4 +-
.../fory/serializer/MetaSharedLayerSerializer.java | 20 +-
.../fory/serializer/MetaSharedSerializer.java | 48 +-
.../apache/fory/serializer/NonexistentClass.java | 8 +-
.../serializer/NonexistentClassSerializers.java | 108 ++--
.../apache/fory/serializer/ObjectSerializer.java | 73 ++-
.../fory/serializer/ObjectStreamSerializer.java | 209 +++---
.../fory/serializer/ReplaceResolveSerializer.java | 24 +-
.../fory/serializer/SerializationBinding.java | 141 ++--
.../apache/fory/serializer/SerializationUtils.java | 6 +-
.../org/apache/fory/serializer/Serializers.java | 6 +-
.../apache/fory/serializer/UnionSerializer.java | 46 +-
.../collection/ChildContainerSerializers.java | 10 +-
.../collection/CollectionLikeSerializer.java | 52 +-
.../collection/CollectionSerializers.java | 32 +-
.../serializer/collection/MapLikeSerializer.java | 107 ++--
.../fory/serializer/collection/MapSerializers.java | 11 +-
.../collection/SerializationBinding.java | 20 +-
.../apache/fory/serializer/struct/Fingerprint.java | 9 +-
.../main/java/org/apache/fory/type/Generics.java | 6 +-
.../src/main/java/org/apache/fory/type/Types.java | 36 +-
.../java/org/apache/fory/util/LoaderBinding.java | 12 +-
.../src/main/java/org/apache/fory/util/Utils.java | 2 +
.../fory-core/native-image.properties | 12 +-
.../src/test/java/org/apache/fory/CyclicTest.java | 33 +-
.../test/java/org/apache/fory/ForyTestBase.java | 4 +-
.../src/test/java/org/apache/fory/TestUtils.java | 6 +-
.../apache/fory/annotation/ForyAnnotationTest.java | 10 +-
.../apache/fory/annotation/ForyFieldTagIdTest.java | 6 +-
.../org/apache/fory/builder/JITContextTest.java | 26 +-
.../java/org/apache/fory/meta/ClassDefTest.java | 503 ---------------
...oderTest.java => NativeTypeDefEncoderTest.java} | 66 +-
.../java/org/apache/fory/meta/TypeDefTest.java | 507 ++++++++++++++-
.../apache/fory/resolver/ClassResolverTest.java | 50 +-
.../org/apache/fory/resolver/MetaContextTest.java | 2 +-
.../{ClassInfoTest.java => TypeInfoTest.java} | 4 +-
.../fory/serializer/CodegenSerializerTest.java | 6 +-
.../fory/serializer/CompatibleSerializerTest.java | 2 +-
.../FinalFieldReplaceResolveSerializerTest.java | 30 +-
.../fory/serializer/MetaSharedCompatibleTest.java | 4 +-
.../serializer/ProtocolInteroperabilityTest.java | 9 +-
.../org/apache/fory/serializer/RegisterTest.java | 4 +-
.../serializer/collection/MapSerializersTest.java | 8 +-
.../java/org/apache/fory/xlang/XlangTestBase.java | 2 +-
...DefEncoderTest.java => TypeDefEncoderTest.java} | 22 +-
javascript/packages/fory/lib/fory.ts | 18 +-
javascript/packages/fory/lib/gen/any.ts | 44 +-
javascript/packages/fory/lib/gen/builder.ts | 15 +-
javascript/packages/fory/lib/gen/collection.ts | 9 +-
javascript/packages/fory/lib/gen/enum.ts | 43 +-
javascript/packages/fory/lib/gen/index.ts | 6 +-
javascript/packages/fory/lib/gen/map.ts | 12 +-
javascript/packages/fory/lib/gen/router.ts | 2 +-
javascript/packages/fory/lib/gen/serializer.ts | 60 +-
javascript/packages/fory/lib/gen/struct.ts | 101 ++-
javascript/packages/fory/lib/meta/TypeMeta.ts | 76 ++-
javascript/packages/fory/lib/metaStringResolver.ts | 19 +-
javascript/packages/fory/lib/type.ts | 50 +-
javascript/packages/fory/lib/typeInfo.ts | 31 +-
javascript/packages/fory/lib/typeMetaResolver.ts | 10 +-
.../fory/lib/{classResolver.ts => typeResolver.ts} | 61 +-
licenserc.toml | 1 +
python/pyfory/_fory.py | 32 +-
python/pyfory/collection.pxi | 156 ++---
python/pyfory/collection.py | 54 +-
python/pyfory/includes/libserialization.pxd | 14 +-
python/pyfory/meta/typedef.py | 117 +++-
python/pyfory/meta/typedef_decoder.py | 28 +-
python/pyfory/meta/typedef_encoder.py | 16 +-
python/pyfory/registry.py | 307 +++++----
python/pyfory/serialization.pyx | 292 ++++++---
python/pyfory/serializer.py | 6 +-
python/pyfory/struct.py | 46 +-
python/pyfory/tests/test_field_meta.py | 8 +-
python/pyfory/tests/test_metastring_resolver.py | 73 ++-
python/pyfory/tests/test_serializer.py | 4 +-
python/pyfory/types.py | 14 +-
python/pyfory/union.py | 26 +-
rust/fory-core/src/meta/type_meta.rs | 109 +++-
rust/fory-core/src/resolver/context.rs | 48 +-
rust/fory-core/src/resolver/meta_resolver.rs | 61 +-
.../fory-core/src/resolver/meta_string_resolver.rs | 17 +-
rust/fory-core/src/resolver/type_resolver.rs | 237 +++++--
rust/fory-core/src/serializer/any.rs | 67 +-
rust/fory-core/src/serializer/arc.rs | 11 +-
rust/fory-core/src/serializer/array.rs | 10 +-
rust/fory-core/src/serializer/bool.rs | 10 +-
rust/fory-core/src/serializer/box_.rs | 15 +-
rust/fory-core/src/serializer/collection.rs | 24 +-
rust/fory-core/src/serializer/core.rs | 39 +-
rust/fory-core/src/serializer/datetime.rs | 30 +-
rust/fory-core/src/serializer/enum_.rs | 39 +-
rust/fory-core/src/serializer/heap.rs | 8 +-
rust/fory-core/src/serializer/list.rs | 28 +-
rust/fory-core/src/serializer/map.rs | 44 +-
rust/fory-core/src/serializer/marker.rs | 8 +-
rust/fory-core/src/serializer/mutex.rs | 12 +-
rust/fory-core/src/serializer/number.rs | 8 +-
rust/fory-core/src/serializer/option.rs | 4 +-
rust/fory-core/src/serializer/primitive_list.rs | 4 +-
rust/fory-core/src/serializer/rc.rs | 11 +-
rust/fory-core/src/serializer/refcell.rs | 12 +-
rust/fory-core/src/serializer/set.rs | 16 +-
rust/fory-core/src/serializer/skip.rs | 187 +++---
rust/fory-core/src/serializer/string.rs | 10 +-
rust/fory-core/src/serializer/struct_.rs | 51 +-
rust/fory-core/src/serializer/trait_object.rs | 97 +--
rust/fory-core/src/serializer/tuple.rs | 24 +-
rust/fory-core/src/serializer/unsigned_number.rs | 16 +-
rust/fory-core/src/serializer/util.rs | 14 +-
rust/fory-core/src/serializer/weak.rs | 26 +-
rust/fory-core/src/types.rs | 60 +-
rust/fory-derive/src/object/derive_enum.rs | 11 +-
rust/fory-derive/src/object/misc.rs | 7 +
rust/fory-derive/src/object/read.rs | 62 +-
rust/fory-derive/src/object/serializer.rs | 10 +-
rust/fory-derive/src/object/util.rs | 56 +-
rust/fory/src/lib.rs | 2 +-
rust/tests/tests/compatible/test_struct.rs | 5 +-
rust/tests/tests/test_cross_language.rs | 2 +-
rust/tests/tests/test_ext.rs | 2 +-
rust/tests/tests/test_fory.rs | 28 +-
rust/tests/tests/test_meta.rs | 5 +-
.../fory/serializer/scala/RangeSerializer.scala | 6 +-
252 files changed, 8008 insertions(+), 5368 deletions(-)
create mode 100644 compiler/fory_compiler/ir/type_id.py
create mode 100644 compiler/fory_compiler/tests/test_auto_id.py
copy integration_tests/idl_tests/idl/{graph.fdl => auto_id.fdl} (70%)
rename integration_tests/idl_tests/python/{src => }/idl_tests/__init__.py
(100%)
rename integration_tests/idl_tests/python/{src => }/idl_tests/roundtrip.py
(94%)
rename java/fory-core/src/main/java/org/apache/fory/meta/{ClassDefDecoder.java
=> NativeTypeDefDecoder.java} (74%)
rename java/fory-core/src/main/java/org/apache/fory/meta/{ClassDefEncoder.java
=> NativeTypeDefEncoder.java} (82%)
rename java/fory-core/src/main/java/org/apache/fory/meta/{ClassDef.java =>
TypeDef.java} (84%)
rename java/fory-core/src/main/java/org/apache/fory/resolver/{ClassInfo.java
=> TypeInfo.java} (70%)
rename
java/fory-core/src/main/java/org/apache/fory/resolver/{ClassInfoHolder.java =>
TypeInfoHolder.java} (77%)
delete mode 100644
java/fory-core/src/test/java/org/apache/fory/meta/ClassDefTest.java
rename
java/fory-core/src/test/java/org/apache/fory/meta/{ClassDefEncoderTest.java =>
NativeTypeDefEncoderTest.java} (74%)
rename
java/fory-core/src/test/java/org/apache/fory/resolver/{ClassInfoTest.java =>
TypeInfoTest.java} (90%)
rename
java/fory-extensions/src/test/java/org/apache/fory/extension/meta/{ClassDefEncoderTest.java
=> TypeDefEncoderTest.java} (70%)
rename javascript/packages/fory/lib/{classResolver.ts => typeResolver.ts} (82%)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]