java/fury-core/src/main/java/org/apache/fury/resolver/MapRefResolver.java (5 lines): - line 36: // FIXME Will binding a separate reference resolver to every type have better performance? - line 48: // FIXME median may be better, but calculate median streaming is complicated. - line 49: // FIXME is there a more accurate way to predict reference size? - line 226: // TODO handle outlier big size. - line 245: // TODO handle outlier big size. java/fury-core/src/main/java/org/apache/fury/meta/ClassDef.java (5 lines): - line 85: // TODO use field offset to sort field, which will hit l1-cache more. Since - line 414: // TODO remove it when new collection deserialization jit finished. - line 418: // TODO remove it when new map deserialization jit finished. - line 537: // TODO support preserve element TypeExtMeta - line 603: // TODO support preserve element TypeExtMeta, it will be lost when building other TypeRef dart/packages/fury/lib/src/codegen/analyze/impl/constructor/constructor_analyzer.dart (5 lines): - line 20: // TODO: The current analysis function does not support field override in the inheritance chain (not recommended by Dart official) - line 21: // TODO: It only focuses on UnnamedConstructor - line 22: // TODO: And for the parameters of UnnamedConstructor, it only cares about parameters prefixed with super and this - line 88: // TODO: Maybe we can enforce stricter limitations here - line 92: // TODO: The handling of non-exceptional cases (e.g., WARNING) is relatively simple here, we can try to establish a dedicated logging component later. python/pyfury/_serializer.py (4 lines): - line 219: # TODO support timezone - line 717: # TODO support varint128 - line 727: # TODO support varint128 - line 737: # TODO support varint128 dart/packages/fury/lib/src/const/obj_type.dart (4 lines): - line 20: // TODO: not all types are supported, same for furyJava, such as Uint8 and Uint16. The Type enum exists, and the serializer is designed, but they are not used. - line 21: /// TODO: furyJava manages writeRef for these types more precisely, such as control for time types and strings, not just basic types. Here we only control basic types. - line 119: // TODO: here time - line 125: // TODO: here time go/fury/struct.go (4 lines): - line 40: // TODO support fields back and forward compatible. need to serialize fields name too. - line 122: name: SnakeCase(field.Name), // TODO field name to lower case - line 192: // FIXME ignore unknown types for hash calculation - line 200: // TODO add list element type and map key/value type to hash. python/pyfury/_serialization.pyx (4 lines): - line 1218: # TODO support timezone - line 2142: # TODO support varint128 - line 2152: # TODO support varint128 - line 2162: # TODO support varint128 java/fury-core/src/main/java/org/apache/fury/serializer/ReplaceResolveSerializer.java (3 lines): - line 79: // FIXME class with `writeReplace` method defined should be Serializable, - line 231: // FIXME new classinfo may miss serializer update in async compilation mode. - line 247: // FIXME JDK serialization will update reference table, which will change deserialized object java/fury-core/src/main/java/org/apache/fury/codegen/ExpressionVisitor.java (3 lines): - line 191: // TODO add map type support. - line 205: // TODO use method handle for serializable lambda to speed up perf. - line 212: // FIXME may need to check list/container values types? dart/packages/fury/lib/src/const/dart_type.dart (3 lines): - line 74: // TODO: For classes from external libraries, the path might be updated, please note - line 109: // TODO: Using this method requires that all DartTypeEnum names be unique and sorted in strict string order - line 112: // TODO: Attempt to record the Dart analyzer's ID to achieve a numerical comparison go/fury/type.go (3 lines): - line 211: genericSetType, // FIXME set should be a generic type - line 561: // TODO this hash should be unique, since we don't compare data equality for performance - line 586: // TODO support use computed hash java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractCollectionSerializer.java (3 lines): - line 46: // TODO remove elemSerializer, support generics in CompatibleSerializer. - line 336: // TODO use generics for compatible serializer. - line 568: // TODO use generics for compatible serializer. java/fury-core/src/main/java/org/apache/fury/serializer/ArraySerializers.java (2 lines): - line 76: // TODO add ClassInfo cache for non-final component type. - line 631: // TODO reference support java/fury-core/src/main/java/org/apache/fury/resolver/FieldResolver.java (2 lines): - line 917: // TODO support nested generics. - line 964: // TODO support nested generics. python/pyfury/serializer.py (2 lines): - line 294: # TODO compute hash - line 493: assert view.c_contiguous # TODO handle contiguous java/fury-core/src/main/java/org/apache/fury/util/DateTimeUtils.java (2 lines): - line 88: * Lookup the offset for given millis seconds since 1970-01-01 00:00:00 in given timezone. TODO: - line 89: * Improve handling of normalization differences. TODO: Replace with JSR-310 or similar system java/fury-core/src/main/java/org/apache/fury/serializer/TimeSerializers.java (2 lines): - line 216: // TODO use java encoding to support larger range. - line 260: // FIXME JDK17 may have higher precision than millisecond dart/packages/fury/lib/src/memory/byte_reader_impl.dart (2 lines): - line 208: // TODO: implements faster version - line 269: res = length == 0 ? v : v & (0xffffffffffffffff >>> off); //TODO: currently sync with fury java java/fury-core/src/main/java/org/apache/fury/resolver/MetaStringResolver.java (2 lines): - line 35: * resolver to reduce string cost. TODO add common inner package names and classnames here. TODO - line 133: // TODO support meta string in other languages. java/fury-core/src/main/java/org/apache/fury/serializer/collection/AbstractMapSerializer.java (2 lines): - line 131: // TODO use generics for compatible serializer. - line 552: // TODO use generics for compatible serializer. java/fury-core/src/main/java/org/apache/fury/resolver/ClassResolver.java (2 lines): - line 672: // FIXME class with `writeReplace` method defined should be Serializable, - line 1204: // TODO group related logic together for extendability and consistency. dart/packages/fury/lib/src/codec/impl/meta_string_encoder_impl.dart (2 lines): - line 102: // TODO: (Consider optimization later) If using int64 for raw padding, although bytes do not need to be changed frequently, the bitsPerChar will not be that large, causing charVal to still change frequently, the improvement may not be significant, consider optimization later - line 149: // TODO: Do not check input length here, this check should be done earlier (remove this comment after writing) python/pyfury/_struct.py (2 lines): - line 247: # TODO add list element type to hash. - line 252: # TODO add map key/value type to hash. java/fury-core/src/main/java/org/apache/fury/serializer/StringSerializer.java (2 lines): - line 445: // FIXME JDK11 utf16 string uses little-endian order. - line 551: // FIXME JDK11 utf16 string uses little-endian order. java/fury-core/src/main/java/org/apache/fury/codegen/CodeGenerator.java (2 lines): - line 71: // FIXME The classloaders will only be reclaimed when the generated class are not be referenced. - line 72: // FIXME CodeGenerator may reference to classloader, thus cause circular reference, neither can java/fury-core/src/main/java/org/apache/fury/serializer/collection/CollectionSerializers.java (2 lines): - line 778: // TODO add JDK11:JdkImmutableListSerializer,JdkImmutableMapSerializer,JdkImmutableSetSerializer - line 780: // TODO Support ArraySubListSerializer, SubListSerializer java/fury-core/src/main/java/org/apache/fury/codegen/ExpressionUtils.java (1 line): - line 350: // FIXME may need to check list/container values types? java/fury-core/src/main/java/org/apache/fury/serializer/StringUTF16.java (1 line): - line 59: // // FIXME JDK11 utf16 string uses little-endian order dart/packages/fury/lib/src/meta/meta_string.dart (1 line): - line 47: // TODO: Imitate the hash implementation from furyJava, maybe there is a better way java/fury-core/src/main/java/org/apache/fury/serializer/AbstractObjectSerializer.java (1 line): - line 1042: // TODO support generics in Pojo, see ComplexObjectSerializer.getGenericTypes java/fury-core/src/main/java/org/apache/fury/builder/CodecBuilder.java (1 line): - line 461: // TODO allow default access-level class. dart/packages/fury/lib/src/codegen/analyze/impl/annotation/enum_annotation_analyzer.dart (1 line): - line 53: // TODO: This is still under modification, no fields yet, but maintaining the code structure. java/benchmark/src/main/java/org/apache/fury/benchmark/NewStringSuite.java (1 line): - line 89: // FIXME JDK11 utf16 string uses little-endian order java/fury-core/src/main/java/org/apache/fury/resolver/XtypeResolver.java (1 line): - line 492: // TODO support type cache to speed up lookup java/fury-core/src/main/java/org/apache/fury/serializer/PrimitiveSerializers.java (1 line): - line 168: // TODO support varint in cross-language serialization dart/packages/fury/lib/src/resolver/impl/xtype_resolver_impl.dart (1 line): - line 196: // TODO: Does not support non-existent class, furyJava seems to have some support java/fury-format/src/main/java/org/apache/fury/format/row/binary/UnsafeTrait.java (1 line): - line 113: // TODO when length of string utf-8 bytes is less than 8, store it in fixed-width region. Use one dart/packages/fury/lib/src/serializer/fury_header_serializer.dart (1 line): - line 58: //TODO: oobEnabled unsupported yet. cpp/fury/row/row.h (1 line): - line 317: // TODO to unordered_map: To_unordered_map possible? java/fury-core/src/main/java/org/apache/fury/serializer/collection/GuavaCollectionSerializers.java (1 line): - line 378: // TODO guava serializers go/fury/set.go (1 line): - line 23: // TODO use golang generics; support more concrete key types dart/packages/fury/lib/src/collection/long_long_key.dart (1 line): - line 30: // TODO: Maybe we can use other hash function that is faster java/fury-format/src/main/java/org/apache/fury/format/vectorized/ArrowSerializers.java (1 line): - line 76: // FIXME close reader will close `root`. java/fury-format/src/main/java/org/apache/fury/format/vectorized/ArrowUtils.java (1 line): - line 40: // FIXME JDK17: Unable to make field long java.nio.Buffer.address java/fury-core/src/main/java/org/apache/fury/builder/CompatibleCodecBuilder.java (1 line): - line 142: // TODO support nested collection/map generics.