CHANGES 6.94 KB
Newer Older
1
0.3.1
2 3

- Bug fix:
4 5 6
   * configure must not require pxp
   * inclusion of external entities with expat
   * META.in, cduce_mktop missing in package
7 8 9 10 11 12 13
   * 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 ||
14

15
0.3.0
16

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
- 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
36 37 38 39 40 41
   * Syntax modifications for records and attributes:
      - ".." to denote open record types/patterns:
          open record:  { l1=t1 l2=t2 .. }
          closed record: { l1=t1 l2=t2 }
      - the ";" between fields is optional even for records 
        (used to be optional only for attributes)
42
   * Keywords are now allowed as type names
43 44
   * Concatenation @ allowed in types
   * Record concatenation + allowed in types
45 46
   * Changed "string://" URL-pseudo schema to "string:" 
   * Better resolution of external entities for PXP and expat
47 48

- Tools:
49
   * A new tool cduce_mktop produces customized CDuce toplevels with embedded 
50
     OCaml externals.
51
   * Removed the validate tool.
52 53
   * Don't build dtd2cduce by default (it requires PXP). An online
     version is available at http://www.cduce.org/dtd2cduce.html
54 55

- Implementation:
56 57 58
   * Various bug fixes.
   * More efficient hash-consing of types.
   * improved #print_type (does not use the abbreviation for the printed type).
59

60
- Distribution:
61
   * MIT license.
62
   * CDuce can be built without support for PXP.
63

64 65 66 67 68
- 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.
69

70
0.2.2
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
- Language:
  * Runtime type-check: (e :? t) raises an exception when e doesn't 
    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.
    
- 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.
116
  * Bug fix in print_xml (do not create a namespace decl for "xml:").
117

118
- Distribution:
119
  * apps-cduce-cvs GODI package is updatable.
120 121
  * The release tarball does not contain the CDuce website, only
    the HTML documentation (memento, tutorial, manual).
122

123
0.2.1
124 125

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

129
0.2.0
130

131 132
- OCaml/CDuce interface.

133
- Language:
134
  * Support for URLs in load_xml, load_html, load_file, and schemas:
135
    e.g. you can write `` load_html "http://www.cduce.org/" ''
136
    (need either the ocurl package or the netclient package).
137
  * More advanced (and documented) support for XML Schemas. 
138
  * Preliminary integration of CQL query language that is:
139 140
    select e from p1 in e1, ... ,pn in en where e'.
  * Allow structured constants in default value patterns (p := c).
141
  * Default value patterns in regexps don't consume an element.
142 143 144
  * Logical operators &&, ||, and not.
  * New syntax for currified functions
    fun (p1 : t1)...(pn : tn) : t = ...
145 146

- Incompatible changes:
147 148
  * argv is now an operator of type [] -> [ String* ].
  * The --dump, --load, --save options are deprecated.
149
  * Changes to the command line. "--pxp" is replaced with "--no expat".
150 151 152 153 154 155 156
 
- 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.
157 158
  * Separate compilation.
  * Lazy implementation of @.
159 160 161

- Other:
  * Added configure script.
162
  * Various Makefile improvements.
163 164 165 166

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

167

168
0.1.1
169
  * Various bug fixes  (expat might now work)
170 171 172 173
  * Sequencing operator   e1;e2  (equivalent to: let [] = e1 in e2)
  * Encoded references
  

174
0.1.0
175
  * Support for XML Namespaces
176
  * Better support for expat; clean Makefile
177
  * Get rid of ;; and let fun in examples
178
  * Optional ; for record in attribute position (values and types/patterns)
179
  * Split --dump into --load and --save
180 181 182 183 184
  * Better handling of strings (specific node in AST)
  * Map, transform: tail-recursive implementation
  * Preliminary support for XML Schema
  * Various bug fixes

185

186 187 188 189 190 191
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)
 

192 193
0.0.9  
  * First public release (alpha release)