Skip to content

Releases: ocaml-ppx/ppxlib

0.27.0

14 Jun 18:49
Compare
Choose a tag to compare

CHANGES:

  • Update expansion context to leave out value name when multiple are
    defined at once. (#351, @ceastlund)

  • Add support for OCaml 5.0 (#348, @pitag-ha)

  • Add Code_path.enclosing_value (#349, @ceastlund)

  • Add Code_path.enclosing_module (#346, @ceastlund)

  • Expand code generated by ~enclose_intf and ~enclose_impl (#345, @ceastlund)

  • Add type annotations to code generated by metaquot (#344, @ceastlund)

  • Fix typo in description field of dune-project (#343, @ceastlund)

  • Fix Ast_pattern.many (#333, @nojb)

  • Fix quoter and optimize identifier quoting (#327, @sim642)

  • Driver, when run with --check: Allow toplevel_printer attributes (#340, @pitag-ha)

  • Documentation: Add a section on reporting errors by embedding extension nodes
    in the AST (#318, @panglesd)

  • Driver: In the case of ppxlib internal errors, embed those errors instead of
    raising to return a meaningful AST (#329, @panglesd)

  • API: For each function that could raise a located error, add a function that
    return a result instead (#329, @panglesd)

0.26.0

21 Mar 20:56
Compare
Choose a tag to compare

CHANGES:

0.25.0

03 Mar 11:04
Compare
Choose a tag to compare

CHANGES:

  • Added error_extensionf function to the Location module (#316, @panglesd)

  • Ast patterns: add drop and as patterns (#313 by @Kakadu, review by @pitag-ha)

  • Fixed a bug resulting in disscarded rewriters in the presence of
    instrumentations, as well as a wrong order of rewriting (#296, @panglesd)

  • Driver: Append the last valid AST to the error in case of located exception
    when embedding errors (#315, @panglesd)

0.24.0

09 Dec 17:07
Compare
Choose a tag to compare

CHANGES:

  • Add support for OCaml 4.14 (#304, @kit-ty-kate)

  • Expand nodes before applying derivers or other inline attributes based
    transformation, allowing better interactions between extensions and
    derivers (#279, #297, @NathanReb)

  • Add support for registering ppx_import as a pseudo context-free rule (#271, @NathanReb)

  • Add input_name to the Expansion_context.Extension and Expansion_context.Deriver modules (#284, @tatchi)

  • Improve gen_symbol to strip previous unique suffix before adding a new one (#285, @ceastlund)

  • Improve name_type_params_in_td to use prefixes a, b, ... instead of v_x. (#285, @ceastlund)

  • Fix a bug in type_is_recursive and really_recursive where they would
    consider a type declaration recursive if the type appeared inside an attribute
    payload (#299, @NathanReb)

0.23.0

31 Aug 13:16
Compare
Choose a tag to compare

CHANGES:

  • Drop Parser from the API (#263, @pitag-ha)

  • Location: add set_filename and Error.get_location (#247, @pitag-ha)

  • Drop dependency on OMP2 (#187, @pitag-ha)

  • Make OMP1 a conflict (#255, @kit-ty-kate)

  • Drop Syntaxerr from the public API. Doesn't affect any user in the
    ppx universe (#244, @pitag-ha)

  • Add a lower-bound constraint for Sexplib0 (#240, @pitag-ha)

  • Fix bug due to which unwanted public binaries got installed when installing
    ppxlib (#223, @pitag-ha)

  • Add Keyword.is_keyword to check if a string is an OCaml keyword
    (#227, @pitag-ha)

  • Remove Lexer.keyword_table: use Keyword.is_keyword instead
    (#227, @pitag-ha)

  • Remove Lexer from the API: it was the same as the compiler-libs
    Lexer (#228, @pitag-ha)

  • Remove the modules Ast_magic, Compiler_version, Js, Find_version,
    Convert, Extra_warnings, Location_error, Select_ast and
    Import_for_core from the API: they are meant for internal use and
    aren't used by any current downstream user in the
    ppx universe (#230, @pitag-ha)

  • Remove compiler specific helper functions from Location. They aren't used
    by any current downstream user in the
    ppx universe (#238, @pitag-ha)

  • Allow "%a" when using Location.Error.createf (#239, @mlasson)

  • Fix in Location: make raise_errorf exception equivalent to exception
    Error (#242, @pitag-ha)

  • Fix in Pprintast: correctly pretty print local type substitutions, e.g.
    type t := ... (#261, @matthewelse)

  • Add Ast_pattern.esequence, for matching on any number of sequenced
    expressions e.g. do_a (); do_b (); .... (#264, @matthewelse)

  • Expose a part of Ast_io in order to allow reading AST values from binary
    files (#270, @arozovyk)

0.22.2

23 Jun 19:24
Compare
Choose a tag to compare

CHANGES:

0.22.1

10 Jun 09:44
Compare
Choose a tag to compare

CHANGES:

0.21.1

09 Jun 17:48
Compare
Choose a tag to compare

CHANGES:

0.22.0

04 Feb 16:32
Compare
Choose a tag to compare

CHANGES:

0.21.0

22 Jan 11:34
Compare
Choose a tag to compare

CHANGES:

  • Fix ppxlib.traverse declaration and make it a deriver and not a rewriter
    (#213, @NathanReb)

  • Driver (important for bucklescript): handling binary AST's, accept any
    supported version as input; preserve that version (#205, @pitag-ha)

  • -as-ppx: take into account the -loc-filename argument (#197, @pitag-ha)

  • Add input name to expansion context (#202, @pitag-ha)

  • Add Driver.V2: give access to expansion context in whole file transformation
    callbacks of register_transformation (#202, @pitag-ha)

  • Driver: take -cookie argument into account, also when the input is a
    binary AST (@pitag-ha, #209)

  • run_as_ppx_rewriter: take into account the arguments
    -loc-filename, apply and dont-apply (#205, @pitag-ha)

  • Location.Error: add functions raise and update_loc
    (#205, @pitag-ha)