Tags: ocaml-ppx/ppxlib
Tags
Release 0.36.0 CHANGES: - Change `Location.none` to match the compiler's `Location.none` as of OCaml 4.08. This fixes a bug in `loc_of_attribute` (#540, @ncik-roberts, @patricoferris) - Bump ppxlib's AST to 5.2.0 (#514, @patricoferris) - Add the `[@@@expand_inline]` transformation and support for floating attribute context free transformations. (#560, @jaymody) - Add a `-raise-embedded-errors` flag to the driver. Setting this flag raises the first `ocaml.error` embedded in the final AST. - Export `Ast_pattern.fail`. (#563, @ceastlund) - Make `Ast_traverse.sexp_of` more concise, and add a test. (#561, @ceastlund)
Release 0.35.0 CHANGES: - Allow use of effect syntax in preprocessed files without causing migration failures. (#552, @hhugo, @NathanReb) - Remove support for compilers older than 4.08 (#556, @NathanReb) - Add a `--use-compiler-pp` flag to the standalone driver. This flag can be set when the driver outputs source code to make it use the compiler's `Pprintast` instead of ppxlib's. (#555, @NathanReb)
Release 0.34.0 CHANGES: 5.3 support is being added gradually over the course of its development. This section should be updated with each relevant PR. Note to maintainers: until 5.3 support is officially released, this section should be excluded from the release, see [RELEASING.md](RELEASING.md) for details. - Add initial OCaml 5.3 support (#487, @NathanReb, @hhugo, @nojb) - Initialise OCaml 5.3's lexer with the `keywords` setting from `OCAMLPARAM` or the new `-keywords` driver's CLI option to allow the standalone ppx driver to process old packages using `effect` as an identifier (#535, @dra27, @NathanReb) - Add `Pprintast.binding`, `longident` and `payload` (#542, @mattiasdrp) - Fix `deriving_inline` round-trip check so that it works with 5.01 <-> 5.02 migrations (#519, @NathanReb) - Add ppxlib's AST pretty-printing utilities in `Ppxlib.Pp_ast` and a `ppxlib-pp-ast` executable in a new separate `ppxlib-tools` package (#517, #525, #537, @NathanReb) - Change `-dparsetree` from a sexp output to a pretty printed AST, closer to what the compiler's `-dparsetree` is. (#530, @NathanReb) - Add Parsetree documentation comments to `Ast_builder` functions (#518, @patricoferris) - Support class type declarations in derivers with the new, optional arguments `{str,sig}_class_type_decl` in `Deriving.add` (#538, @patricoferris)
Release 0.33.0 CHANGES: - Fix a bug where `Code_path.main_module_name` would not properly remove extensions from the filename and therefore return an invalid module name. (#512, @NathanReb) - Add `-unused-type-warnings` flag to the driver to allow users to disable only the generation of warning 34 silencing structure items when using `[@@deriving ...]` on type declarations. (#511, @mbarbin, @NathanReb) - Make `-unused-code-warnings` flag to the driver also controls the generation of warning 34 silencing structure items when using `[@@deriving ...]` on type declarations. (#510, @mbarbin, @NathanReb) - Driver: Add `-unused-code-warnings=force` command-line flag argument. (#490, @mbarbin) - new functions `Ast_builder.{e,p}list_tail` that take an extra tail expression/pattern argument parameter compared to `Ast_builder.{e,p}list`, so they can build ASTs like `a :: b :: c` instead of only `[ a; b ]`. (#498, #502, @v-gb, @NathanReb) - Fix `Longident.parse` so it also handles indexing operators such as `.!()`, `.%(;..)<-`, or `Vec.(.%())` (#494, @Octachron) - Add a `special_function'` variant which directly takes a `Longident.t` argument to avoid the issue that `Longident.t` cover distinct syntaxic classes which cannot be easily parsed by a common parser (#496, @Octachron). - Keep location ranges consistent when migrating `Pexp_function` nodes from 5.2+ to older versions (#504, @jchavarri) - Fix `-locations-check` behaviour so it is no longer required to pass `-check` as well to enable location checks. (#506, @NathanReb)
Release 0.32.0 CHANGES: - Add an optional `embed_errors` argument to `Context_free.map_top_down` that controls how to deal with exceptions thrown by context-free rules. (#468, @NathanReb) - Fix `Longident.parse` so it properly handles unparenthesized dotted operators such as `+.` or `*.`. (#111, @rgrinberg, @NathanReb) - raising an exception does no longer cancel the whole context free phase(#453, @Burnleydev1) - Sort embedded errors that are appended to the AST by location so the compiler reports the one closer to the beginning of the file first. (#463, @NathanReb) - Update `Attribute.get` to ignore `loc_ghost`. (#460, @ceastlund) - Add API to manipulate attributes that are used as flags (#408, @dianaoigo) - Update changelog to use ISO 8061 date format: YYYY-MM-DD. (#445, @ceastlund) - Replace `Caml` with `Stdlib`. (#427, @ceastlund) - When a transformation raises, the last valid AST is used as input to the upcoming transformations. All such errors are collected and appended as extension nodes to the final AST (#447, @Burnleydev1) - Fix a small mistake in the man pages: Embededding errors is done by default with `-as-pp`, not with `-dump-ast` (#464, @pitag-ha) - Set appropriate binary mode when writing to `stdout` especially for Windows compatibility. (#466, @jonahbeckford)
Release 0.31.0 CHANGES: - Fix support for OCaml 5.1: migrated code preserves generative functor warnings, without creating more. Locations are better preserved. (#432, @pitag-ha, @panglesd) - Driver: Add `-unused-code-warnings` command-line flag. (#444, @ceastlund) - Add `?warning` flag to `Deriving.Generator.make`. (#440, @jacksonzou123 via @ceastlund) - Restore the "path_arg" functionality in the V3 API (#431, @ELLIOTTCABLE) - Expose migration/copying/etc. functions for all AST types needed by `Pprintast` (#454, @antalsz) - Preserve quoted attributes on antiquotes in metaquot (#441, @ncik-roberts) - Attribute namespaces: Fix semantics of reserving multi-component namespaces (#443, @ncik-roberts)
Release 0.30.0 CHANGES: - Adopt the OCaml Code of Conduct on the repo (#426, @pitag-ha) - Clean up misleading attribute hints when declared for proper context. (#425, @ceastlund) - Ast_pattern now has ebool, pbool helper, and a new map.(#402, @Burnleydev1) - multiple errors are now reported in `metaquot`. (#397, @Burnleydev1) - Add `Attribute.declare_with_attr_loc` (#396, @dvulakh) - Add "ns" and "res" as reserved namespaces(#388, @davesnx) - Make quoter `let` binding non-recursive (#401, @sim642) - Fix failure of 'lift_map_with_context' in traverse by compile-time evaluation of 'fst' and 'snd' (#390, @smuenzel) - Driver: Bias the mapping from magic to version towards the current version, as it is usually the common case and it helps when magic numbers are ambiguous (such as on development versions) (#409, @shym) - Remove unnecessary test dependencies towards base and stdio (#421, @kit-ty-kate) - Update description to reflect that `ppxlib` contains more than a library (#422, @pitag-ha) - Add support for OCaml 5.1, excluding OCaml `5.1.0~alpha1` (#428, @shym, @Octachron , @pitag-ha, @panglesd) - Driver: Fix `-locations-check` option for coercions with ground (#428, @Octachron)
PreviousNext