pickling
pickling copied to clipboard
List of nobs
Now that the new code base is landed, could we list out the list of nobs that can be tweaked beyond "share nothing" and "static only"? Some of them are tweaked by the format author, the pickler author, while others may be tweaked by the end user.
- Choice of "algorithms"
- If the IRFields are calculated strictly based on static knowledge or not
- Behavior when static pickler/unpickler is not found
- Magically generate pickler at runtime (We should probably stop this)
- Allow lookup from pickler registry
- Fail
- Use of runtime reflection
- When fields are private, force get/set via reflection, or opt out of such behavior
- Structure sharing
- Use ref to share structure
- Emit type tags in pickle representation (such as JSON/Binary)
- "Eliding" skips the emission of type tags in JSON/Binary
- Support of optional fields
- Use
None
- Use
- Behavior when type tag does not match the given type parameter
-
x.unpickle[Apple]
finds the tag forOrange
. It could continue or fail.
-
- Treatment of non-final case classes
- 0.11.x macro does not assume case classes to be final
- It would be nice if the pickler author can say "assume all case classes to be final"
What else?