package ppxlib
Base library and tools for ppx rewriters
Install
Dune Dependency
Authors
Maintainers
Sources
0.7.0.tar.gz
sha256=278c4dfed19ff3f21e65097e66ce154f47f1bf82098fc494d80536509cfebcd7
md5=8ecc9f9c42245334be543f77900bc1b9
Description
A comprehensive toolbox for ppx development. It features:
- a OCaml AST / parser / pretty-printer snapshot,to create a full frontend independent of the version of OCaml;
- a library for library for ppx rewriters in general, and type-driven code generators in particular;
- a feature-full driver for OCaml AST transformers;
- a quotation mechanism allowing to write values representing the OCaml AST in the OCaml syntax;
- a generator of open recursion classes from type definitions.
Published: 28 May 2019
README
Ppxlib - Meta-programming for OCaml
Overview
The ppxlib project provides the basis for the ppx system, which is currently the officially supported method for meta-programming in OCaml. It offers a principled way to generate code at compile time in OCaml projects.
Ppxlib comes with a user manual aimed at both users and authors of ppx rewriters.
History
This repository was created by merging several older projects. See the history for more details.
Dependencies (7)
-
stdio
>= "v0.11.0"
-
ppx_derivers
>= "1.0"
-
ocaml-migrate-parsetree
>= "1.3.1" & < "2.0.0"
-
ocaml-compiler-libs
>= "v0.11.0"
- dune
-
base
>= "v0.11.0"
-
ocaml
>= "4.04.1" & < "4.10"
Dev Dependencies (1)
-
ocamlfind
with-test
Used by (99)
- arrayjit
-
base_quickcheck
< "v0.13.0"
-
bistro
= "0.5.0"
- cconv-ppx
-
clangml
= "4.0.0"
-
comby
< "1.3.0"
-
core
>= "v0.11.1" & < "v0.12.0"
-
elpi
= "1.11.0"
-
embedded_ocaml_templates
< "0.7"
-
fieldslib
= "v0.11.0"
-
frenetic
= "5.0.3"
-
GT
>= "0.5.2"
- genprint
- hack_parallel
-
js_of_ocaml-ppx_deriving_json
>= "3.5.0" & < "3.5.2"
-
lablqml
>= "0.6" & < "0.7"
-
learn-ocaml
>= "0.13.0"
-
learn-ocaml-client
>= "0.13.0"
- let-if
- logs-ppx
-
melange-json
>= "1.2.0"
-
merlin
>= "4.7-412"
-
mlt_parser
= "v0.12.0"
- neural_nets_lib
-
noCanren
>= "0.3.0~alpha1"
- node_of_ocaml
- noise
-
OCanren-ppx
< "0.2.0"
-
obus
= "1.2.0"
- ocamlapi_ppx
- octez-internal-libs
- ojs_base_ppx
-
override
< "0.2.2"
-
parsexp_io
= "v0.11.0"
-
pattern
< "0.1.1"
- ppx-owl-opt
-
ppx_assert
>= "v0.11.0" & < "v0.13.0"
-
ppx_base
>= "v0.11.0" & < "v0.13.0"
-
ppx_bench
>= "v0.11.0" & < "v0.13.0"
-
ppx_bin_prot
= "v0.11.1" | = "v0.12.1"
-
ppx_blob
= "0.7.2"
- ppx_bsx
-
ppx_compare
>= "v0.11.1" & < "v0.13.0"
-
ppx_compose
>= "0.2.1"
-
ppx_conv_func
>= "v0.11.0" & < "v0.13.0"
-
ppx_csv_conv
>= "v0.11.1" & < "v0.13.0"
-
ppx_custom_printf
>= "v0.11.0" & < "v0.13.0"
-
ppx_deriving_encoding
< "0.2" | = "0.2.3"
-
ppx_deriving_hardcaml
= "v0.12.0"
- ppx_deriving_hash
-
ppx_deriving_jsoo
< "0.2"
-
ppx_deriving_rpc
>= "6.0.0" & < "7.1.0"
- ppx_dream_eml
- ppx_enum
-
ppx_enumerate
>= "v0.11.1" & < "v0.13.0"
-
ppx_expect
>= "v0.11.0" & < "v0.13.0"
-
ppx_factory
< "0.1.0"
-
ppx_fail
>= "v0.11.0" & < "v0.13.0"
-
ppx_fields_conv
>= "v0.11.0" & < "v0.13.0"
-
ppx_fun
>= "0.0.9"
-
ppx_hash
>= "v0.11.1" & < "v0.13.0"
-
ppx_here
>= "v0.11.0" & < "v0.13.0"
-
ppx_import
>= "1.5-3-gbd627d5" & < "1.8.0"
-
ppx_inline_test
>= "v0.11.0" & < "v0.13.0"
-
ppx_jane
>= "v0.11.0" & < "v0.13.0"
-
ppx_js_style
>= "v0.11.0" & < "v0.13.0"
-
ppx_jsobject_conv
>= "0.6.0" & < "0.8.0"
-
ppx_let
>= "v0.11.0" & < "v0.13.0"
-
ppx_module_timer
< "v0.13.0"
-
ppx_mysql
>= "1.1"
-
ppx_optcomp
>= "v0.11.0" & < "v0.13.0"
- ppx_optint
-
ppx_optional
>= "v0.11.0" & < "v0.13.0"
-
ppx_pipebang
>= "v0.11.0" & < "v0.13.0"
-
ppx_protocol_conv
>= "3.1.0" & < "5.1.0"
-
ppx_python
< "v0.13.0"
- ppx_rapper
-
ppx_relit
>= "0.2.0"
-
ppx_sexp_conv
>= "v0.11.2" & < "v0.13.0"
-
ppx_sexp_message
>= "v0.11.0" & < "v0.13.0"
-
ppx_sexp_value
>= "v0.11.0" & < "v0.13.0"
-
ppx_stable
< "v0.13.0"
-
ppx_string_interpolation
< "1.0.1"
- ppx_there
-
ppx_type_conv
>= "v0.11.0"
-
ppx_typerep_conv
>= "v0.11.1" & < "v0.13.0"
-
ppx_variants_conv
>= "v0.11.1" & < "v0.13.0"
-
ppx_xml_conv
>= "v0.11.0" & < "v0.13.0"
-
ppx_yojson
< "1.1.0"
-
ppx_yojson_conv
< "v0.13.0"
-
pythonlib
< "v0.13.0"
-
qcow
>= "0.11.0"
-
relit_helper
>= "0.2.0"
- res_tailwindcss
- speed
-
spin
>= "0.8.0"
- stdint-literals
-
toplevel_expect_test
>= "v0.12.1" & < "v0.13.0"
-
variantslib
= "v0.11.0"
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page