package ppxlib
Base library and tools for ppx rewriters
Install
Dune Dependency
Authors
Maintainers
Sources
ppxlib-0.8.1.tbz
sha256=a5cb79ee83bba80304b65bc47f2985382bef89668b1b46f9ffb3734c2f2f7521
sha512=74bf4a0811f4fa73969149efc7f98620bf1c1ef7322edb8de82e02e25b61e005945887ea865b462bfb638d7d0e574706da190ca9416643f4464a89262ae7ae12
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: 23 Jul 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 (90)
-
arrayjit
< "0.5.2"
-
base_quickcheck
< "v0.13.0"
-
bistro
< "0.6.0"
- cconv-ppx
-
clangml
= "4.0.0"
-
comby
< "1.3.0"
-
dune
= "3.17.2"
-
embedded_ocaml_templates
< "0.8"
-
GT
>= "0.5.2"
- genprint
- hack_parallel
-
js_of_ocaml-ppx_deriving_json
>= "3.5.0" & < "3.5.2"
-
lablqml
< "0.7"
- learn-ocaml
- learn-ocaml-client
- logs-ppx
-
melange-json
>= "1.2.0" & < "2.0.0"
-
merlin
>= "4.7-412"
-
mlt_parser
< "v0.13.0"
-
neural_nets_lib
< "0.5.2"
-
noCanren
>= "0.3.0~alpha1"
- node_of_ocaml
- noise
-
nuscr
< "1.1.0"
-
obus
= "1.2.0"
- ocamlapi_ppx
- octez-internal-libs
- ojs_base_ppx
-
override
< "0.2.2"
- ppx-owl-opt
-
ppx_assert
< "v0.13.0"
-
ppx_base
< "v0.13.0"
-
ppx_bench
< "v0.13.0"
-
ppx_bin_prot
< "v0.13.0"
-
ppx_blob
= "0.7.2"
-
ppx_compare
< "v0.13.0"
-
ppx_compose
>= "0.2.1"
-
ppx_conv_func
< "v0.13.0"
-
ppx_csv_conv
< "v0.13.0"
-
ppx_custom_printf
< "v0.13.0"
-
ppx_deriving_encoding
< "0.2" | = "0.2.3"
-
ppx_deriving_hardcaml
< "v0.13.0"
-
ppx_deriving_hash
< "0.1.3"
-
ppx_deriving_jsoo
< "0.2"
- ppx_dream_eml
-
ppx_enumerate
< "v0.13.0"
-
ppx_expect
< "v0.13.0"
-
ppx_factory
< "0.1.0"
-
ppx_fail
< "v0.13.0"
-
ppx_fields_conv
< "v0.13.0"
- ppx_fun
-
ppx_hash
< "v0.13.0"
-
ppx_here
< "v0.13.0"
-
ppx_import
< "1.8.0"
-
ppx_inline_test
< "v0.13.0"
-
ppx_jane
< "v0.13.0"
-
ppx_js_style
< "v0.13.0"
-
ppx_jsobject_conv
< "0.8.0"
-
ppx_let
< "v0.13.0"
-
ppx_module_timer
< "v0.13.0"
- ppx_mysql
-
ppx_optcomp
< "v0.13.0"
- ppx_optint
-
ppx_optional
< "v0.13.0"
-
ppx_pipebang
< "v0.13.0"
-
ppx_protocol_conv
< "5.1.0"
-
ppx_python
< "v0.13.0"
- ppx_rapper
-
ppx_sexp_conv
< "v0.13.0"
-
ppx_sexp_message
< "v0.13.0"
-
ppx_sexp_value
< "v0.13.0"
-
ppx_show
< "0.2.0"
-
ppx_stable
< "v0.13.0"
-
ppx_string_interpolation
< "1.0.1"
- ppx_there
- ppx_type_conv
-
ppx_typerep_conv
< "v0.13.0"
-
ppx_variants_conv
< "v0.13.0"
-
ppx_xml_conv
< "v0.13.0"
-
ppx_yojson
< "1.1.0"
-
ppx_yojson_conv
< "v0.13.0"
-
pythonlib
< "v0.13.0"
-
qcow
= "0.11.0"
- res_tailwindcss
- speed
-
spin
>= "0.8.0"
- stdint-literals
- stk_ppx
-
toplevel_expect_test
< "v0.13.0"
- validate
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page