package ppxlib

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

Install

Dune Dependency

Authors

Maintainers

Sources

ppxlib-0.14.0.tbz
sha256=a1a398f7c8f670d7de80468ff4639862b126f4dcac3de416e0c5c4d5860f3854
sha512=987062ecaa406a0bc4d87350947ab7da06b650c2f3c991a3aba470bd45c0a26619536bd50753de958a8a1f3b41f89fbcf7206bf3b5acc33002a9b2debd686d6c

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: 08 Jul 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.5.0" & < "2.0.0"
  4. ocaml-compiler-libs >= "v0.11.0"
  5. dune >= "1.11"
  6. base >= "v0.11.0"
  7. ocaml >= "4.04.1"

Dev Dependencies (4)

  1. base with-test & < "v0.15"
  2. cinaps with-test & >= "v0.12.1"
  3. ocamlfind with-test
  4. ocaml with-test & >= "4.10" & < "4.12"

  1. arrayjit
  2. base_quickcheck >= "v0.13.0" & < "v0.14.1"
  3. bistro = "0.5.0"
  4. clim-ppx
  5. comby < "1.3.0"
  6. elpi >= "1.11.0"
  7. embedded_ocaml_templates < "0.8"
  8. fsml
  9. GT >= "0.5.2"
  10. gen_js_api >= "1.0.6" & < "1.0.8"
  11. genprint >= "0.3"
  12. hack_parallel >= "1.0.1"
  13. hardcaml = "v0.14.0"
  14. js_of_ocaml-ppx_deriving_json = "3.7.1"
  15. lascar >= "0.7.0"
  16. learn-ocaml >= "0.13.0"
  17. learn-ocaml-client >= "0.13.0"
  18. lens >= "1.2.5"
  19. let-if >= "0.2.0"
  20. logs-ppx
  21. melange-json >= "1.2.0"
  22. merlin >= "4.7-412"
  23. mlt_parser >= "v0.13.0" & < "v0.14.1"
  24. neural_nets_lib
  25. noCanren >= "0.3.0~alpha1"
  26. node_of_ocaml
  27. OCanren-ppx < "0.2.0"
  28. obus = "1.2.3"
  29. octez-internal-libs
  30. ojs_base_ppx
  31. override = "0.2.2"
  32. pacomb
  33. ppx-owl-opt
  34. ppx_accessor = "v0.14.2"
  35. ppx_assert >= "v0.13.0" & < "v0.15.0"
  36. ppx_base >= "v0.13.0" & < "v0.15.0"
  37. ppx_bench = "v0.14.1"
  38. ppx_bin_prot >= "v0.13.0" & < "v0.15.0"
  39. ppx_blob >= "0.7.2"
  40. ppx_cold < "v0.15.0"
  41. ppx_compare >= "v0.13.0" & < "v0.15.0"
  42. ppx_compose >= "0.2.1"
  43. ppx_const = "2.0"
  44. ppx_conv_func >= "v0.13.0" & < "v0.15.0"
  45. ppx_csv_conv >= "v0.13.0" & < "v0.15.0"
  46. ppx_custom_printf >= "v0.13.0" & < "v0.14.1"
  47. ppx_defer >= "0.5.0"
  48. ppx_deriving = "5.1"
  49. ppx_deriving_encoding < "0.2" | = "0.2.3"
  50. ppx_deriving_hardcaml >= "v0.13.0" & < "v0.15.0"
  51. ppx_deriving_hash
  52. ppx_deriving_jsoo < "0.2"
  53. ppx_deriving_popper
  54. ppx_deriving_rpc >= "7.1.0" & < "8.1.0"
  55. ppx_deriving_yaml < "0.2.2"
  56. ppx_deriving_yojson = "3.6.1"
  57. ppx_dream_eml
  58. ppx_enumerate >= "v0.13.0" & < "v0.15.0"
  59. ppx_expect >= "v0.13.0" & < "v0.14.1"
  60. ppx_factory = "0.1.0" | >= "0.2.0"
  61. ppx_fail >= "v0.13.0"
  62. ppx_fields_conv = "v0.14.1"
  63. ppx_fixed_literal < "v0.15.0"
  64. ppx_fun >= "0.0.9"
  65. ppx_getenv = "2.0"
  66. ppx_hash >= "v0.13.0" & < "v0.15.0"
  67. ppx_here >= "v0.13.0" & < "v0.15.0"
  68. ppx_import >= "1.7.0" & < "1.8.0"
  69. ppx_inline_test = "v0.14.1"
  70. ppx_irmin >= "2.2.0" & < "2.4.0" | >= "3.0.0"
  71. ppx_jane >= "v0.13.0" & < "v0.15.0"
  72. ppx_js_style >= "v0.13.0" & < "v0.15.0"
  73. ppx_jsobject_conv = "0.8.0"
  74. ppx_let >= "v0.13.0" & < "v0.15.0"
  75. ppx_log < "v0.15.0"
  76. ppx_make
  77. ppx_module_timer >= "v0.13.0" & < "v0.15.0"
  78. ppx_monad
  79. ppx_mysql >= "1.1.3"
  80. ppx_optcomp >= "v0.13.0" & < "v0.14.1"
  81. ppx_optint
  82. ppx_optional >= "v0.13.0" & < "v0.15.0"
  83. ppx_pattern_bind >= "v0.13.1" & < "v0.15.0"
  84. ppx_pipebang >= "v0.13.0" & < "v0.15.0"
  85. ppx_protocol_conv >= "5.1.0"
  86. ppx_python >= "v0.13.0" & < "v0.15.0"
  87. ppx_rapper
  88. ppx_regexp >= "0.5.0"
  89. ppx_repr
  90. ppx_sexp_conv >= "v0.13.0" & < "v0.14.1"
  91. ppx_sexp_message >= "v0.13.0" & < "v0.14.1"
  92. ppx_sexp_value >= "v0.13.0" & < "v0.15.0"
  93. ppx_show >= "0.2.0"
  94. ppx_stable = "v0.14.1"
  95. ppx_string < "v0.15.0"
  96. ppx_string_interpolation < "1.0.1"
  97. ppx_subliner
  98. ppx_typerep_conv = "v0.14.1"
  99. ppx_units
  100. ppx_variants_conv = "v0.14.1"
  101. ppx_viewpattern
  102. ppx_xml_conv >= "v0.13.0" & < "v0.15.0"
  103. ppx_yojson = "1.0.0"
  104. ppx_yojson_conv >= "v0.13.0" & < "v0.15.0"
  105. qcow >= "0.11.0"
  106. repr-fuzz
  107. res_tailwindcss
  108. scaml < "1.2.0"
  109. speed
  110. spin >= "0.8.0"
  111. stdint-literals
  112. stk_ppx
  113. toplevel_expect_test = "v0.14.1"
  114. visitors = "20210127"

Conflicts

None

OCaml

Innovation. Community. Security.