package ppx_here
All checked builds passInstall
dune-project
Dependency
Authors
Maintainers
Sources
sha256=27ac69db34a5ff0efbf6e3c52d52dda46d1e5d5db4d14fb4d8c20370b932a913
Description
Part of the Jane Street's PPX rewriters collection.
Added to opam-repository:
README
ppx_here
A ppx rewriter that defines an extension node whose value is its source position.
Syntax
ppx_here rewrites the extension [%here] in expressions, by replacing it by a value of type Source_code_position.t (i.e. Lexing.position) corresponding to the current position. It respects line number directives.
For instance:
let _ =
print_endline [%here].Lexing.pos_fnamebecomes:
let _ =
print_endline
{
Lexing.pos_fname = ppx/ppx_here/test/test.ml";
pos_lnum = 2;
pos_cnum = 26;
pos_bol = 8;
}.Lexing.pos_fnameUsage
This is normally used so exceptions can contain better positions. An example is Core.Option.value_exn, which takes an optional position so that if you have a stack trace, you can get still the origin of the exception.
It can also be used in cases where stack traces are useless (for instance in monads with a complicated control flow).
Command line flag
If the flag -dirname <dir> is given, relative filenames are made relative to <dir>. <dir> can be a relative path.
<dir> can be chosen as the path from the root of the repository to the directory of the source, to make filenames unique within the repository (which avoids ambiguities as there can be many files called server.ml, common.ml or config.ml).
Dev Dependencies
None
Optional Dependencies
None
Used by (33)
-
arrayjit
>= "0.5.2" -
bonsai
>= "v0.17.0" -
cmdlang-to-base
< "0.0.10" -
cohttp-eio
>= "6.0.0~beta2" - colibri2
-
conduit-async
>= "5.1.0" -
crs
< "0.0.20260307" - dap
- dunolint
-
dunolint-lib
< "0.0.20250804" -
gopcaml-mode-merlin
< "0.0.6" - h1_parser
- http
-
neural_nets_lib
>= "0.5.2" -
nuscr
>= "2.1.0" -
obeam
>= "0.1.0" -
pa_ppx
>= "0.14" -
ppx_assert
>= "v0.17.0" -
ppx_bap
< "v0.14.0" -
ppx_bin_prot
>= "v0.17.0" -
ppx_css
>= "v0.17.0" -
ppx_expect
>= "v0.17.0" -
ppx_jane
>= "v0.17.0" -
ppx_let
>= "v0.17.0" -
ppx_log
>= "v0.17.0" - ppx_quick_test
-
ppx_sexp_message
>= "v0.17.0" -
ppx_sexp_value
>= "v0.17.0" - timmy
-
timmy-jsoo
>= "1.1.5" - timmy-lwt
-
toplevel_backend
>= "v0.17.0" -
volgo-base
< "0.0.22"
Conflicts
None
Build status
Results of building ppx_here with each compiler on check.ci.ocaml.org, run of against opam-repository 7cdc698. All results for this package.
Each result links to its build log. To keep crawlers from overloading the site, build logs require a GitHub sign-in (see ocurrent/opam-health-check). On your first log, GitHub asks you to “Authorize opam-health-check”, the OCurrent app that runs these checks; it sees only your public profile, not your repositories. The sign-in lasts 30 days.
| Version | OCaml 4.11 | OCaml 4.14 | OCaml 5.2 | OCaml 5.4 | OCaml 5.5 |
|---|---|---|---|---|---|
| v0.17.0 (this version) | n/a | n/a | good | good | good |
| v0.16.0 | n/a | good | good | good | good |
| v0.15.0 | good | good | good | good | good |
- good Package successfully built
- partial One of the dependencies failed to build
- bad Package failed to build
- n/a Package is not available in this environment
- internal Internal failure