Skip to content

Expose bare minimum to manually order transformations#630

Draft
NathanReb wants to merge 1 commit intoocaml-ppx:mainfrom
NathanReb:expose-transformations
Draft

Expose bare minimum to manually order transformations#630
NathanReb wants to merge 1 commit intoocaml-ppx:mainfrom
NathanReb:expose-transformations

Conversation

@NathanReb
Copy link
Collaborator

This should allow users or dune itself to set the order of transformations.

It will only impact transformations that define global rewritings, context free rules or other special rewritings won't be impacted by this.

It's important to note that nothing actually ties the ppx's library name to the transformation name and that a single ppx may define multiple transformations so it might be hard for either dune or even ppxlib to actually order things per-ppx.

@NathanReb
Copy link
Collaborator Author

This is a first draft to attempt a fix for #628. I mostly aimed at ensuring that would work but the current version might be a bit permissive, we might end up exposing something like

val reorder_transformations : cmp: (string -> string -> int) -> unit

This should allow users or dune itself to set the order of
transformations.

It will only impact transformations that define global rewritings,
context free rules or other special rewritings won't be impacted by
this.

Signed-off-by: Nathan Rebours <[email protected]>
@NathanReb NathanReb force-pushed the expose-transformations branch from 2432902 to 72d000b Compare March 17, 2026 09:41
@NathanReb
Copy link
Collaborator Author

CC @davesnx if you want to give this a try and confirm it can be used to fix the issues you had.

We can then discuss what the best API for this is and how it can eventually be used by dune.

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