Skip to content
This repository was archived by the owner on Feb 20, 2019. It is now read-only.

List of nobs #364

Open
Open
@eed3si9n

Description

@eed3si9n

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.

  1. Choice of "algorithms"
    • If the IRFields are calculated strictly based on static knowledge or not
  2. Behavior when static pickler/unpickler is not found
    • Magically generate pickler at runtime (We should probably stop this)
    • Allow lookup from pickler registry
    • Fail
  3. Use of runtime reflection
    • When fields are private, force get/set via reflection, or opt out of such behavior
  4. Structure sharing
    • Use ref to share structure
  5. Emit type tags in pickle representation (such as JSON/Binary)
    • "Eliding" skips the emission of type tags in JSON/Binary
  6. Support of optional fields
    • Use None
  7. Behavior when type tag does not match the given type parameter
    • x.unpickle[Apple] finds the tag for Orange. It could continue or fail.
  8. 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?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions