Closed na4zagin3 closed 4 years ago
Annotation [@sexp.option] is interpreted only when it is compiled in OCaml 4.09 and later.
[@sexp.option]
(* library.ml *) type t = { (* TODO (gh-50) make name and version into non-optional *) name: string option [@sexp.option]; version: string option [@sexp.option]; hashes: (string list * Json.t) LibraryFiles.t [@sexp.omit_nil]; files: string LibraryFiles.t [@sexp.omit_nil]; compatibility: Compatibility.t [@sexp.omit_nil]; dependencies: Dependency.t [@sexp.omit_nil]; } [@@deriving sexp, compare]
That leads incompatible serialization:
;; In OCaml 4.09 and later ((name abc) (version 0.1) ...) ;; In OCaml 4.08 and earlier ((name (abc)) (version (0.1)) ...)
This is not a practical problem as this can affect only people using pin subcommand, which is disabled by default.
pin
Annotation
[@sexp.option]
is interpreted only when it is compiled in OCaml 4.09 and later.That leads incompatible serialization:
This is not a practical problem as this can affect only people using
pin
subcommand, which is disabled by default.