CHANGES 11.8 KB
Newer Older
1
<<<<<<< HEAD
Giuseppe Castagna's avatar
Giuseppe Castagna committed
2 3 4 5
current



6 7
0.6.0
   * Port to OCaml 4.01
8
   * Fix installation scripts
9 10 11 12 13

- Tools:
   * Add a script to configure opam
   * Add two test suites for development

Giuseppe Castagna's avatar
Giuseppe Castagna committed
14 15
- Build:
   * replaced netcgi2 for netcgi1    
16
=======
Pietro Abate's avatar
Pietro Abate committed
17 18 19 20 21 22 23 24 25 26 27
0.6.1
   * Fix the source so that it can be compiled with Ocaml 4.02 and the external version of camlp4
   * Upgrade Ocaml interface to support ocaml 4.02
   * Modularise the Ocaml interface. This version of CDuce now supports the following combinations:
     ocaml compiler | ocaml sources (for the CDuce-Ocaml interface)
     3.11.x 3.12.x  | 3.11.x 3.12.x
     4.00/4.01      | 3.11.x 3.12.x 4.00 4.01
     4.02           | 4.02

     It is however recommended to use the same version of for the Ocaml compiler and the Ocaml sources
   * Parallelize the Makefile (make -j works as exptected)
28

Pietro Abate's avatar
Pietro Abate committed
29 30 31
0.6.0
   * Upgrade the Ocaml interface to support ocaml 4.00 and 4.01 (contributed by Julien Lopez)
   Warning: the Ocaml interface now requires ocaml >= 4.00 and < 4.02 (4.02 is not supported)
32
>>>>>>> 95a432f0d7807165e15f4c5e271a2680ac8dadc7
33

34 35
0.5.5
   * Added load_xml_subst and print_xml_subst for namespaces substitution.
Pietro Abate's avatar
Pietro Abate committed
36
   (necessary for Web Services with OcCDuce and CDuce_WS).
37

38 39 40 41 42
0.5.4
   * Added Services for Ocsigen.
   * Fixed a bug with wildcard for namespaces (ns:*)
   * Corrected whitespace normalization in atomic types before validation
   * Fixed 2 bugs in the cduce-ocaml interface
43 44
   * Changed packaging script since it forgot dtd2cduce.ml

45
0.5.3
Giuseppe Castagna's avatar
Giuseppe Castagna committed
46
   * Port to OCaml 3.11 (courtesy of Richard Jones)
47
   * fixed to work with ocaml-curl library >= 0.5
Giuseppe Castagna's avatar
Giuseppe Castagna committed
48 49
- Tools
   * Fixed dtd2cduce bug when handling of "FIXED" attributes
50
   * Fixed bug in building: PXP was not build if GCI not present
Giuseppe Castagna's avatar
Giuseppe Castagna committed
51 52 53 54

0.5.2_1
   * Fixed packaging error

Giuseppe Castagna's avatar
Giuseppe Castagna committed
55 56 57 58 59 60 61
0.5.2
- Tools
   * New Mac OSX build
   * bugfix in the build. New cgi package optional detection
     and now the netcgi1 is directly used (fix distributions
     that provide only netcgi1 and not cgi).

Pietro Abate's avatar
Pietro Abate committed
62 63 64 65 66 67 68 69
0.5.1
- Tools:
   * New windows binary package

- Implementation:
   * support for cdata sections
   * automatic mapping of ocaml data types to cduce types

70 71 72
0.5.0
   * Port to OCaml 3.10, with the help of Nicolas Pouillard

73
0.4.2
74

Pietro Abate's avatar
Pietro Abate committed
75
- Language:
76 77
   * Added int_of_char

Pietro Abate's avatar
Pietro Abate committed
78
- Bug fix:
79
   * "match 1 with (x := `nil) -> x" raised an assert failure
80

81

82 83
0.4.1

84 85 86 87 88 89 90 91 92 93 94
- Tools:
   * Error message when using --mlstub without the built-in OCaml interface
   * Improvements to the type pretty-printer
   * "include" uses the -I options

- Language:
   * New Caml_int builtin type
   * The // construction no longer stops at the first matched subtree
     on each branch
   * New "dump_xml" and "dump_xml_utf8", equivalent to the composition
     of print and print_xml, but more efficient
Pietro Abate's avatar
Pietro Abate committed
95

96 97 98 99 100 101

- Implementation:
   * New subtyping algorithm
   * Small improvement to the pattern matching compiler
   * Improve type-checking time for map
   * Improve type-checking of record expressions
Pietro Abate's avatar
Pietro Abate committed
102
   * Don't display warnings for unused branches in ghost (generated) pattern
103 104 105 106 107 108 109 110 111
     matching

- Bug fix:
   * "eval" can now be called several times and use the toplevel environment
   * use "open_out_bin" (needed for Cygwin installation)
   * "open" allowed as tag name
   * exceptions raised by the expat parser and by the dump_to_file
     primitives are now catchable
   * work-around the double close bug in OCaml
112

113 114 115 116
0.4.0pl1

- Packaging bug

117 118 119 120 121
0.4.0

- Adapted to OCaml 3.09.
- To build the OCaml/CDuce interface, OCaml sources are now needed.

122
0.3.92
123 124 125

- Tools:
   * Build and install dtd2cduce when PXP is available.
126
   * Display of location for errors and warnings compatible with OCaml.
127 128 129 130

- Language:
   * Better error messages for xtransform.

131 132 133
- Bug fix:
   * Forgot PLIST.godi in the package.

134

135 136 137 138 139 140 141 142 143
0.3.91

- Tools:
   * Get rid of cdo2ml and mlcduce_wrapper. Now included in cduce.

- Bug fix:
   * Internal uid collision when using OCaml externals.
   * Makes "String.length" works (String used to resolve to the CDuce type).

144 145 146
0.3.9

- Language:
147
   * Added split_atom, make_atom. Removed atom_of.
148
   * Added char_of_int built_in function.
149 150
   * Now int_of also accepts octal binary and hexadecimals.
   * The field access also works for XML element attributes.
151 152 153 154 155
   * More catchable exceptions (for load_xml, load_file, etc).
   * namespaces, schemas, "using" identifiers are now exported.
   * "open" statement.

- Implementation:
156 157 158 159
   * More efficient implementation of records at runtime.
   * Clean-up of the internal representation.
   * The XML Schemas are now parsed only at compile time.
   * The automata for pattern matching are now produced at compile time.
160 161 162 163

- Tools:
   * The functionality of cdo2ml is now assured by cduce itself, with
     the --mlstub option.
164 165
   * Remove the --dump option (which was deprecated).
   * Remove support for sessions in the web prototype.
166 167

- Bug fixes:
168
   * Correct handling of external references with expat.
169
   * Installation problem under some BSD (using "install -c").
170

171 172 173
0.3.2
   * Bug fix in configure

174
0.3.1
175 176

- Bug fix:
177 178 179
   * configure must not require pxp
   * inclusion of external entities with expat
   * META.in, cduce_mktop missing in package
180 181 182 183 184 185 186
   * several bugfixes for XML Schema
   * Adapt to ocaml-expat 0.9.1
   * don't build cdo2ml, mlcduce_wrapper when ocaml iface not available

- Language:
   * Can now preserve namespaces when parsing XML or when creating XML elements
   * "or" is now equivalent to ||
187

188
0.3.0
189

190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
- Language:
   * Warning for capture variables and projections that always return the empty
     sequence.
   * Major rewrite of the support for XML Schema
     * removed print_schema directive
     * removed the "kind" selector (e.g. S # t as element)
     * include,import implemented
     * support wildcards any,anyAttrivbute
     * support xsi:nil
     * support xsd:decimal,xsd:float
     * many bug fixes
   * Removed the syntax  "external {...}", replaced with
     "unit.val with { ty1 ty2 ... }".
   * Removed the syntax H:val, replaced with H.val.
   * Removed the syntax S#t, replaced with S.t.
   * Overloaded the dot (record field acces, CDuce, OCaml, Schema units).
     A dot in an identifier must now be escaped with a backslash, e.g. x\.y
   * Identifiers (for types, values) are now qualified names.
   * float_of: String -> Float
209 210 211 212
   * Syntax modifications for records and attributes:
      - ".." to denote open record types/patterns:
          open record:  { l1=t1 l2=t2 .. }
          closed record: { l1=t1 l2=t2 }
Pietro Abate's avatar
Pietro Abate committed
213
      - the ";" between fields is optional even for records
214
        (used to be optional only for attributes)
215
   * Keywords are now allowed as type names
216 217
   * Concatenation @ allowed in types
   * Record concatenation + allowed in types
Pietro Abate's avatar
Pietro Abate committed
218
   * Changed "string://" URL-pseudo schema to "string:"
219
   * Better resolution of external entities for PXP and expat
220 221

- Tools:
Pietro Abate's avatar
Pietro Abate committed
222
   * A new tool cduce_mktop produces customized CDuce toplevels with embedded
223
     OCaml externals.
224
   * Removed the validate tool.
225 226
   * Don't build dtd2cduce by default (it requires PXP). An online
     version is available at http://www.cduce.org/dtd2cduce.html
227 228

- Implementation:
229 230 231
   * Various bug fixes.
   * More efficient hash-consing of types.
   * improved #print_type (does not use the abbreviation for the printed type).
232

233
- Distribution:
234
   * MIT license.
235
   * CDuce can be built without support for PXP.
236

237 238 239 240 241
- CQL:
   * Rewrote the optimization (pushing projections).
   * The syntax for "where" clause is now simply an "and"-separated
     list of conditions ("or" is no longer supported).
   * Better types for "min","max","distinct_values" operators.
242

243
0.2.2
244

245
- Language:
Pietro Abate's avatar
Pietro Abate committed
246
  * Runtime type-check: (e :? t) raises an exception when e doesn't
247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
    have type t; the exception is an explanation of why this is not the case.
    (The actual message may change in the future.)
  * Better return type for load_xml, defined as:
    AnyXml=<(Atom) (Record)>[ (AnyXml|Char)* ]
  * New style for comments: /* ... */
    Simple and double quotes within these comments are not handled
    specially. Moreover, these comments cannot be nested.
    The new style should be used for textual comments (which can include
    the simple quote); the old style is better for ignoring pieces of code.
  * Pattern guard /p in regexps to match the current tail. This can be used
    for setting "markers" without capturing anything, e.g.:
       [ (/(x:=1) ...) | (/(x:=2) ...) ]
    Back to the old semantics for default value patterns in regexps
    (they do capture an element).
  * New syntax  {...; l = p else p'; ... }. p' is applied
    to the whole matched record when p does not match (or when
    the field is missing). Equivalent to:
    { ...; l = p; ...} | ({...;...} & p')
  * Punning in record/attribute expressions and patterns.
    { x; y } is a shorthand for {x=x;y=y}.
  * New syntax for R**n in regular expressions, equivalent
    to R...R (n times), where n > 0.
  * Interval arithmetic for the * operator.
  * Warning for potential division by 0.
  * New "system", "exit", "getenv" built-in functions.

- Toplevel, interpreter, compiler:
  * New #silent, #verbose directives.
  * New --script option.
  * Removed the warning "no caml interface".

- Compilation:
  * Better compilation of sequence capture variables.
    Now, [ ... x::Any* ] is as efficient as [ ... ; x ]. Can also be written
    [ ... /x _* ]. The [ ... ; ... ] syntax is no longer necessary
    and might be deprecated.
Pietro Abate's avatar
Pietro Abate committed
283

284 285 286 287 288
- Bug fixes, including:
  * Bug fixes in configure/Makefile for Cygwin.
  * Bug fix for the compilation of complex patterns with records.
  * Fixed a little bit support for XML Schema, but still largely broken.
  * Fix --stdin.
289
  * Bug fix in print_xml (do not create a namespace decl for "xml:").
290

291
- Distribution:
292
  * apps-cduce-cvs GODI package is updatable.
293 294
  * The release tarball does not contain the CDuce website, only
    the HTML documentation (memento, tutorial, manual).
295

296
0.2.1
297 298

- string:// scheme for load_xml and others
299 300
- code updated to OCaml 3.08.1, PXP 1.1.95
- NOTE: support for namespaces in XML Schema may be broken
301

302
0.2.0
303

304 305
- OCaml/CDuce interface.

306
- Language:
307
  * Support for URLs in load_xml, load_html, load_file, and schemas:
308
    e.g. you can write `` load_html "http://www.cduce.org/" ''
309
    (need either the ocurl package or the netclient package).
Pietro Abate's avatar
Pietro Abate committed
310
  * More advanced (and documented) support for XML Schemas.
311
  * Preliminary integration of CQL query language that is:
312 313
    select e from p1 in e1, ... ,pn in en where e'.
  * Allow structured constants in default value patterns (p := c).
314
  * Default value patterns in regexps don't consume an element.
315 316 317
  * Logical operators &&, ||, and not.
  * New syntax for currified functions
    fun (p1 : t1)...(pn : tn) : t = ...
318 319

- Incompatible changes:
320 321
  * argv is now an operator of type [] -> [ String* ].
  * The --dump, --load, --save options are deprecated.
322
  * Changes to the command line. "--pxp" is replaced with "--no expat".
Pietro Abate's avatar
Pietro Abate committed
323

324 325 326 327 328 329
- Implementation:
  * Code upgraded to Ocaml 3.07.
  * Major cleaning in progress.
  * Added internal support for abstract data types.
  * Using ulex instead of wlex.
  * Sources can now be in utf8.
330 331
  * Separate compilation.
  * Lazy implementation of @.
332 333 334

- Other:
  * Added configure script.
335
  * Various Makefile improvements.
336 337 338 339

- Bug fixes:
  * Bug fixes in the parser. Tuples are now ok in regexps.

340

341
0.1.1
342
  * Various bug fixes  (expat might now work)
343 344
  * Sequencing operator   e1;e2  (equivalent to: let [] = e1 in e2)
  * Encoded references
Pietro Abate's avatar
Pietro Abate committed
345

346

347
0.1.0
348
  * Support for XML Namespaces
349
  * Better support for expat; clean Makefile
350
  * Get rid of ;; and let fun in examples
351
  * Optional ; for record in attribute position (values and types/patterns)
352
  * Split --dump into --load and --save
353 354 355 356 357
  * Better handling of strings (specific node in AST)
  * Map, transform: tail-recursive implementation
  * Preliminary support for XML Schema
  * Various bug fixes

358

359 360 361 362 363
0.0.91
  * Second alpha release
  * Bug fixes and syntax changes (e.g. making "fun" optional in "let fun")
  * Experimenting with expat support (see expat/README)

Pietro Abate's avatar
Pietro Abate committed
364 365

0.0.9
366
  * First public release (alpha release)