-
Notifications
You must be signed in to change notification settings - Fork 2
/
CHANGES
86 lines (63 loc) · 3.21 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
pa_ppx Version 0.03
-------------------
* [28 Sep 2020] conditionalized opam on "os != macos" until we find
somebody who can help us test builds on macos.
* [27 Sep 2020] added TRIP-TEST-ALL to generate and save
generated-files (and run tests) for all supported ocaml versions.
* [24 Sep 2020] new way of selecting generated-src versions.
hopefully this will make pa_ppx immune to "new camlp5 release, we
can't build" problems.
pa_ppx.import now support "mli-only" and "redeclare" options:
"-pa_import-mli-only": to ensure that only MLI files are consulting during import
(e.g. to pull in OCaml AST from an older OCaml version, and avoid
doing so from the stdlib)
"-pa_import-redeclare": to import types and *not* add the type-equation that
binds them to the existing type. For instance, to combine with
mli-only (since there isn't any existing type that matches).
cache files as they're read in pa_import, so we don't need to reread them.
the [%%import ...] item-extension (for str-items and sig-items) now takes a
[@add ...] attribute, viz.
[%%import: MLast.expr
[@add type loc = [%import: MLast.loc]
and type_var = [%import: MLast.type_var]
and 'a vala = [%import: 'a Ploc.vala]
]
]
This says to import the entire typedecl-group in which MLast.expr is
declared, and to add to that the types MLast.type_var and Ploc.vala,
all in a single grouped typedef (which will be recursive, if the
initial typedef is). The "@add" attribute payload is a str-item, so
it can itself have a payload that is an item-extension ("[%%import
...]") in order to import-and-add entire typedecl groups, thus:
[%%import: MLast.expr
[@add [%%import: MLast.loc]]
[@add [%%import: MLast.type_var]]
[@add [%%import: 'a Ploc.vala]]
[@with Ploc.vala := vala]
] [@@deriving show]
The "@with" directive applies to all types imported. If we wanted
to apply it to one of the types in "@add" directives (say, for
"MLast.type_var"), we'd just put it in that "%%import" attribute in
the normal way.
* [12 Sep 2020] added a bunch of support for matching & substitution over types,
to support pa_ppx_migrate (which is now in a separate project).
also add generated files for camlp5 8.00~alpha04
* [22 Aug 2020] cleanup opam file, bump version for compat with camlp5 8.00~alpha03.
Change versioning process.
pa_ppx Version 0.02
-------------------
* [16 Aug 2020] update build process to save pp_MLast.ml[i] generated
files in dirs named by camlp5 version. update to sync with camlp5
8.00~alpha02.
* [01 Aug 2020] fixed bugs in handling of attributes of type-derivers.
Now, it should be the case that if two type-derivers declare that
they use the same attribute-names (e.g. "name", "nobuiltin") and in
any compilation unit (e.g. file) they both use such an attribute
(even if not in the same type-declaration), then attribute-names
MUST be qualified with the deriver-name (e.g. "yojson.name",
"sexp.name"). This guarantees that there can be no confusion about
which attributes refer to which derivers.
* [30 Jul 2020] (minor) update generated pretty-printers (add newlines between items).
pa_ppx Version 0.01
-------------------
* [30 Jul 2020] first released version