Skip to content

0.28.1.1

Choose a tag to compare

@mlx-automation mlx-automation released this 02 Jan 11:03
· 53 commits to main since this release

CHANGES:

Highlight

  • * Update Odoc's parser to 3.0 (ocaml-ppx#2757, @Julow)
    The indentation of code-blocks containing OCaml code is reduced by 2 to avoid
    changing the generated documentation. The indentation within code-blocks is
    now significative in Odoc and shows up in generated documentation.

Added

  • Added option letop-punning (ocaml-ppx#2746, @WardBrian) to control whether
    punning is used in extended binding operators.
    For example, the code let+ x = x in ... can be formatted as
    let+ x in ... when letop-punning=always. With letop-punning=never, it
    becomes let+ x = x in .... The default is preserve, which will
    only use punning when it exists in the source.
    This also applies to let%ext bindings (ocaml-ppx#2747, @WardBrian).

  • Support the unnamed functor parameters syntax in module types
    (ocaml-ppx#2755, ocaml-ppx#2759, @Julow)

    module type F = ARG -> S

    The following lines are now formatted as they are in the source file:

    module M : (_ : S) -> (_ : S) -> S = N
    module M : S -> S -> S = N
    (* The preceding two lines are no longer turned into this: *)
    module M : (_ : S) (_ : S) -> S = N

Fixed

  • Fix dropped comment in (function _ -> x (* cmt *)) (ocaml-ppx#2739, @Julow)

  • * cases-matching-exp-indent=compact does not impact begin end nodes that
    don't have a match inside. (ocaml-ppx#2742, @EmileTrotignon)

    (* before *)
    begin match () with
    | () -> begin
      f x
    end
    end
    (* after *)
    begin match () with
    | () -> begin
        f x
      end
    end
  • Ast_mapper now iterates on all locations inside of Longident.t,
    instead of only some.
    (ocaml-ppx#2737, @v-gb)

Internal

  • Added information on writing tests to CONTRIBUTING.md (#2838, @WardBrian)

Changed

  • indentation of the end keyword in a match-case is now always at least 2. (ocaml-ppx#2742, @EmileTrotignon)

    (* before *)
    begin match () with
    | () -> begin
      match () with
      | () -> ()
    end
    end
    (* after *)
    begin match () with
    | () -> begin
      match () with
      | () -> ()
    
  • * use shortcut begin end in match cases and if then else body. (ocaml-ppx#2744, @EmileTrotignon)

    (* before *)
    match () with
    | () -> begin
        match () with
        | () ->
      end
    end
    (* after *)
    match () with
    | () ->
      begin match () with
        | () ->
      end
    end
  • * Set the ocaml-version to 5.4 by default (ocaml-ppx#2750, @EmileTrotignon)
    The main difference is that the effect keyword is recognized without having
    to add ocaml-version=5.3 to the configuration.
    In exchange, code that use effect as an identifier must use
    ocaml-version=5.2.