summaryrefslogtreecommitdiff
path: root/Changes
blob: a12099b47c49cf3ae599daa82be74218815c9319 (plain)
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.