+2010-06-21 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * compiler.cs: Add new internal flag to switch on regexp tracing.
+ The code is a statc readonly variable so the JIT can eliminate
+ all tracing code during normal runs.
+
+2010-03-20 Miguel de Icaza <miguel@novell.com>
+
+ * RxInterpreter.cs: Removed warnings.
+
+2010-02-03 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * BaseMachine.cs (Split): Don't add empty strings if they don't come from
+ the first capture group. Fixes #566117.
+
+2010-01-12 Miguel de Icaza <miguel@novell.com>
+
+ * Regex.cs: Re-enable the new regex compiler as the bug seems to
+ be gone now.
+
+2009-09-07 Raja R Harinath <harinath@hurrynot.org>
+
+ * Regex.cs (Escape, Unescape): Add null checks.
+ (validate_options): Add ECMAScript option checks.
+ (Replace, Split): Add a few bounds checks.
+
+2009-09-07 Raja R Harinath <harinath@hurrynot.org>
+
+ Add some null checks and bounds checks.
+ * Regex.cs (default_startat): New. Replaces the fragment
+ 'RightToLeft ? input.Length : 0' with a null-safe variant.
+ (Replace) <string variant>: Add null checks for argument strings.
+ (Split): Likewise.
+ (.ctor): Likewise. Validate regex options partially.
+ (Match): Add null check on string arguments, and bounds checks for
+ offset and length arguments.
+
+2009-08-20 Raja R Harinath <harinath@hurrynot.org>
+
+ Final piece of explicit numeric group support
+ * parser.cs (gap): New.
+ (GetMapping): Return it.
+ (ResolveReferences): Collect explicit numeric groups which may not
+ match their indices.
+ (HandleExplicitNumericGroups): New. Process the above list to
+ assign appropriate indices, and compute the correct value of 'gap'.
+
+2009-08-20 Raja R Harinath <harinath@hurrynot.org>
+
+ * syntax.cs (CapturingGroup.Index): Rename from Number to clarify
+ semantics.
+ (CapturingGroup.CompareTo): New.
+ * parser.cs, syntax.cs: Update to changes.
+
+2009-08-20 Raja R Harinath <harinath@hurrynot.org>
+
+ Implement some more group number/index distinction
+ * Regex.cs (gap, Gap): New.
+ (Init, InitNewRegex): Update it.
+ (GroupNumberFromName): If the 'name' is beyond the gap, it is an
+ explicit numeric group -- use the name as the group number.
+ (GetGroupIndex): Use a binary search to map a group number to its
+ index when we know that they don't match.
+ (GroupNumbers): Use group number, not group index, for explicit
+ numeric groups.
+ * Match.cs (.ctor): Use the newly introduce 'Regex.Gap'.
+
+2009-08-19 Raja R Harinath <harinath@hurrynot.org>
+
+ * Regex.cs (group_numbers): New.
+ (GetGroupNumbers): Move array initialization ...
+ (GroupNumbers): ... to new on-demand initializer.
+
+2009-08-19 Raja R Harinath <harinath@hurrynot.org>
+
+ * Regex.cs (group_names): Rename from _groupNumbersToNameMap.
+ (GetGroupNamesArray): Use an IDictionaryEnumerator to walk the
+ mapping, since both the key and value are used in the loop.
+
+2009-08-19 Raja R Harinath <harinath@hurrynot.org>
+
+ Introduce 'gap' concept into all the variants of regex
+ * arch.cs (IMachineFactory::Gap): New property.
+ * compiler.cs (InterpreterFactory): Update to changes.
+ * RxCompiler.cs (RxInterpreterFactory): Likewise.
+ * JvmReMachineFactory.cs: Likewise.
+ * parser.cs (GetMapping): Return the 'gap' index. Move creation
+ of mapping dictionary ...
+ * Regex.cs (CreateMachineFactory): ... here. Update to changes.
+
+2009-08-18 Raja R Harinath <harinath@hurrynot.org>
+
+ Distinguish between the internal index of a group and group number.
+ * Regex.cs (GetGroupIndex): New.
+ (GroupNameFromNumber): Use it.
+ * GroupCollection.cs (.ctor): Introduce 'gap' argument. It is the
+ index of the first group whose group number differs from its index.
+ (Item.get): Likewise.
+
+2009-08-18 Raja R Harinath <harinath@hurrynot.org>
+
+ * parser.cs (GetMapping): Extend duplicate check for numeric
+ groups too.
+
+2009-08-17 Raja R Harinath <harinath@hurrynot.org>
+
+ * parser.cs (ResolveReferences): Handle some cases of
+ explicitly-named numeric groups.
+
+2009-08-17 Raja R Harinath <harinath@hurrynot.org>
+
+ * parser.cs (ResolveReferences): Rearrange slightly to prepare for
+ future changes.
+
+2009-08-17 Raja R Harinath <harinath@hurrynot.org>
+
+ * Regex.cs (GetGroupNumbers): List group numbers in ascending order.
+ (GetGroupNames): List names in order of group number.
+
+2009-08-12 Raja R Harinath <harinath@hurrynot.org>
+
+ * syntax.cs (BackslashNumber.ResolveReference): Improve ECMAScript
+ semantics. Handle cases like "group 43 exists but group 4 doesn't".
+
+2009-08-10 Raja R Harinath <harinath@hurrynot.org>
+
+ * syntax.cs (BackslashNumber.ResolveReference): Implement fallback
+ to octal numbers, and ECMAScript semantics.
+ * parser.cs (ResolveReferences): Use it.
+
+2009-08-10 Raja R Harinath <harinath@hurrynot.org>
+
+ * syntax.cs (BackslashNumber): New class.
+ * parser.cs (ParseSpecial): Create it instead of 'Reference' if a
+ numeric backreference is seen.
+
+2009-08-10 Raja R Harinath <harinath@hurrynot.org>
+
+ * parser.cs (ResolveReferences): Allow named groups to be
+ referred-to by their group numbers too.
+
+2009-04-23 Sebastien Pouliot <sebastien@ximian.com>
+
+ * Regex.cs: Remove Compiler-related support for NET_2_1
+ * RegexOptions.cs: Remove Compile from values available on NET_2_1
+
+2009-03-04 Zoltan Varga <vargaz@gmail.com>
+
+ * RxInterpreter.cs (ResetGroups): Avoid allocating larger than needed
+ arrays.
+
+2009-02-27 Jonathan Pryor <jpryor@novell.com>
+
+ * Regex.cs (Replace): Check that input & evaluator are not null, as
+ documented in MSDN (and the variance found while testing DbLinq).
+
+2009-02-27 Zoltan Varga <vargaz@gmail.com>
+
+ * BaseMachine.cs (LTRReplace): Initialize the StringBuilder with an
+ appropriate initial length.
+
+2009-02-24 Zoltan Varga <vargaz@gmail.com>
+
+ * CILCompiler.cs: Partially inline calls to Char.ToLower () to speed
+ up ignorecase matching.
+
+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.