package ppxlib

  1. Overview
  2. Docs
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)

  1. stdio >= "v0.11.0"
  2. ppx_derivers >= "1.0"
  3. ocaml-migrate-parsetree >= "1.3.1" & < "2.0.0"
  4. ocaml-compiler-libs >= "v0.11.0"
  5. dune >= "1.11"
  6. base >= "v0.11.0"
  7. ocaml >= "4.04.1" & < "4.10.0"

Dev Dependencies (2)

  1. cinaps with-test & >= "v0.12.1"
  2. ocamlfind with-test

Used by (97)

  1. arrayjit
  2. base_quickcheck = "v0.13.0"
  3. bistro = "0.5.0"
  4. clangml = "4.0.1"
  5. comby < "1.3.0"
  6. elpi = "1.11.0"
  7. embedded_ocaml_templates < "0.8"
  8. GT < "0.4.0" | >= "0.5.2"
  9. gen_js_api >= "1.0.6" & < "1.0.8"
  10. genprint >= "0.3"
  11. hack_parallel >= "1.0.1"
  12. js_of_ocaml-ppx_deriving_json >= "3.5.2" & < "3.7.1"
  13. learn-ocaml >= "0.13.0"
  14. learn-ocaml-client >= "0.13.0"
  15. let-if >= "0.2.0"
  16. logs-ppx
  17. merlin >= "4.7-412"
  18. mlt_parser = "v0.13.0"
  19. neural_nets_lib
  20. noCanren >= "0.3.0~alpha1"
  21. node_of_ocaml
  22. nuscr = "1.1.0"
  23. OCanren-ppx < "0.2.0"
  24. obus >= "1.2.1" & < "1.2.5"
  25. ojs_base_ppx
  26. override = "0.2.2"
  27. pacomb
  28. pattern = "0.1.1"
  29. ppx-owl-opt
  30. ppx_assert = "v0.13.0"
  31. ppx_base = "v0.13.0"
  32. ppx_bench = "v0.13.0"
  33. ppx_bin_prot = "v0.13.0"
  34. ppx_blob >= "0.7.2"
  35. ppx_cold < "v0.14.0"
  36. ppx_compare = "v0.13.0"
  37. ppx_compose >= "0.2.1"
  38. ppx_const = "2.0"
  39. ppx_conv_func = "v0.13.0"
  40. ppx_csv_conv = "v0.13.0"
  41. ppx_custom_printf = "v0.13.0"
  42. ppx_deriving = "5.0"
  43. ppx_deriving_encoding < "0.2" | = "0.2.3"
  44. ppx_deriving_hardcaml = "v0.13.0"
  45. ppx_deriving_hash
  46. ppx_deriving_jsoo < "0.2"
  47. ppx_deriving_popper
  48. ppx_deriving_rpc >= "7.1.0" & < "8.1.0"
  49. ppx_deriving_yojson = "3.6.0"
  50. ppx_dream_eml
  51. ppx_enumerate = "v0.13.0"
  52. ppx_expect >= "v0.13.0" & < "v0.14.0"
  53. ppx_factory >= "0.1.0" & < "0.2.0"
  54. ppx_fail = "v0.13.0"
  55. ppx_fields_conv = "v0.13.0"
  56. ppx_fun >= "0.0.9"
  57. ppx_getenv = "2.0"
  58. ppx_hash = "v0.13.0"
  59. ppx_here = "v0.13.0"
  60. ppx_import >= "1.7.0" & < "1.8.0"
  61. ppx_inline_test >= "v0.13.0" & < "v0.14.0"
  62. ppx_jane = "v0.13.0"
  63. ppx_js_style = "v0.13.0"
  64. ppx_jsobject_conv = "0.8.0"
  65. ppx_let = "v0.13.0"
  66. ppx_make
  67. ppx_module_timer = "v0.13.0"
  68. ppx_monad
  69. ppx_mysql >= "1.1.2"
  70. ppx_optcomp = "v0.13.0"
  71. ppx_optint
  72. ppx_optional = "v0.13.0"
  73. ppx_pattern_bind = "v0.13.1"
  74. ppx_pipebang = "v0.13.0"
  75. ppx_protocol_conv >= "5.1.0"
  76. ppx_python = "v0.13.0"
  77. ppx_rapper
  78. ppx_regexp >= "0.5.0"
  79. ppx_sexp_conv = "v0.13.0"
  80. ppx_sexp_message = "v0.13.0"
  81. ppx_sexp_value = "v0.13.0"
  82. ppx_show >= "0.2.0"
  83. ppx_stable = "v0.13.0"
  84. ppx_string_interpolation < "1.0.1"
  85. ppx_subliner
  86. ppx_typerep_conv = "v0.13.0"
  87. ppx_variants_conv = "v0.13.0"
  88. ppx_viewpattern
  89. ppx_xml_conv = "v0.13.0"
  90. ppx_yojson = "1.0.0"
  91. ppx_yojson_conv = "v0.13.0"
  92. qcow >= "0.11.0"
  93. res_tailwindcss
  94. spin >= "0.8.0"
  95. stdint-literals
  96. toplevel_expect_test = "v0.13.0"
  97. visitors = "20210127"

Conflicts

None