795a3f32f84c0a68531f9248db45aa60548a1537
[mono.git] / mcs / class / Commons.Xml.Relaxng / Commons.Xml.Relaxng.Derivative / ChangeLog
1 2009-02-23  Atsushi Enomoto <atsushi@ximian.com>
2
3         * RdpPattern.cs : added "Anything" which is used in error recovery
4           support.
5
6 2007-12-14  Atsushi Enomoto <atsushi@ximian.com>
7
8         * RdpPattern.cs : For ContainsText() (for interleave text/text 
9           constraint check), element pattern should return false.
10           Fixed bug #347945.
11
12 2007-04-18  Atsushi Enomoto <atsushi@ximian.com>
13
14         * RdpPatterns.cs : inside elements, reset oneOrMore[Group] flags in
15           CheckConstraints().
16
17 2006-02-02  Atsushi Enomoto <atsushi@ximian.com>
18
19         * RdpPatterns.cs : After profiling in depth, finally I found the
20           source of the worst perf. problem in the code - return x for 
21           (choice x x).
22           It now validates 5MB of OpenDocument specification content.xml,
23           which only Jing could do.
24
25 2006-01-16  Atsushi Enomoto <atsushi@ximian.com>
26
27         * RdpObjects.cs : fixed warnings.
28
29 2006-01-16  Atsushi Enomoto <atsushi@ximian.com>
30
31         * RdpPatterns.cs : RdpOneOrMore.EmptyTextDeriv() should be "override".
32           RdpList.EmptyTextDeriv() (which was also virtual incorrectly) was 
33           removed since the code was in wrong assumption.
34         * Util.cs : debug string now contains data and dataExcept info.
35
36 2006-01-15  Atsushi Enomoto <atsushi@ximian.com>
37
38         * RdpPatterns.cs : lazy evaluate Group branches. If left hand is
39           notAllowed, the returned value is always NotAllowed, no need to
40           compute another branch.
41
42 2006-01-13  Atsushi Enomoto <atsushi@ximian.com>
43
44         * RdpObjects.cs, RdpPatterns.cs : introduced "IsContextDependent"
45           optimization; when a pattern is (namespace) context independent
46           (almost all cases except for QName validation), new TextDeriv()
47           overload that takes MemoizationStore memoizes TextDeriv results.
48
49 2006-01-12  Atsushi Enomoto <atsushi@ximian.com>
50
51         * RdpPattern.cs :
52           Introduced EmptyTextDeriv() so that the results could be memoized.
53
54 2006-01-10  Atsushi Enomoto <atsushi@ximian.com>
55
56         * RdpPatterns.cs :
57           - Added StartAttDeriv(), EndAttDeriv() and IsTextValueDependent.
58             (See corresponding changes in RelaxngValidatingReader.cs).
59           - Added a bunch of derivative method overloads to receive 
60             MemoizationStore and memoize results efficiently.
61
62 2006-01-05  Atsushi Enomoto <atsushi@ximian.com>
63
64         * RdpPatterns.cs :
65           - Fixed RdpPattern.TextDeriv() and MixedTextDeriv() to not allow 
66             whitespaces incorrectly.
67           - Fixed MixedTextDeriv() to not require string argument.
68           - Erased commented code.
69           - in listDerivInternal(), skip empty strings.
70           - ValueMatch() should allow whitespaces if the pattern is nullable
71             (as defined in derivative).
72           - Replaced MakeChoice()/MakeGroup()/MakeInterleave()/MakeAfter()
73             in TextOnlyDeriv() and MixedTextDeriv(). They should not be
74             constructions but should be functions (thus, member methods).
75           - Fixed Nullable in RdpData and RdpValue to conform to the
76             derivative algorithm (it incorrectly extended to return false
77             for RELAX NG predefined datatypes).
78
79 2006-01-04  Atsushi Enomoto <atsushi@ximian.com>
80
81         * RdpPattern.cs :
82           - Implemented textOnlyDeriv and mixedTextDeriv of "memoization".
83             Details are described in the "derivative" algorithm:
84             http://www.thaiopensource.com/relaxng/derivative.html#Memoization
85           - Added MakeChoiceLeaf() to implement "choice-leaves":
86             http://www.thaiopensource.com/relaxng/derivative.html#Avoiding_exponential_blowup
87           - To intern effectively, reorder choice and interleave contents by
88             hash code.
89           - Avoid extra pattern creation with related to empty and notAllowed
90             as one hand of binary branches.
91
92 2006-01-03  Atsushi Enomoto <atsushi@ximian.com>
93
94         * RdpPattern.cs : reduced RdpFlip instantiation. Share patternPool
95           only when it does not exist.
96
97 2006-01-03  Atsushi Enomoto <atsushi@ximian.com>
98
99         * Util.cs, RdpPatterns.cs : optimization. Removed extraneous
100           delegate instantiation. Avoid using enum for HashTable keys.
101
102 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
103
104         * Util.cs RdpObjects.cs RdpContentType.cs RdpNameClasses.cs
105           RdpPatterns.cs :
106
107           ... and svn:eol-style as well, since there is exactly no one else
108           who develops this assembly and messes no one else.
109
110 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
111
112         * Util.cs RdpObjects.cs RdpContentType.cs RdpNameClasses.cs
113           RdpPatterns.cs :
114
115           Ugh, seems like svn server shows different diffs than that of
116           client. Anyways here I fixed all mixed line endings.
117
118 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
119
120         * RdpPatterns.cs : in ValueMatch() it should not strip whitespaces
121           which could be validated. This fixes test #256/2.i.xml.
122
123 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
124
125         * RdpPatterns.cs : oneOrMore ancestor check for anyName/nsName in
126           section 7.3 was missing. This fixes test #357, #358 and #359.
127         * RdpNameClass.cs : added HasInfiniteName property to RdpNameClass.
128
129 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
130
131         * RdpPattern.cs, RdpUtil.cs : reimplemented name class analysis to
132           not create extraneous QName instances. This also fixes some weird
133           bugs (test #362 and #363).
134
135 2005-12-27  Atsushi Enomoto <atsushi@ximian.com>
136
137         * RdpPattern.cs : Checking interleave restriction in section 7.4 with
138           PatternType was not insufficient. Now I use ContainsText(). It fixes
139           testcase #371.
140
141 2005-12-20  Atsushi Enomoto <atsushi@ximian.com>
142
143         * RdpPattern.cs : cache ContentType and save speed.
144
145 2005-09-20  Atsushi Enomoto <atsushi@ximian.com>
146
147         * Util.cs : Added name class analysis support. The algorithm is at
148           http://www.thaiopensource.com/relaxng/nameclass.html .
149         * RdpPattern.cs :
150           - added CheckNameOverlap() for group and interleave to do name class
151             analysis (spec 7.3 and 7.4).
152           - Removed CheckAttributeDuplicates(). Now name class analysis is
153             implemented in CheckNameOverlap().
154           - Added additional bool parameter to GetLabels() to collect
155             RdpNameClass instances instead of XmlQualifiedName instances.
156
157 2005-07-31  Atsushi Enomoto <atsushi@ximian.com>
158
159         * RdpPattern.cs : GetLabels() for RdpGroup should check attributes
160           when the left branch is not nullable (it works like an interleave).
161           Implemented spec 7.3 attribute check (though not enabled for now).
162
163 2005-04-11  Atsushi Enomoto <atsushi@ximian.com>
164
165         * Util.cs : tiny debug string fix.
166
167 2005-03-01  Atsushi Enomoto <atsushi@ximian.com>
168
169         * RdpPattern.cs : In "textDeriv(group p1 p2) s", "nullable p1" is
170           incorrectly computed as "nullable p".
171
172 2005-02-06  Atsushi Enomoto <atsushi@ximian.com>
173
174         * RdpObjects.cs : provide error type name. removed commented code block.
175
176 2005-02-06  Atsushi Enomoto <atsushi@ximian.com>
177
178         * RdpPattern.cs : MakeOneOrMore() did not always set up internal table.
179
180 2004-12-06  Atsushi Enomoto <atsushi@ximian.com>
181
182         * Util.cs : trivial debug string fix.
183         * RdpPattern.cs : trivial formatting fix.
184
185 2004-12-06  Atsushi Enomoto <atsushi@ximian.com>
186
187         * RdpPattern.cs : The last attribute stuff broke usual validation wrt
188           global attributes.
189
190 2004-12-06  Atsushi Enomoto <atsushi@ximian.com>
191
192         * RdpPattern.cs : fixed setupTable(). Avoid boxing.
193
194 2004-12-05  Atsushi Enomoto <atsushi@ximian.com>
195
196         * RdpPattern.cs : RdpAttribute now omits value check when the argument
197           value is null. It is useful to get labels.
198
199 2004-12-05  Atsushi Enomoto <atsushi@ximian.com>
200
201         * RdpPattern.cs : added GetLabels().
202
203 2004-06-25  Atsushi Enomoto <atsushi@ximian.com>
204
205         * RdpContentType.cs, RdpNameClass.cs, RdpObjects.cs, RdpPatterns.cs,
206           Util.cs : added novell license term.
207
208 2004-06-21  Atsushi Enomoto <atsushi@ximian.com>
209
210         * RdpPatterns.cs : Fixed ExpandRef() that caused incorrect nest error.
211
212 2004-06-17  Atsushi Enomoto <atsushi@ximian.com>
213
214         * RdpPatterns.cs : Quick workaround for infinite loop happening in
215           some kind of recursive expansion.
216
217 2004-03-12  Atsushi Enomoto <atsushi@ximian.com>
218
219         * RdpPatterns.cs : Fixed TextDeriv() to allow whitespace text nodes
220           except for Data and Value (though they are overridden).
221
222 2004-02-25  Atsushi Enomoto <atsushi@ximian.com>
223
224         * Added RdpContextType.cs.
225         * RdpNameClasses.cs,
226           RdpObjects.cs,
227           RdpPatterns.cs,
228           Util.cs : radical design change (too many things to write up).
229
230 2003-05-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
231
232         * RdpPattern.cs : Some method name capitalization.
233           Fixed RdpInterleave.StartTagOpenDeriv() which is logically incorrect.
234
235 2003-05-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
236
237         * RdpPattern.cs : added RdpAttribute.expandRef(). UnresolvedRef had
238           remained in attribute patterns.
239
240 2003-04-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
241
242         * Started.
243         * added ChangeLog, RdpNameClasses.cs, RdpObjects.cs, RdpPatterns.cs
244           and Util.cs.
245