Skip to content

Conversation

@NathanReb
Copy link
Collaborator

This will help maintainers of ppx-es such as ppx_import or some of our non ppx users I expect as longidents are also used when interacting with the typechecker. This should partially save them the hassle of writing compatibility layers to support 5.4 and above.

@NathanReb
Copy link
Collaborator Author

Hmm I was hoping I wouldn't have to deal with this so quickly and kind of put it under the rug but seems like I will have to deal with it!

Nathan Rebours added 3 commits October 9, 2025 15:55
Using the one from the Migrate_x modules lead to circular dependencies

Signed-off-by: Nathan Rebours <[email protected]>
@NathanReb NathanReb force-pushed the longident-to-compiler branch from 2e67b8d to d903dfc Compare October 9, 2025 13:56
@NathanReb NathanReb merged commit ed044d7 into ocaml-ppx:main Oct 9, 2025
6 of 8 checks passed
NathanReb pushed a commit to NathanReb/opam-repository that referenced this pull request Oct 10, 2025
CHANGES:

### 5.4 Support

- Add initial OCaml 5.4 support (ocaml-ppx/ppxlib#570, @patricoferris, @NathanReb)

### Other Changes

- Add `Longident.to/of_compiler` to astlib to simplify maintenance
  of ppx-es that interacts with other parts of the compiler-libs such
  as the type checker. (ocaml-ppx/ppxlib#603, @NathanReb)

- Fix a bug where some infix operators such as `mod` would be printed as
  raw identifiers by our `Pprintast`. (ocaml-ppx/ppxlib#601, @NathanReb)

- Fix 5.2 -> 5.3 migration of constants. Those used to always have a `none`
  location which can lead to unhelpful error messages.
  (ocaml-ppx/ppxlib#569, @NathanReb)

- Add a new context-free rule type that replaces AST nodes that have the registered
  attributes attached to them. (ocaml-ppx/ppxlib#574, @Skepfyr)

- Allow users to derive code from module bindings and module declarations
  (ocaml-ppx/ppxlib#576, @patricoferris)

- Expose `Ppxlib.Location.Error.t = Astlib.Location.Error.t` (ocaml-ppx/ppxlib#593, @ceastlund)

- Add `@@@ppxlib.inline.end`, deprecate `@@@deriving.end`. (ocaml-ppx/ppxlib#594, @ceastlund)

- Clean the AST of any ppxlib migration attributes whenever printing using
  Pretty_print mode and the use_compiler_pp flag. (ocaml-ppx/ppxlib#598, @patricoferris)

- Add custom printer support to `pp_ast` functions via the `?printer` config
  parameter. (ocaml-ppx/ppxlib#526, @pedrobslisboa)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant