package ppxlib

  1. Overview
  2. Docs
Base library and tools for ppx rewriters

Install

Dune Dependency

Authors

Maintainers

Sources

ppxlib-0.6.0.tbz
md5=e2d129139891c135acc6d52a3fa9f731

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: 17 Apr 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.0.9" & < "2.0.0"
  4. ocaml-compiler-libs >= "v0.11.0"
  5. dune
  6. base >= "v0.11.0"
  7. ocaml >= "4.04.1" & < "4.08.0"

Dev Dependencies (1)

  1. ocamlfind with-test

Used by (88)

  1. base_quickcheck < "v0.13.0"
  2. bistro = "0.5.0"
  3. cconv-ppx
  4. clangml = "4.0.0"
  5. comby < "1.3.0"
  6. core >= "v0.11.1" & < "v0.12.0"
  7. elpi = "1.11.0"
  8. embedded_ocaml_templates < "0.7"
  9. fieldslib = "v0.11.0"
  10. frenetic = "5.0.3"
  11. GT >= "0.5.2"
  12. genprint
  13. hack_parallel
  14. js_of_ocaml-ppx_deriving_json >= "3.5.0" & < "3.5.2"
  15. lablqml >= "0.6" & < "0.7"
  16. learn-ocaml >= "0.13.0"
  17. learn-ocaml-client >= "0.13.0"
  18. let-if < "0.3.0"
  19. logs-ppx
  20. merlin >= "4.7-412"
  21. mlt_parser = "v0.12.0"
  22. noCanren >= "0.3.0~alpha1"
  23. node_of_ocaml
  24. noise
  25. OCanren-ppx < "0.2.0"
  26. obus = "1.2.0"
  27. ocamlapi_ppx
  28. ojs_base_ppx
  29. override < "0.2.2"
  30. parsexp_io = "v0.11.0"
  31. pattern < "0.1.1"
  32. ppx-owl-opt
  33. ppx_assert >= "v0.11.0" & < "v0.13.0"
  34. ppx_base >= "v0.11.0" & < "v0.13.0"
  35. ppx_bench >= "v0.11.0" & < "v0.13.0"
  36. ppx_bin_prot = "v0.11.1"
  37. ppx_blob = "0.7.2"
  38. ppx_bsx
  39. ppx_compare >= "v0.11.1" & < "v0.13.0"
  40. ppx_compose >= "0.2.1"
  41. ppx_conv_func >= "v0.11.0" & < "v0.13.0"
  42. ppx_csv_conv >= "v0.11.1" & < "v0.13.0"
  43. ppx_custom_printf >= "v0.11.0" & < "v0.12.1"
  44. ppx_deriving_encoding < "0.2" | = "0.2.3"
  45. ppx_deriving_hardcaml = "v0.12.0"
  46. ppx_deriving_hash
  47. ppx_deriving_jsoo < "0.2"
  48. ppx_deriving_rpc >= "6.0.0" & < "7.1.0"
  49. ppx_dream_eml
  50. ppx_enum
  51. ppx_enumerate >= "v0.11.1" & < "v0.13.0"
  52. ppx_expect >= "v0.11.0" & < "v0.13.0"
  53. ppx_factory < "0.1.0"
  54. ppx_fail >= "v0.11.0" & < "v0.13.0"
  55. ppx_fields_conv >= "v0.11.0" & < "v0.13.0"
  56. ppx_hash >= "v0.11.1" & < "v0.13.0"
  57. ppx_here >= "v0.11.0" & < "v0.13.0"
  58. ppx_import >= "1.5-3-gbd627d5" & < "1.8.0"
  59. ppx_inline_test >= "v0.11.0" & < "v0.13.0"
  60. ppx_jane >= "v0.11.0" & < "v0.13.0"
  61. ppx_js_style >= "v0.11.0" & < "v0.13.0"
  62. ppx_jsobject_conv >= "0.6.0" & < "0.8.0"
  63. ppx_let >= "v0.11.0" & < "v0.13.0"
  64. ppx_module_timer < "v0.13.0"
  65. ppx_mysql >= "1.1"
  66. ppx_optcomp >= "v0.11.0" & < "v0.13.0"
  67. ppx_optional >= "v0.11.0" & < "v0.13.0"
  68. ppx_pipebang >= "v0.11.0" & < "v0.13.0"
  69. ppx_protocol_conv >= "3.1.0" & < "5.1.0"
  70. ppx_rapper
  71. ppx_relit >= "0.2.0"
  72. ppx_sexp_conv >= "v0.11.2" & < "v0.13.0"
  73. ppx_sexp_message >= "v0.11.0" & < "v0.13.0"
  74. ppx_sexp_value >= "v0.11.0" & < "v0.13.0"
  75. ppx_stable < "v0.13.0"
  76. ppx_string_interpolation < "1.0.1"
  77. ppx_there
  78. ppx_type_conv >= "v0.11.0"
  79. ppx_typerep_conv >= "v0.11.1" & < "v0.13.0"
  80. ppx_variants_conv >= "v0.11.1" & < "v0.13.0"
  81. ppx_xml_conv >= "v0.11.0" & < "v0.13.0"
  82. ppx_yojson < "1.1.0"
  83. qcow >= "0.11.0"
  84. relit_helper >= "0.2.0"
  85. res_tailwindcss
  86. spin >= "0.8.0"
  87. toplevel_expect_test >= "v0.11.0" & < "v0.12.1"
  88. variantslib = "v0.11.0"

Conflicts

None