package ppxlib
Base library and tools for ppx rewriters
Install
Dune Dependency
Authors
Maintainers
Sources
0.12.0.tar.gz
sha256=6b562c9b3b9350777318729921f890850b385c469db60769aafd9371998a2c42
sha512=2372a7a53d857389978e617c95183289547d53caa5e83a7d867cab347b114b719667bd09eaf2e2334085ef92691a99b42871f6410ffb2977b0b8724014c80a70
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: 07 Jan 2020
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"
- arrayjit
-
base_quickcheck
>= "v0.13.0" & < "v0.14.1"
-
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"
-
hardcaml
= "v0.14.0"
-
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" & < "v0.14.1"
- 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_accessor
= "v0.14.1"
-
ppx_assert
>= "v0.13.0" & < "v0.15.0"
-
ppx_base
>= "v0.13.0" & < "v0.15.0"
-
ppx_bench
>= "v0.13.0" & < "v0.14.1"
-
ppx_bin_prot
>= "v0.13.0" & < "v0.15.0"
-
ppx_blob
>= "0.7.2"
-
ppx_cold
< "v0.15.0"
-
ppx_compare
>= "v0.13.0" & < "v0.15.0"
-
ppx_compose
>= "0.2.1"
-
ppx_const
= "2.0"
-
ppx_conv_func
>= "v0.13.0" & < "v0.15.0"
-
ppx_csv_conv
>= "v0.13.0" & < "v0.15.0"
-
ppx_custom_printf
>= "v0.13.0" & < "v0.14.1"
-
ppx_defer
>= "0.5.0"
-
ppx_deriving
= "5.0"
-
ppx_deriving_encoding
< "0.2" | = "0.2.3"
-
ppx_deriving_hardcaml
>= "v0.13.0" & < "v0.15.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" & < "v0.15.0"
-
ppx_expect
>= "v0.13.0" & < "v0.14.1"
-
ppx_factory
>= "0.1.0" & < "0.2.0"
-
ppx_fail
>= "v0.13.0"
-
ppx_fields_conv
>= "v0.13.0" & < "v0.14.1"
-
ppx_fixed_literal
< "v0.15.0"
-
ppx_fun
>= "0.0.9"
-
ppx_getenv
= "2.0"
-
ppx_hash
>= "v0.13.0" & < "v0.15.0"
-
ppx_here
>= "v0.13.0" & < "v0.15.0"
-
ppx_import
>= "1.7.0" & < "1.8.0"
-
ppx_inline_test
>= "v0.13.0" & < "v0.14.1"
-
ppx_irmin
>= "2.2.0" & < "2.4.0" | >= "3.0.0"
-
ppx_jane
>= "v0.13.0" & < "v0.15.0"
-
ppx_js_style
>= "v0.13.0" & < "v0.15.0"
-
ppx_jsobject_conv
= "0.8.0"
-
ppx_let
>= "v0.13.0" & < "v0.15.0"
-
ppx_log
< "v0.15.0"
- ppx_make
-
ppx_module_timer
>= "v0.13.0" & < "v0.15.0"
- ppx_monad
-
ppx_mysql
>= "1.1.2"
-
ppx_optcomp
>= "v0.13.0" & < "v0.14.1"
- ppx_optint
-
ppx_optional
>= "v0.13.0" & < "v0.15.0"
-
ppx_pattern_bind
>= "v0.13.1" & < "v0.15.0"
-
ppx_pipebang
>= "v0.13.0" & < "v0.15.0"
-
ppx_protocol_conv
>= "5.1.0"
-
ppx_python
>= "v0.13.0" & < "v0.15.0"
- ppx_rapper
-
ppx_regexp
>= "0.5.0"
- ppx_repr
-
ppx_sexp_conv
>= "v0.13.0" & < "v0.14.1"
-
ppx_sexp_message
>= "v0.13.0" & < "v0.14.1"
-
ppx_sexp_value
>= "v0.13.0" & < "v0.15.0"
-
ppx_show
>= "0.2.0"
-
ppx_stable
>= "v0.13.0" & < "v0.14.1"
-
ppx_string
< "v0.15.0"
-
ppx_string_interpolation
< "1.0.1"
- ppx_subliner
-
ppx_typerep_conv
>= "v0.13.0" & < "v0.14.1"
-
ppx_variants_conv
>= "v0.13.0" & < "v0.14.1"
- ppx_viewpattern
-
ppx_xml_conv
>= "v0.13.0" & < "v0.15.0"
-
ppx_yojson
= "1.0.0"
-
ppx_yojson_conv
>= "v0.13.0" & < "v0.15.0"
-
qcow
>= "0.11.0"
- repr-fuzz
- res_tailwindcss
-
scaml
< "1.2.0"
- speed
-
spin
>= "0.8.0"
- stdint-literals
- stk_ppx
-
toplevel_expect_test
>= "v0.13.0" & < "v0.14.1"
-
visitors
= "20210127"
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page