-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[@@deriving_inline]
requires deriver to be present during non-lint build
#342
Comments
I think It's possible there should be a flag to tell A pull request adding some straightforward flag like that would be welcome, certainly. |
I wanted to comment on this issue because I found myself with a use case quite similar to what is described by @sim642 here (contemplating how to remove compile time dependency to ppx-es in some projects, outside of dev-mode). If If work in this area is still welcome, I'd be interested in learning more. I think I could consider allocating time on this, perhaps contributing to the manual, and/or try adding support for extending what deriving_inline can be used for. |
@NathanReb thanks a lot for looking into #338 I'm highlighting this issue as well, as I believe this may be helpful additional context. To quote a previous comment from this conversation:
Perhaps that would be part of the puzzle if we think the use case of using Here I am sharing why I'd fine this useful:
|
I think a flag for the driver would be a good start here. I'll get up to date with how dune invokes the driver when linting to see what we can do here. |
The documentation states the following about
[@@deriving_inline]
:ppxlib/doc/ppx-for-end-users.rst
Lines 77 to 83 in 9360b0c
However, this appears not to be true, as I observed by doing the following:
[@@deriving_inline yaml][@@@end]
after a type declaration.(lint (pps ppx_deriving_yaml))
into the dune file.dune build @lint --auto-promote
, which did promote the inline implementations.dune build
, which fails with the following:It appears to me that ppxlib is still trying to run the deriver for
[@@deriving_inline]
when there's already an implementation present (which I guess makes sense for round-trip checking, #338), but does so even when that deriver was only active for linting and not the normal build.This defeats the claim of being able to drop dependencies for ppx-s, since for the normal build to succeed, I still need that deriver also in dune's
(preprocess (pps ...))
.Or maybe I'm trying to use
[@@deriving_inline]
in an unusual way: to drop some deriver dependencies, but not all (so still have others present). The motivation for doing that is to use an unreleased version of the deriver (using opam pin) in a package that is to be released on opam (where it cannot have pins) without being forced to wait for the ppx's release.The text was updated successfully, but these errors were encountered: