package ppxlib

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

Install

Dune Dependency

Authors

Maintainers

Sources

0.9.0.tar.gz
sha256=d269f882a31ff75095a80793082f7481884ca75ef867c8c409f26ad36f9a0a54
sha512=b903b0386739e17107f89fb9d7c861e95232c0deebbceeacad2d54f1ef771eb942a63e6057d2e3828f4c299c896c6488b6fd351bc150fd4e49d5a48bef84d8a8

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: 02 Aug 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.0"

Dev Dependencies (1)

  1. ocamlfind with-test

Used by (97)

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

Conflicts

None

OCaml

Innovation. Community. Security.