+2009-02-16 Jb Evain <jbevain@novell.com>
+
+ * Regex.cs: on the NET_2_1 profile, always use the old engine for now.
+
+2009-02-14 Zoltan Varga <vargaz@gmail.com>
+
+ * Regex.cs: Add a MONO_NEW_RX variable to enable the new regex
+ engine.
+
+2009-02-04 Zoltan Varga <vargaz@gmail.com>
+
+ * Regex.cs: Disable the new regex engine for now.
+
+2009-01-14 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Avoid throwing exceptions for a few more unhandled opcodes.
+ Implement the reverse/ignorecase versions of Reference. Fix the reverse
+ version of Bitmap. Error out if a Jump opcode jumps outside the current
+ pc range. This works around #466151.
+
+2009-01-12 Jb Evain <jbevain@novell.com>
+
+ * RxInterpreter.cs: set trace_rx to false for NET_2_1.
+ * Regex.cs: set old_rx to false for NET_2_1.
+
+2009-01-07 Zoltan Varga <vargaz@gmail.com>
+
+ * RxInterpreter.cs: Add support for constant strings in anchors. Fixes
+ #464135.
+
+2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * cache.cs: avoid infinite loop.
+
+2008-11-14 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * cache.cs:
+ * Regex.cs: honor CacheSize value.
+
+2008-11-13 Zoltan Varga <vargaz@gmail.com>
+
+ * RxInterpreter.cs: Fix pc computation in various opcodes. Fixes #443841.
+
+2008-11-11 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Implement Reference opcode.
+
+2008-10-30 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Implement SubExpression opcode.
+
+ * CILCompiler.cs: Save and restore strpos in the Test opcode. Fixes
+ #439947.
+
+2008-10-25 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Implement Test opcode.
+
+2008-10-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
+
+ * RxInterpreter.cs: implement missing Unicode* opcodes and
+ StringReverseIgnoreCase.
+
+2008-10-25 Zoltan Varga <vargaz@gmail.com>
+
+ * RxOp.cs: Remove unused Generic opcodes.
+
+ * RxCompiler.cs: Emit opcodes with flags using methods which can be
+ overriden by CILCompiler.cs, so we only have to override a few methods.
+
+ * CILCompiler.cs: Simplify based on the RxCompiler changes. Implement
+ UnicodeString opcode. Throw a NotImplementedException when an unsupported
+ opcode is encountered, since the IL compiler is now believed to be feature
+ complete.
+
+2008-10-24 Zoltan Varga <vargaz@gmail.com>
+
+ * RxInterpreter.cs CILCompiler.cs gen-interp.cs: Fix the reading of short
+ values from the instruction stream.
+
+ * RxOp.cs: Add some missing unicode opcodes.
+
+ * gen-interp.cs RxInterpreter.cs: Generate Bitmap/UnicodeBitmap opcodes too.
+
+ * CILCompiler.cs (EmitEvalMethodBody): Add an 'end_pc' argument to mark the
+ end of the bytecode range which needs to be compiled. Use it to avoid
+ compiling the same bytecode multiple times in various opcodes. Fix
+ RxOp.Jump implementation. Add implementation for unicode opcodes.
+
+2008-10-09 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Implement NoBitmap/NoBitmapIgnoreCase. Fixes #432172.
+
+2008-09-14 Zoltan Varga <vargaz@gmail.com>
+
+ * gen-interp.cs: New file to generate the all variants of the character
+ checking opcodes in RxInterpreter.cs.
+
+ * RxInterpreter.cs: Replace hand written code with code generated by
+ gen-interp.cs.
+
+ * RxInterpreter.cs: Fix the failure case of the No<XXX> opcodes. Fixes
+ #426142.
+
+2008-09-13 Zoltan Varga <vargaz@gmail.com>
+
+ * RxInterpreter.cs RxCompiler.cs: Implement some missing Category opcodes.
+
+2008-09-07 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Override ICompiler.EmitSet too so we set op_flags for
+ Bitmap opcodes too. Fixes #424073.
+
+2008-09-06 Zoltan Varga <vargaz@gmail.com>
+
+ * Regex.cs: Make the new regex interpreter+compiler the default.
+
+2008-08-31 Zoltan Varga <vargaz@gmail.com>
+
+ * RxInterpreter.cs: Port the Anchor+StartOfString optimization from the old
+ interpreter. Add credits.
+
+ * RxCompiler.cs (EmitString): Lowercase the string if ignore is true.
+
+ * CILCompiler.cs: Fix the setting of the match position in the
+ anchor+char optimization.
+
+ * CILCompiler.cs: Implement FastRepeatLazy.
+
+ * CILCompiler.cs: Get rid of commented out code. Also get rid of
+ frame.local_strpos_res, since the generated code already set Arg1 to
+ the same value.
+
+2008-08-30 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Initialize all mi_ variables lazily.
+
+ * CILCompiler.cs: Implement FastRepeat.
+
+ * RxInterpreter.cs: Add back SetStartOfMatch, make it protected so as to
+ avoid a warning.
+
+ * CILCompiler.cs RxOp.cs: Merge lots of changes from RxInterpreter.cs,
+ refactor the code.
+
+2008-08-29 Zoltan Varga <vargaz@gmail.com>
+
+ * RxInterpreter.cs RxCompiler.cs RxOp.cs: Implement/fix this so all the
+ regex tests now run. The Repeat code is taken from the old interpreter.
+
+2008-08-28 Zoltan Varga <vargaz@gmail.com>
+
+ * RxInterpreter.cs RxCompiler.cs RxOp.cs: Add support for
+ Category.AnySingleline.
+
+2008-08-27 Zoltan Varga <vargaz@gmail.com>
+
+ * RxCompiler.cs: Use Array.Copy since Buffer.BlockCopy operates on bytes.
+
+2008-07-31 Jb Evain <jbevain@novell.com>
+
+ * BaseMachine.cs: clean up for NET_2_1.
+
+2008-06-05 Roei Erez <roeie@mainsoft.com>
+
+ * JvmReMachine.jvm.cs: Fix a bug in match that contains
+ empty group at the end.
+
+2008-04-13 Jb Evain <jbevain@novell.com>
+
+ * Regex.cs: update undocumented fields for the 2.1 profile.
+ Merged from the Moonlight 2 branch.
+
+2008-02-26 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Implement StringIgnoreCase.
+
+ * CILCompiler.cs: Implement grouping support.
+
+ * CILCompiler.cs: Implement character groups.
+
+2008-02-25 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Implement lots of missing opcodes.
+
+2008-02-18 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs (EmitEvalMethodBody): Check for the not-yet supported
+ groups.Count > 1.
+
+Thu Feb 14 19:03:00 CET 2008 Paolo Molaro <lupus@ximian.com>
+
+ * RxCompiler.cs, RxInterpreter.cs, RxOp.cs, CILCompiler.cs : support for word
+ boundary position opcodes, ignorecase backreference and more capture
+ work.
+
+Thu Feb 14 17:11:10 CET 2008 Paolo Molaro <lupus@ximian.com>
+
+ * RxCompiler.cs, RxInterpreter.cs, RxOp.cs: replace EcmaDigit with
+ Range, fixed matching of "" =~ /$/, implementedt TestCharGroup.
+ Fixes and other misc opcodes implemented.
+
+2008-02-13 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Restructure some code to avoid a branch inside a loop.
+
+ * CILCompiler.cs: Fix the unsafe string matching code.
+
+ * CILCompiler.cs: Improved version which emits only one method in most cases.
+
+ * CILCompiler.cs: Fix some comments.
+
+ * CILCompiler.cs: New file, extracted from RxCompiler.cs.
+
+ * RxInterpreter.cs RxCompiler.cs: First version of regex IL compiler.
+
+Wed Feb 13 13:18:12 CET 2008 Paolo Molaro <lupus@ximian.com>
+
+ * RxCompiler.cs, RxInterpreter.cs, RxOp.cs: unicode categories and
+ some grouping/capture support.
+
+Tue Feb 12 19:16:49 CET 2008 Paolo Molaro <lupus@ximian.com>
+
+ * RxCompiler.cs, RxInterpreter.cs, RxOp.cs: experimental new
+ interpreter.
+
+2008-02-10 Zoltan Varga <vargaz@gmail.com>
+
+ * replace.cs (NeedsGroupsOrCaptures): New property. Determines whenever the
+ replacement process needs access to the groups or captures properties of the
+ Match object.
+
+ * Group.cs: Add an internal ctor which avoids allocations.
+
+ * Match.cs: Ditto.
+
+ * BaseMachine.cs interpreter.cs: Add an optimization to avoid fully creating
+ Match objects during Replace () if the replacement string is simple.
+
+ * BaseMachine.cs Regex.cs: Make LTRReplace and RTLReplace instance methods to
+ avoid creating two machines for each Regex.Replace () call.
+
+ * interpreter.cs (Eval): Remove a needless string allocation.
+
+2007-12-04 Arina Itkes <arinai@mainsoft.com>
+
+ * parser.cs: Max value of m for a construct {n,m} is 2147483647.
+
+2007-11-15 Miguel de Icaza <miguel@novell.com>
+
+ * Revert the patch from Juraj Skripsky as it made the class
+ non-thread safe (see #341986).
+
+2007-11-08 Raja R Harinath <harinath@gmail.com>
+
+ Fix 324390
+ * BaseMachine.cs (LTRReplace): Don't use non-advancement of 'ptr'
+ to deduce absence of matches -- a match can have length 0.
+ (RTLReplace): Likewise.
+
+2007-11-07 Raja R Harinath <harinath@gmail.com>
+
+ Support RegexOptions.RightToLeft in Replace().
+ * BaseMachine.cs (Replace): Use either LTRReplace or RTLReplace
+ based on regex.
+ (LTRReplace): Make internal and rename the MatchAppendEvaluator
+ version of Replace to this.
+ (RTLReplace): New.
+ * Regex.cs (Replace): Use LTRReplace and RTLReplace from BaseMachine.
+ * replace.cs (ReplacementEvaluator.Evaluate): Optimize simple case.
+ Based on patch by Stephane Delcroix.
+
+ * replace.cs (Compile): Don't unescape string.
+
+2007-11-01 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * Match.cs: Do not throw NotSupportedException on zero-length
+ replacement argument.
+
+2007-10-29 Arina Itkes <arinai@mainsoft.com>
+
+ * Regex.cs: Moving creation of Regex machine to ctor.
+ It increases an initialization time of Regex but reduce a
+ process time while APIs calling. Also it solves the problem
+ of missed multi thread synchronization.
+
+2007-10-29 Arina Itkes <arinai@mainsoft.com>
+
+ * Match.cs: Fix for Result method of Match. Throwing an exception
+ if Result method was called on a failed Match.
+
+2007-10-24 Juraj Skripsky <js@hotfeet.ch>
+
+ * Regex.cs: Store and re-use IMachine, no need to re-instantiate
+ it every time we're matching.
+
+2007-10-24 Arina Itkes <arinai@mainsoft.com>
+
+ * Regex.cs Match.cs arch.cs compiler.cs interpreter.cs
+ Refactoring of Interpreter with extracting of base abstract class
+ that executes some methods that were moved from Regex and Match classes.
+ Added a field that maps group numbers to group names in Regex for
+ improvement of performance of GroupNameFromNumber method.
+
+2007-10-21 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * RegexTest.cs: Removed. Test was already moved to the appropriate
+ location.
+
+2007-06-21 Juraj Skripsky <js@hotfeet.ch>
+
+ * quicksearch.ch: Optimization. Add byte array as skip table for
+ chars <= 255, falling back to the hashtable for chars > 255 and
+ skip distances > 255.
+
+2007-04-18 Raja R Harinath <rharinath@novell.com>
+
+ Fix #80554
+ * parser.cs (ResolveReferences): Don't throw an expression if a
+ capture assertion reference cannot be resolved.
+ (ParseGroupingConstruct): Provide fallback expression to a capture
+ assertion.
+ * syntax.cs (CaptureAssertion): If the bareword doesn't refer to
+ the name of a capture group, fallback to treating it as a literal
+ expression.
+
+2007-04-04 Raja R Harinath <rharinath@novell.com>
+
+ * interpreter.cs (Eval) <OpCode.Reference>: Distribute for loop
+ inside if.
+ for () if (a) s1; else s2; => if (a) for () s1; else for () s2;
+
2007-04-03 Raja R Harinath <rharinath@novell.com>
* Regex.cs (~Regex): Don't define in NET_2_0 profile.