Releases: ocaml-ppx/ppxlib
0.34.0
CHANGES:
5.3 support
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 for
details.
-
Add initial OCaml 5.3 support (#487, @NathanReb, @hhugo, @nojb)
-
Initialise OCaml 5.3's lexer with the
keywords
setting fromOCAMLPARAM
or
the new-keywords
driver's CLI option to allow the standalone ppx driver to
process old packages usingeffect
as an identifier
(#535, @dra27, @NathanReb)
Other changes
-
Add
Pprintast.binding
,longident
andpayload
(#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
appxlib-pp-ast
executable in a new separateppxlib-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
inDeriving.add
(#538, @patricoferris)
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 toAst_builder.{e,p}list
, so
they can build ASTs likea :: b :: c
instead of only[ a; b ]
.
(#498, #502, @v-gb, @NathanReb) -
Fix
Longident.parse
so it also handles indexing operators such as
.!()
,.%(;..)<-
, orVec.(.%())
(#494, @Octachron) -
Add a
special_function'
variant which directly takes aLongident.t
argument to avoid the issue thatLongident.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)
0.32.1
0.32.0
CHANGES:
-
Add an optional
embed_errors
argument toContext_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 ignoreloc_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
withStdlib
. (#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)
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 toDeriving.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)
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) -
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)
0.29.1
0.29.0
CHANGES:
-
Remove
File_path
exports. (#381, @ceastlund) -
Add
Ppxlib.Expansion_helpers
with name mangling utilities from ppx_deriving (#370, @sim642) -
For benchmarking purposes, add a new
ppxlib-bench
package, in whichppx_sexp_conv
is vendored. This breaks users who want to vendor bothppxlib
andppx_sexp_conv
and is fixed inppxlib.0.29.1
(#376)
0.28.0
CHANGES:
-
Make
esequence
right-associative. (#366, @ceastlund) -
Deprecate unused attributes in
Deriving.Generator
(#368, @sim642) -
Remove a pattern match on mutable state in a function argument. (#362, @ceastlund)
-
Add code-path manipulation attributes. (#352, @ceastlund)
-
Update context-free rules to collect expansion errors generated by ppxlib and
propagate them to top level without failing. (#358 and #361, @ceastlund)