package ppxlib

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

Install

Dune Dependency

Authors

Maintainers

Sources

0.12.0.tar.gz
sha256=6b562c9b3b9350777318729921f890850b385c469db60769aafd9371998a2c42
sha512=2372a7a53d857389978e617c95183289547d53caa5e83a7d867cab347b114b719667bd09eaf2e2334085ef92691a99b42871f6410ffb2977b0b8724014c80a70

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

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

Dev Dependencies (2)

  1. cinaps with-test & >= "v0.12.1"
  2. ocamlfind with-test

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

Conflicts

None

OCaml

Innovation. Community. Security.