package ppxlib
Base library and tools for ppx rewriters
Install
Dune Dependency
Authors
Maintainers
Sources
ppxlib-0.10.0.tbz
sha256=588e85c759688742ae0bd2cb1a53f0f555a76d8810ad9a9dbb026a076a0c10af
sha512=8e3e9399b260e16fb537cdd58706875933ecbf28e3bcddc1bf3e607a33307eb2191a7d3c315e8e4b51ec6f548779a0fad118826f709de65dddd3b2510f3e4bcc
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: 29 Nov 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
>= "1.11"
-
base
>= "v0.11.0"
-
ocaml
>= "4.04.1" & < "4.10.0"
- arrayjit
-
base_quickcheck
= "v0.13.0"
-
bistro
= "0.5.0"
-
clangml
= "4.0.1"
-
comby
< "1.3.0"
-
elpi
= "1.11.0"
-
embedded_ocaml_templates
< "0.8"
-
GT
< "0.4.0" | >= "0.5.2"
-
gen_js_api
>= "1.0.6" & < "1.0.8"
-
genprint
>= "0.3"
-
hack_parallel
>= "1.0.1"
-
js_of_ocaml-ppx_deriving_json
>= "3.5.2" & < "3.7.1"
-
learn-ocaml
>= "0.13.0"
-
learn-ocaml-client
>= "0.13.0"
-
let-if
>= "0.2.0"
- logs-ppx
-
melange-json
>= "1.2.0"
-
merlin
>= "4.7-412"
-
mlt_parser
= "v0.13.0"
- neural_nets_lib
-
noCanren
>= "0.3.0~alpha1"
- node_of_ocaml
-
nuscr
= "1.1.0"
-
OCanren-ppx
< "0.2.0"
-
obus
>= "1.2.1" & < "1.2.5"
- octez-internal-libs
- ojs_base_ppx
-
override
= "0.2.2"
- pacomb
-
pattern
= "0.1.1"
- 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_cold
< "v0.14.0"
-
ppx_compare
= "v0.13.0"
-
ppx_compose
>= "0.2.1"
-
ppx_const
= "2.0"
-
ppx_conv_func
= "v0.13.0"
-
ppx_csv_conv
= "v0.13.0"
-
ppx_custom_printf
= "v0.13.0"
-
ppx_deriving
= "5.0"
-
ppx_deriving_encoding
< "0.2" | = "0.2.3"
-
ppx_deriving_hardcaml
= "v0.13.0"
- ppx_deriving_hash
-
ppx_deriving_jsoo
< "0.2"
- ppx_deriving_popper
-
ppx_deriving_rpc
>= "7.1.0" & < "8.1.0"
-
ppx_deriving_yojson
= "3.6.0"
- ppx_dream_eml
-
ppx_enumerate
= "v0.13.0"
-
ppx_expect
>= "v0.13.0" & < "v0.14.0"
-
ppx_factory
>= "0.1.0" & < "0.2.0"
-
ppx_fail
= "v0.13.0"
-
ppx_fields_conv
= "v0.13.0"
-
ppx_fun
>= "0.0.9"
-
ppx_getenv
= "2.0"
-
ppx_hash
= "v0.13.0"
-
ppx_here
= "v0.13.0"
-
ppx_import
>= "1.7.0" & < "1.8.0"
-
ppx_inline_test
>= "v0.13.0" & < "v0.14.0"
-
ppx_jane
= "v0.13.0"
-
ppx_js_style
= "v0.13.0"
-
ppx_jsobject_conv
= "0.8.0"
-
ppx_let
= "v0.13.0"
- ppx_make
-
ppx_module_timer
= "v0.13.0"
- ppx_monad
-
ppx_mysql
>= "1.1.2"
-
ppx_optcomp
= "v0.13.0"
- ppx_optint
-
ppx_optional
= "v0.13.0"
-
ppx_pattern_bind
= "v0.13.1"
-
ppx_pipebang
= "v0.13.0"
-
ppx_protocol_conv
>= "5.1.0"
-
ppx_python
= "v0.13.0"
- ppx_rapper
-
ppx_regexp
>= "0.5.0"
-
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_subliner
-
ppx_typerep_conv
= "v0.13.0"
-
ppx_variants_conv
= "v0.13.0"
- ppx_viewpattern
-
ppx_xml_conv
= "v0.13.0"
-
ppx_yojson
= "1.0.0"
-
ppx_yojson_conv
= "v0.13.0"
-
qcow
>= "0.11.0"
- res_tailwindcss
- speed
-
spin
>= "0.8.0"
- stdint-literals
- stk_ppx
-
toplevel_expect_test
= "v0.13.0"
-
visitors
= "20210127"
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page