package ppxlib

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

Install

Dune Dependency

Authors

Maintainers

Sources

ppxlib-0.8.1.tbz
sha256=a5cb79ee83bba80304b65bc47f2985382bef89668b1b46f9ffb3734c2f2f7521
sha512=74bf4a0811f4fa73969149efc7f98620bf1c1ef7322edb8de82e02e25b61e005945887ea865b462bfb638d7d0e574706da190ca9416643f4464a89262ae7ae12

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: 23 Jul 2019

README

Ppxlib - Meta-programming for OCaml

Travis status" AppVeyor status"

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
  6. base >= "v0.11.0"
  7. ocaml >= "4.04.1" & < "4.10"

Dev Dependencies (1)

  1. ocamlfind with-test

Used by (90)

  1. arrayjit < "0.5.2"
  2. base_quickcheck < "v0.13.0"
  3. bistro < "0.6.0"
  4. cconv-ppx
  5. clangml = "4.0.0"
  6. comby < "1.3.0"
  7. dune = "3.17.2"
  8. embedded_ocaml_templates < "0.8"
  9. GT >= "0.5.2"
  10. genprint
  11. hack_parallel
  12. js_of_ocaml-ppx_deriving_json >= "3.5.0" & < "3.5.2"
  13. lablqml < "0.7"
  14. learn-ocaml
  15. learn-ocaml-client
  16. logs-ppx
  17. melange-json >= "1.2.0" & < "2.0.0"
  18. merlin >= "4.7-412"
  19. mlt_parser < "v0.13.0"
  20. neural_nets_lib < "0.5.2"
  21. noCanren >= "0.3.0~alpha1"
  22. node_of_ocaml
  23. noise
  24. nuscr < "1.1.0"
  25. obus = "1.2.0"
  26. ocamlapi_ppx
  27. octez-internal-libs
  28. ojs_base_ppx
  29. override < "0.2.2"
  30. ppx-owl-opt
  31. ppx_assert < "v0.13.0"
  32. ppx_base < "v0.13.0"
  33. ppx_bench < "v0.13.0"
  34. ppx_bin_prot < "v0.13.0"
  35. ppx_blob = "0.7.2"
  36. ppx_compare < "v0.13.0"
  37. ppx_compose >= "0.2.1"
  38. ppx_conv_func < "v0.13.0"
  39. ppx_csv_conv < "v0.13.0"
  40. ppx_custom_printf < "v0.13.0"
  41. ppx_deriving_encoding < "0.2" | = "0.2.3"
  42. ppx_deriving_hardcaml < "v0.13.0"
  43. ppx_deriving_hash < "0.1.3"
  44. ppx_deriving_jsoo < "0.2"
  45. ppx_dream_eml
  46. ppx_enumerate < "v0.13.0"
  47. ppx_expect < "v0.13.0"
  48. ppx_factory < "0.1.0"
  49. ppx_fail < "v0.13.0"
  50. ppx_fields_conv < "v0.13.0"
  51. ppx_fun
  52. ppx_hash < "v0.13.0"
  53. ppx_here < "v0.13.0"
  54. ppx_import < "1.8.0"
  55. ppx_inline_test < "v0.13.0"
  56. ppx_jane < "v0.13.0"
  57. ppx_js_style < "v0.13.0"
  58. ppx_jsobject_conv < "0.8.0"
  59. ppx_let < "v0.13.0"
  60. ppx_module_timer < "v0.13.0"
  61. ppx_mysql
  62. ppx_optcomp < "v0.13.0"
  63. ppx_optint
  64. ppx_optional < "v0.13.0"
  65. ppx_pipebang < "v0.13.0"
  66. ppx_protocol_conv < "5.1.0"
  67. ppx_python < "v0.13.0"
  68. ppx_rapper
  69. ppx_sexp_conv < "v0.13.0"
  70. ppx_sexp_message < "v0.13.0"
  71. ppx_sexp_value < "v0.13.0"
  72. ppx_show < "0.2.0"
  73. ppx_stable < "v0.13.0"
  74. ppx_string_interpolation < "1.0.1"
  75. ppx_there
  76. ppx_type_conv
  77. ppx_typerep_conv < "v0.13.0"
  78. ppx_variants_conv < "v0.13.0"
  79. ppx_xml_conv < "v0.13.0"
  80. ppx_yojson < "1.1.0"
  81. ppx_yojson_conv < "v0.13.0"
  82. pythonlib < "v0.13.0"
  83. qcow = "0.11.0"
  84. res_tailwindcss
  85. speed
  86. spin >= "0.8.0"
  87. stdint-literals
  88. stk_ppx
  89. toplevel_expect_test < "v0.13.0"
  90. validate

Conflicts

None

OCaml

Innovation. Community. Security.