package ppxlib

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

Install

Dune Dependency

Authors

Maintainers

Sources

0.11.0.tar.gz
sha256=a103631a2294919c080783d2114ae8ca0bcd2542ca5c04b9febcabd9cc5411fb
sha512=bca0e48f1bd2cc8987413825d10a49ca3510cb53dfde83b263bd7e9ce1b704ba08032bb9af0e5ab4b417ed71708cb30c50232e176fd66e88195d994bc1c26dbb

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)

  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

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

Conflicts

None