@greenlabs/ppx-spice 0.1.8 → 0.1.9-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +4 -0
  3. package/docs/GUIDE.md +139 -0
  4. package/package.json +1 -1
  5. package/ppx-windows.exe +0 -0
  6. package/.github/workflows/build_linux.yml +0 -41
  7. package/.github/workflows/build_macos.yml +0 -41
  8. package/.github/workflows/build_windows.yml +0 -41
  9. package/.github/workflows/print_esy_cache.js +0 -13
  10. package/.github/workflows/publish.yml +0 -161
  11. package/.github/workflows/publish_prerelease.yml +0 -177
  12. package/.vscode/settings.json +0 -6
  13. package/src/.ocamlformat +0 -0
  14. package/src/bin/bin.ml +0 -1
  15. package/src/bin/dune +0 -5
  16. package/src/dune +0 -1
  17. package/src/dune-project +0 -2
  18. package/src/dune-workspace +0 -3
  19. package/src/esy.lock/.gitattributes +0 -3
  20. package/src/esy.lock/.gitignore +0 -3
  21. package/src/esy.lock/index.json +0 -1196
  22. package/src/esy.lock/opam/astring.0.8.5/opam +0 -37
  23. package/src/esy.lock/opam/base-bytes.base/opam +0 -9
  24. package/src/esy.lock/opam/base-threads.base/opam +0 -6
  25. package/src/esy.lock/opam/base-unix.base/opam +0 -6
  26. package/src/esy.lock/opam/base.v0.14.1/opam +0 -36
  27. package/src/esy.lock/opam/biniou.1.2.1/opam +0 -45
  28. package/src/esy.lock/opam/cmdliner.1.0.4/opam +0 -36
  29. package/src/esy.lock/opam/cppo.1.6.8/opam +0 -37
  30. package/src/esy.lock/opam/csexp.1.5.1/opam +0 -60
  31. package/src/esy.lock/opam/dot-merlin-reader.4.1/opam +0 -30
  32. package/src/esy.lock/opam/dune-build-info.2.9.1/opam +0 -42
  33. package/src/esy.lock/opam/dune-configurator.2.9.1/opam +0 -47
  34. package/src/esy.lock/opam/dune.2.9.1/opam +0 -58
  35. package/src/esy.lock/opam/easy-format.1.3.2/opam +0 -46
  36. package/src/esy.lock/opam/fix.20201120/opam +0 -24
  37. package/src/esy.lock/opam/fpath.0.7.3/opam +0 -36
  38. package/src/esy.lock/opam/menhir.20211012/opam +0 -28
  39. package/src/esy.lock/opam/menhirLib.20211012/opam +0 -29
  40. package/src/esy.lock/opam/menhirSdk.20211012/opam +0 -29
  41. package/src/esy.lock/opam/ocaml-compiler-libs.v0.12.4/opam +0 -39
  42. package/src/esy.lock/opam/ocaml-lsp-server.1.8.3/opam +0 -54
  43. package/src/esy.lock/opam/ocamlbuild.0.14.0/opam +0 -36
  44. package/src/esy.lock/opam/ocamlfind.1.9.1/opam +0 -44
  45. package/src/esy.lock/opam/ocamlformat-rpc-lib.0.18.0/opam +0 -40
  46. package/src/esy.lock/opam/ocamlformat.0.19.0/opam +0 -55
  47. package/src/esy.lock/opam/ocp-indent.1.8.1/opam +0 -57
  48. package/src/esy.lock/opam/odoc-parser.0.9.0/opam +0 -45
  49. package/src/esy.lock/opam/pp.1.1.2/opam +0 -58
  50. package/src/esy.lock/opam/ppx_derivers.1.2.1/opam +0 -23
  51. package/src/esy.lock/opam/ppx_yojson_conv_lib.v0.14.0/opam +0 -24
  52. package/src/esy.lock/opam/ppxlib.0.23.0/opam +0 -62
  53. package/src/esy.lock/opam/re.1.10.3/opam +0 -46
  54. package/src/esy.lock/opam/result.1.5/opam +0 -22
  55. package/src/esy.lock/opam/seq.base/files/META.seq +0 -4
  56. package/src/esy.lock/opam/seq.base/files/seq.install +0 -3
  57. package/src/esy.lock/opam/seq.base/opam +0 -15
  58. package/src/esy.lock/opam/sexplib0.v0.14.0/opam +0 -26
  59. package/src/esy.lock/opam/stdio.v0.14.0/opam +0 -27
  60. package/src/esy.lock/opam/stdlib-shims.0.3.0/opam +0 -31
  61. package/src/esy.lock/opam/topkg.1.0.4/opam +0 -44
  62. package/src/esy.lock/opam/uchar.0.0.2/opam +0 -36
  63. package/src/esy.lock/opam/uucp.14.0.0/opam +0 -41
  64. package/src/esy.lock/opam/uuseg.14.0.0/opam +0 -43
  65. package/src/esy.lock/opam/uutf.1.0.2/opam +0 -40
  66. package/src/esy.lock/opam/yojson.1.7.0/opam +0 -38
  67. package/src/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/files/ocamlbuild-0.14.0.patch +0 -463
  68. package/src/esy.lock/overrides/opam__s__ocamlbuild_opam__c__0.14.0_opam_override/package.json +0 -27
  69. package/src/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.1_opam_override/files/findlib-1.9.1.patch +0 -471
  70. package/src/esy.lock/overrides/opam__s__ocamlfind_opam__c__1.9.1_opam_override/package.json +0 -61
  71. package/src/ppx/codecs.ml +0 -120
  72. package/src/ppx/decode_cases.ml +0 -18
  73. package/src/ppx/dune +0 -9
  74. package/src/ppx/polyvariants.ml +0 -288
  75. package/src/ppx/ppx_spice.ml +0 -19
  76. package/src/ppx/records.ml +0 -163
  77. package/src/ppx/signature.ml +0 -86
  78. package/src/ppx/structure.ml +0 -109
  79. package/src/ppx/tuple.ml +0 -68
  80. package/src/ppx/utils.ml +0 -117
  81. package/src/ppx/variants.ml +0 -257
  82. package/src/ppx_spice.opam +0 -21
  83. package/test/__tests__/test_optional_field_records.js +0 -91
  84. package/test/__tests__/test_optional_field_records.res +0 -98
  85. package/test/__tests__/test_polyvariants.js +0 -57
  86. package/test/__tests__/test_polyvariants.res +0 -41
  87. package/test/__tests__/test_records.js +0 -100
  88. package/test/__tests__/test_records.res +0 -111
  89. package/test/__tests__/test_variants.js +0 -85
  90. package/test/__tests__/test_variants.res +0 -63
  91. package/test/bsconfig.json +0 -27
  92. package/test/package.json +0 -18
  93. package/test/src/OptionalFieldRecords.js +0 -237
  94. package/test/src/OptionalFieldRecords.res +0 -23
  95. package/test/src/Polyvariants.js +0 -94
  96. package/test/src/Polyvariants.res +0 -5
  97. package/test/src/Polyvariants.resi +0 -5
  98. package/test/src/Records.js +0 -186
  99. package/test/src/Records.res +0 -17
  100. package/test/src/Records.resi +0 -17
  101. package/test/src/Spice.js +0 -448
  102. package/test/src/Spice_Codecs.js +0 -57
  103. package/test/src/Variants.js +0 -115
  104. package/test/src/Variants.res +0 -11
  105. package/test/src/Variants.resi +0 -11
  106. package/test/yarn.lock +0 -4194
@@ -1,27 +0,0 @@
1
- opam-version: "2.0"
2
- maintainer: "Jane Street developers"
3
- authors: ["Jane Street Group, LLC"]
4
- homepage: "https://github.com/janestreet/stdio"
5
- bug-reports: "https://github.com/janestreet/stdio/issues"
6
- dev-repo: "git+https://github.com/janestreet/stdio.git"
7
- doc: "https://ocaml.janestreet.com/ocaml-core/latest/doc/stdio/index.html"
8
- license: "MIT"
9
- build: [
10
- ["dune" "build" "-p" name "-j" jobs]
11
- ]
12
- depends: [
13
- "ocaml" {>= "4.04.2"}
14
- "base" {>= "v0.14" & < "v0.15"}
15
- "dune" {>= "2.0.0"}
16
- ]
17
- synopsis: "Standard IO library for OCaml"
18
- description: "
19
- Stdio implements simple input/output functionalities for OCaml.
20
-
21
- It re-exports the input/output functions of the OCaml standard
22
- libraries using a more consistent API.
23
- "
24
- url {
25
- src: "https://ocaml.janestreet.com/ocaml-core/v0.14/files/stdio-v0.14.0.tar.gz"
26
- checksum: "md5=4cbdf15f0be88c3258aaeff9e04e00e9"
27
- }
@@ -1,31 +0,0 @@
1
- opam-version: "2.0"
2
- maintainer: "The stdlib-shims programmers"
3
- authors: "The stdlib-shims programmers"
4
- homepage: "https://github.com/ocaml/stdlib-shims"
5
- doc: "https://ocaml.github.io/stdlib-shims/"
6
- dev-repo: "git+https://github.com/ocaml/stdlib-shims.git"
7
- bug-reports: "https://github.com/ocaml/stdlib-shims/issues"
8
- tags: ["stdlib" "compatibility" "org:ocaml"]
9
- license: ["typeof OCaml system"]
10
- depends: [
11
- "dune"
12
- "ocaml" {>= "4.02.3"}
13
- ]
14
- build: [ "dune" "build" "-p" name "-j" jobs ]
15
- synopsis: "Backport some of the new stdlib features to older compiler"
16
- description: """
17
- Backport some of the new stdlib features to older compiler,
18
- such as the Stdlib module.
19
-
20
- This allows projects that require compatibility with older compiler to
21
- use these new features in their code.
22
- """
23
- x-commit-hash: "fb6815e5d745f07fd567c11671149de6ef2e74c8"
24
- url {
25
- src:
26
- "https://github.com/ocaml/stdlib-shims/releases/download/0.3.0/stdlib-shims-0.3.0.tbz"
27
- checksum: [
28
- "sha256=babf72d3917b86f707885f0c5528e36c63fccb698f4b46cf2bab5c7ccdd6d84a"
29
- "sha512=1151d7edc8923516e9a36995a3f8938d323aaade759ad349ed15d6d8501db61ffbe63277e97c4d86149cf371306ac23df0f581ec7e02611f58335126e1870980"
30
- ]
31
- }
@@ -1,44 +0,0 @@
1
- opam-version: "2.0"
2
- synopsis: """The transitory OCaml software packager"""
3
- maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
4
- authors: ["The topkg programmers"]
5
- homepage: "https://erratique.ch/software/topkg"
6
- doc: "https://erratique.ch/software/topkg/doc"
7
- dev-repo: "git+https://erratique.ch/repos/topkg.git"
8
- bug-reports: "https://github.com/dbuenzli/topkg/issues"
9
- license: ["ISC"]
10
- tags: ["packaging" "ocamlbuild" "org:erratique"]
11
- depends: ["ocaml" {>= "4.03.0"}
12
- "ocamlfind" {build & >= "1.6.1"}
13
- "ocamlbuild"]
14
- build: [["ocaml" "pkg/pkg.ml" "build" "--pkg-name" name
15
- "--dev-pkg" "%{dev}%"]]
16
- url {
17
- src: "https://erratique.ch/software/topkg/releases/topkg-1.0.4.tbz"
18
- checksum: "sha512=5baa1bf0105397589b741acd0195069823548b2051e453dffd641e5d00536b7a5f41b38d005b2b063f9e7cfb9a3b627bec3e6ad48e56769cc35a71f97a897f1b"}
19
- description: """
20
- Topkg is a packager for distributing OCaml software. It provides an
21
- API to describe the files a package installs in a given build
22
- configuration and to specify information about the package's
23
- distribution, creation and publication procedures.
24
-
25
- The optional topkg-care package provides the `topkg` command line tool
26
- which helps with various aspects of a package's life cycle: creating
27
- and linting a distribution, releasing it on the WWW, publish its
28
- documentation, add it to the OCaml opam repository, etc.
29
-
30
- Topkg is distributed under the ISC license and has **no**
31
- dependencies. This is what your packages will need as a *build*
32
- dependency.
33
-
34
- Topkg-care is distributed under the ISC license it depends on
35
- [fmt][fmt], [logs][logs], [bos][bos], [cmdliner][cmdliner],
36
- [webbrowser][webbrowser] and `opam-format`.
37
-
38
- [fmt]: http://erratique.ch/software/fmt
39
- [logs]: http://erratique.ch/software/logs
40
- [bos]: http://erratique.ch/software/bos
41
- [cmdliner]: http://erratique.ch/software/cmdliner
42
- [webbrowser]: http://erratique.ch/software/webbrowser
43
-
44
- Home page: http://erratique.ch/software/topkg"""
@@ -1,36 +0,0 @@
1
- opam-version: "2.0"
2
- maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
3
- authors: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
4
- homepage: "http://ocaml.org"
5
- doc: "https://ocaml.github.io/uchar/"
6
- dev-repo: "git+https://github.com/ocaml/uchar.git"
7
- bug-reports: "https://github.com/ocaml/uchar/issues"
8
- tags: [ "text" "character" "unicode" "compatibility" "org:ocaml.org" ]
9
- license: "typeof OCaml system"
10
- depends: [
11
- "ocaml" {>= "3.12.0"}
12
- "ocamlbuild" {build}
13
- ]
14
- build: [
15
- ["ocaml" "pkg/git.ml"]
16
- [
17
- "ocaml"
18
- "pkg/build.ml"
19
- "native=%{ocaml:native}%"
20
- "native-dynlink=%{ocaml:native-dynlink}%"
21
- ]
22
- ]
23
- synopsis: "Compatibility library for OCaml's Uchar module"
24
- description: """
25
- The `uchar` package provides a compatibility library for the
26
- [`Uchar`][1] module introduced in OCaml 4.03.
27
-
28
- The `uchar` package is distributed under the license of the OCaml
29
- compiler. See [LICENSE](LICENSE) for details.
30
-
31
- [1]: http://caml.inria.fr/pub/docs/manual-ocaml/libref/Uchar.html"""
32
- url {
33
- src:
34
- "https://github.com/ocaml/uchar/releases/download/v0.0.2/uchar-0.0.2.tbz"
35
- checksum: "md5=c9ba2c738d264c420c642f7bb1cf4a36"
36
- }
@@ -1,41 +0,0 @@
1
- opam-version: "2.0"
2
- synopsis: """Unicode character properties for OCaml"""
3
- maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
4
- authors: ["The uucp programmers"]
5
- homepage: "https://erratique.ch/software/uucp"
6
- doc: "https://erratique.ch/software/uucp/doc/"
7
- dev-repo: "git+https://erratique.ch/repos/uucp.git"
8
- bug-reports: "https://github.com/dbuenzli/uucp/issues"
9
- license: ["ISC"]
10
- tags: ["unicode" "text" "character" "org:erratique"]
11
- depends: ["ocaml" {>= "4.03.0"}
12
- "ocamlfind" {build}
13
- "ocamlbuild" {build}
14
- "topkg" {build & >= "1.0.3"}
15
- "uucd" {with-test}
16
- "uunf" {with-test}
17
- "uutf" {with-test}]
18
- depopts: ["uutf"
19
- "uunf"
20
- "cmdliner"]
21
- conflicts: ["uutf" {< "1.0.1"}
22
- "cmdliner" {< "1.0.0"}]
23
- build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%"
24
- "--with-uutf" "%{uutf:installed}%"
25
- "--with-uunf" "%{uunf:installed}%"
26
- "--with-cmdliner" "%{cmdliner:installed}%" ]]
27
- description: """
28
- Uucp is an OCaml library providing efficient access to a selection of
29
- character properties of the [Unicode character database][1].
30
-
31
- Uucp is independent from any Unicode text data structure and has no
32
- dependencies. It is distributed under the ISC license.
33
-
34
- [1]: http://www.unicode.org/reports/tr44/
35
-
36
- Home page: http://erratique.ch/software/uucp"""
37
- url {
38
- src: "https://erratique.ch/software/uucp/releases/uucp-14.0.0.tbz"
39
- checksum: "sha512=2d0224aed5d5accbb121624898f08598e8c74a2415942f159a54221c0cdac62ed64fc70a039c833e50110cefce77754ada9ac2d58f79a6fc9331135326fe6899"}
40
- post-messages: ["If the build fails with \"ocamlopt.opt got signal and exited\", issue 'ulimit -s unlimited' and retry."
41
- {failure & (arch = "ppc64" | arch = "arm64")}]
@@ -1,43 +0,0 @@
1
- opam-version: "2.0"
2
- synopsis: """Unicode text segmentation for OCaml"""
3
- maintainer: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
4
- authors: ["The uuseg programmers"]
5
- homepage: "https://erratique.ch/software/uuseg"
6
- doc: "https://erratique.ch/software/uuseg/doc/"
7
- dev-repo: "git+https://erratique.ch/repos/uuseg.git"
8
- bug-reports: "https://github.com/dbuenzli/uuseg/issues"
9
- license: ["ISC"]
10
- tags: ["unicode" "text" "segmentation" "org:erratique"]
11
- depends: ["ocaml" {>= "4.03.0"}
12
- "ocamlfind" {build}
13
- "ocamlbuild" {build}
14
- "topkg" {build & >= "1.0.3"}
15
- "uucp" {>= "14.0.0" & < "15.0.0"}]
16
- depopts: ["uutf"
17
- "cmdliner"]
18
- conflicts: ["uutf" {< "1.0.0"}]
19
- build: [["ocaml" "pkg/pkg.ml" "build" "--dev-pkg" "%{dev}%"
20
- "--with-uutf" "%{uutf:installed}%"
21
- "--with-cmdliner" "%{cmdliner:installed}%" ]]
22
- url {
23
- src: "https://erratique.ch/software/uuseg/releases/uuseg-14.0.0.tbz"
24
- checksum: "sha512=3f089baf95f010663a0c2f060b2911395d9b396f478efb10fd979815f527c9e61e0a70b3192f2e921f59287bfde0da6e25109d4a1825554e2e4a50c0535e97aa"}
25
- description: """
26
- Uuseg is an OCaml library for segmenting Unicode text. It implements
27
- the locale independent [Unicode text segmentation algorithms][1] to
28
- detect grapheme cluster, word and sentence boundaries and the
29
- [Unicode line breaking algorithm][2] to detect line break
30
- opportunities.
31
-
32
- The library is independent from any IO mechanism or Unicode text data
33
- structure and it can process text without a complete in-memory
34
- representation.
35
-
36
- Uuseg depends on [Uucp](http://erratique.ch/software/uucp) and
37
- optionally on [Uutf](http://erratique.ch/software/uutf) for support on
38
- OCaml UTF-X encoded strings. It is distributed under the ISC license.
39
-
40
- [1]: http://www.unicode.org/reports/tr29/
41
- [2]: http://www.unicode.org/reports/tr14/
42
-
43
- Homepage: http://erratique.ch/software/uuseg"""
@@ -1,40 +0,0 @@
1
- opam-version: "2.0"
2
- maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>"
3
- authors: ["Daniel Bünzli <daniel.buenzl i@erratique.ch>"]
4
- homepage: "http://erratique.ch/software/uutf"
5
- doc: "http://erratique.ch/software/uutf/doc/Uutf"
6
- dev-repo: "git+http://erratique.ch/repos/uutf.git"
7
- bug-reports: "https://github.com/dbuenzli/uutf/issues"
8
- tags: [ "unicode" "text" "utf-8" "utf-16" "codec" "org:erratique" ]
9
- license: "ISC"
10
- depends: [
11
- "ocaml" {>= "4.01.0"}
12
- "ocamlfind" {build}
13
- "ocamlbuild" {build}
14
- "topkg" {build}
15
- "uchar"
16
- ]
17
- depopts: ["cmdliner"]
18
- conflicts: ["cmdliner" { < "0.9.6"} ]
19
- build: [[
20
- "ocaml" "pkg/pkg.ml" "build"
21
- "--pinned" "%{pinned}%"
22
- "--with-cmdliner" "%{cmdliner:installed}%" ]]
23
- synopsis: """Non-blocking streaming Unicode codec for OCaml"""
24
- description: """\
25
-
26
- Uutf is a non-blocking streaming codec to decode and encode the UTF-8,
27
- UTF-16, UTF-16LE and UTF-16BE encoding schemes. It can efficiently
28
- work character by character without blocking on IO. Decoders perform
29
- character position tracking and support newline normalization.
30
-
31
- Functions are also provided to fold over the characters of UTF encoded
32
- OCaml string values and to directly encode characters in OCaml
33
- Buffer.t values.
34
-
35
- Uutf has no dependency and is distributed under the ISC license.
36
- """
37
- url {
38
- archive: "http://erratique.ch/software/uutf/releases/uutf-1.0.2.tbz"
39
- checksum: "a7c542405a39630c689a82bd7ef2292c"
40
- }
@@ -1,38 +0,0 @@
1
- opam-version: "2.0"
2
- maintainer: "martin@mjambon.com"
3
- authors: ["Martin Jambon"]
4
- homepage: "https://github.com/ocaml-community/yojson"
5
- bug-reports: "https://github.com/ocaml-community/yojson/issues"
6
- dev-repo: "git+https://github.com/ocaml-community/yojson.git"
7
- doc: "https://ocaml-community.github.io/yojson/"
8
- build: [
9
- ["dune" "subst"] {dev}
10
- ["dune" "build" "-p" name "-j" jobs]
11
- ]
12
- run-test: [["dune" "runtest" "-p" name "-j" jobs]]
13
- depends: [
14
- "ocaml" {>= "4.02.3"}
15
- "dune"
16
- "cppo" {build}
17
- "easy-format"
18
- "biniou" {>= "1.2.0"}
19
- "alcotest" {with-test & >= "0.8.5"}
20
- ]
21
- synopsis:
22
- "Yojson is an optimized parsing and printing library for the JSON format"
23
- description: """
24
- Yojson is an optimized parsing and printing library for the JSON format.
25
-
26
- It addresses a few shortcomings of json-wheel including 2x speedup,
27
- polymorphic variants and optional syntax for tuples and variants.
28
-
29
- ydump is a pretty-printing command-line program provided with the
30
- yojson package.
31
-
32
- The program atdgen can be used to derive OCaml-JSON serializers and
33
- deserializers from type definitions."""
34
- url {
35
- src:
36
- "https://github.com/ocaml-community/yojson/releases/download/1.7.0/yojson-1.7.0.tbz"
37
- checksum: "md5=b89d39ca3f8c532abe5f547ad3b8f84d"
38
- }