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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
CamlIDL 1.11:
-------------
* Fix regression in parsing of `[string]` attribute (#23).
CamlIDL 1.10:
-------------
* Add [bytes] attribute for char arrays and pointers,
mapped to OCaml's bytes type.
* Fix C type error with string parameters of unsigned char type.
* Fix C type error with in parameters of const array type (#9).
* Install HTML documentation in docs/ and serve it from
https://xavierleroy.org/camlidl/ (#20)
* Always use modern, caml_-prefixed names for FFI functions (#21, #22).
CamlIDL 1.09:
-------------
* Revert a problematic change of default configuration
(cpp -traditional instead of cpp)
CamlIDL 1.08:
-------------
* Update to OCaml 4.09 and up
* Support more IDL features: import lists, fixed-width integer types
(int8, int32, etc), MIDL-stlye nonencapsulated unions
(pull request #13, Philipp Gesang)
* Generate C code that respects CAML_NAME_SPACE
* The runtime library referenced a IID_IUnknown symbol that could
not be resolved under Unix (pull request #15, Github user ygrek)
CamlIDL 1.07:
-------------
* Update to OCaml 4.06 and up (issues #6 and #11).
* Auto-link the C runtime library from com.cma and com.cmxa (issue #8).
* Re-license the compiler under the LGPL v2.1 (instead of the QPL 1.0).
CamlIDL 1.06:
-------------
* Update to OCaml 4.03.
* Avoid name clash on Array module.
CamlIDL 1.05:
-------------
* Update to the new representation of objects introduced in OCaml 3.08.
* Fixed compiler failure with bigarrays of "const" elements.
* Fixed bug in conversion from C's signed char to Caml's char type.
* Function declarations support the [mlname] attribute (to set the
Caml name of the function) and the [blocking] attribute (for long-running
C functions).
* Fixed cpp preprocessing problem on MacOS X 10.2 and later.
* Fixed bug in conversion from a struct of floats to a Caml record of floats.
* Fixed incorrect initialization of DLL generated for a COM component.
CamlIDL 1.04:
-------------
* Fixed silly bug in abstract typedefs, introduced in 1.03.
* Strings, arrays and bigarrays are now non-NULL if "unique" is not specified,
even if the pointer default is "unique".
* "out" parameters dependent on "out" parameters are now removed from
the Caml view of a function.
* Removed spurious warning on the "mlname" attribute.
CamlIDL 1.03:
-------------
* Revised handling of integer constants, which can now be of Caml boxed int
types (int32, int64, nativeint).
* Dependent fields can now reference all variables that are in lexical scope,
e.g. struct { int n; struct { [size_is(x)] int * n; } s; }
* The C file generated from x.idl is now named x_stubs.c rather than x.c
to avoid a name clash on file x.o when compiling x.ml to native code.
* Added [finalize(fn)], [compare(fn)] and [hash(fn)] on abstract typedefs
to associate user-provided finalization, comparison or hashing functions
to typedefs.
* Fixed some oddities with the "const" qualifier.
CamlIDL 1.02:
-------------
* Added support for the "long long", "hyper int" and "__int64" types
(64-bit C integers)
* Added support for "const" modifier on pointer types
* Support for [unique] attribute on big arrays, turned into option types
in the Caml interface
* Generated C code should now compile cleanly with a C++ compiler
* Print source location for most warnings
* Error location was sometimes way off; this is now fixed
* Fixed incorrect code generated for the types HRESULT_int and HRESULT_bool
* Fixed refcount management bug causing early deallocation of interfaces
implemented in Caml.
CamlIDL 1.01:
-------------
* Added support for Caml boxed int types (int32, int64, nativeint)
and for big arrays (module Bigarray)
* Fixed bug in allocation of working space for out parameters
of array types.
* Disambiguation of record labels that belong to several struct types.
* Support for [unique] attribute on strings and arrays, turned into
option types in the Caml interface.
* Fixed bug with anonymous enum types (forgot to define the
corresponding translation table).
* Fixed bug with dependent parameters depending on out parameters
(these must not be omitted in the Caml function declaration).
* "in,out" parameters of type string or big array are now presented
as an "in,out" parameter of the Caml function and modified in place,
rather than presented as a parameter and a result.
* Added minimal support for COM dispatch interfaces.
* Fixed lack of initialization of ignored pointers for structs with
only one significant field.
* Relicensed under the QPL (for the compiler) and the LGPL (for
everything else).
CamlIDL 1.00:
-------------
First public release.
|