2011-06-23  Jb Evain  <jbevain@gmail.com>

	Fix queryable enumerable expression transformation

2011-06-23  Jb Evain  <jbevain@gmail.com>

	Don't emit null queryable constants when rewriting linq queries,
	fix #701187

2011-01-25  Geoff Norton  <grompf@sublimeintervention.com>

	Further .NET 4.0 ification of the mobile profile

2011-01-26  Jb Evain  <jbevain@gmail.com>

	[linq] Fix Reverse for IList implementors

2011-01-25  Jb Evain  <jbevain@gmail.com>

	[linq] Fix overflow check for Count

2011-01-25  Jb Evain  <jbevain@gmail.com>

	[linq] fix Range extreme boundaries

2010-12-30  Jb Evain  <jbevain@gmail.com>

	[LINQ] Fix non generic AsQueryable issue #661462

2010-12-15  Jérémie Laval  <jeremie.laval@gmail.com>

	Sys.Core parameters fixup

2010-12-15  Marek Safar  <marek.safar@gmail.com>

	Some .net 4.0 api compatibility fixes

2010-12-09  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Detect when AsParallel is called multiple time in a query
	and simply reuse the existing ParallelQuery object

2010-08-26  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Add dummy GetEnumerator override in OrderedParallelQuery
	to make gui-compare happy

2010-08-26  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Include Cancellation checks deeper in the pipeline
	processing

2010-08-25  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Use default comparer instead of throwing an ANE in PLinq
	operators

2010-08-24  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Implement GroupBy operator

2010-08-24  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Plug in QueryJoinNode for Join operator

2010-08-20  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Add implementation of Take/TakeWhile operators (including
	corresponding query node and unit tests)

2010-08-19  Jb Evain  <jbevain@gmail.com>

	[Fix] Enumerable.Except: return a duplicate free set. Fix bug
	#611821.

2010-08-18  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Tune SkipWhile operator, re-enable its unit tests

2010-08-18  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Reflect directory hierarchy change on namespace names

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Move NET_4_0 define check under licence text

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Fix and improve Skip operator and use two different
	versions of the predicate depending on the relative order of the
	query.

	This actually make the operator complies to the behavior described
	in MSDN "Order Preservation" table.

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Fix ToArray and ToList operator to also conservatively
	keep order when an explicit order guard is in the query.

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Fix ProcessAndAggregate to correctly initialize its seed
	with all workers when no seedFunc is supplied.

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Add a IsOrdered internal operator that naively says if the
	current node is behind an ordered guard.

	This is necessary for some PLinq operator that can provide a
	better optimized version of themselves when there is no ordering
	constraint whithout having to create yet another query node. Note
	that the method can be optimized with a more specialized version
	of the visitor.

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Remove unused Process overload.

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	Fix whitespace mess in ParallelEnumerable methods.

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Fix visitor behavior when on a QueryOrderGuardNode.

	Previously the case of Unordered wasn't taken in account and the
	control flow wasn't properly forwarded to the following nodes in
	the query# Please enter the commit message for your changes. Lines
	starting

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Switch to the more reliable ToListOrdered operator in
	QueryReverseNode.

	Using ToArray directly, even though incorrect, was working by a
	twist of fate in that the mostly-standard partitioner and ToArray
	operator were based on the same assumptions.

2010-08-17  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Terminate directly when all the necessary values have been
	correctly staged in OrderingEnumerator.

2010-08-16  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Enclose operator processing in a try/finally block so that
	upon Dispose'ing the iterator a cleanup path is also called.

	This prevent some other operator from deadlocking by e.g. removing
	participant in barrier that ordered operator may use.

2010-08-16  Jérémie Laval  <jeremie.laval@gmail.com>

	[PLinq] Cleanup code in QueryNodes.

	Switch from manually creating result sets to creating them with a
	Linq query. Replaced some type with var. Split indexed and non
	indexed call in two different virtual method call.

2010-07-14  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Union): fix HashSet.Contains call.

2010-07-13  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Except): fix HashSet.Contains call.
	Fixes #621911.

2010-06-22  Jb Evain  <jbevain@novell.com>

	* Queryable.cs: properly set the constants types in the queryable
	expression tree.

2010-06-22  Jb Evain  <jbevain@novell.com>

	* EnumerableQuery_T.cs
	* QueryableEnumerable.cs:
		override ToString.

2010-06-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>

	* EnumerableQuery.cs:
	* EnumerableQuery_T.cs:
	* EnumerableExecutor.cs: 
	* EnumerableExecutor_T.cs: Include in Moonlight.

	* Enumerable.cs: Moonlight too needs Zip.

2010-05-25  Jérémie Laval  <jeremie.laval@gmail.com>

	* ParallelExecuter.cs: Fix NRE caused by lambda wrapping

2010-05-25  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: make Reverse lazier. Based on a patch by
	Matthew Flaschen <matthew.flaschen@gatech.edu>. Fixes #608195.

2010-05-19  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: fix GroupBy to deal with a null key for the last
	group entry. Also fix GroupBy to properly throw ArgumentNullException.

2010-05-05  Jérémie Laval  <jeremie.laval@gmail.com>

	* ParallelEnumerable.cs: Some operators weren't declared
	as extension methods. Fixed.

2010-04-29  Jérémie Laval  <jeremie.laval@gmail.com>

	* ParallelQueryEnumerator.cs: Use new non-blocking collection
	for storing indexed elements.

2010-04-29  Jérémie Laval  <jeremie.laval@gmail.com>

	* ParallelExecuter.cs: Bring indexed worker methods support.
	Check for null callback.

2010-04-15  Jérémie Laval  <jeremie.laval@gmail.com>

	* OrderedParallelQuery.cs:
	* ParallelEnumerable.cs:
	* ParallelExecuter.cs:
	* ParallelPartitioner.cs:
	* ParallelQuery.cs:
	* ParallelQueryEnumerator.cs: First check-in of PLinq

2010-04-15  Jérémie Laval  <jeremie.laval@gmail.com>

	* ParallelExecutionMode.cs:
	* ParallelMergeOptions.cs: Initial check-in of PLinq (enum)

2010-04-12  Miguel de Icaza  <miguel@novell.com>

	* Enumerable.cs: Jumbo patch that inlines code, mainly for the AOT
	scenario where we our compiler cant infer the extra layer of
	indirection of a lambda function.

	But additionally, since we lack support for our JIT to inline
	intermediate delegate calls, it should save memory and run
	faster. 

2010-04-07  Jb Evain  <jbevain@novell.com>

	* EnumerableExecutor.cs: make ctor protected.

2010-04-07  Jb Evain  <jbevain@novell.com>

	* EnumerableQuery_T.cs: implement.

2010-04-07  Jb Evain  <jbevain@novell.com>

	* EnumerableQuery.cs: make ctor protected.

2010-04-06  Jb Evain  <jbevain@novell.com>

	* QueryableEnumerable.cs: make TransformQueryable work on net_4_0.

2010-04-06  Jb Evain  <jbevain@novell.com>

	* QueryableTransformer.cs: use factory method that work for all
	ET implementations.

2010-03-30  Jb Evain  <jbevain@novell.com>

	* Queryable.cs: implement Zip for net_4_0.

2010-03-24  Jb Evain  <jbevain@novell.com>

	* SortSequenceContext.cs: Fix OrderByDescending stability.
	Based on a patch by Richard Kiene  <richard.kiene@logos.com>.

2010-02-23  Marek Safar  <marek.safar@gmail.com>

	* Enumerable.cs: Implement Zip.

2010-01-25  Jb Evain  <jbevain@novell.com>

	* QueryableTransformer.cs (ReplaceQueryableMethod): fix
	exception message.

2009-12-03  Marek Safar  <marek.safar@gmail.com>

	* EnumerableExecutor.cs, EnumerableExecutor_T.cs, EnumerableQuery.cs
	EnumerableQuery_T.cs: Implemented.

2009-11-14  Jb Evain  <jbevain@novell.com>

	* QueryableTransformer: adjust to latest ExpressionTransformer
	changes.

2009-11-12  Eric Maupin  <me@ermau.com>

	* Enumerable.cs (ToLookup): Accept null keys.
	* Lookup.cs: Accept null keys.

2009-10-08  Marek Safar  <marek.safar@gmail.com>

	* Enumerable.cs (Empty): Optimized allocation.

2009-08-07  Marek Safar  <marek.safar@gmail.com>

	* Enumerable.cs (Skip): Optimized and fixed int.MaxValue overflow.

2009-07-20  Jb Evain  <jbevain@novell.com>

	* Lookup.cs: avoid a double dictionary lookup on the indexer.

2009-07-19 Gonzalo Paniagua Javier <gonzalo@novell.com>

	* Lookup.cs: when there are no matching elements, return an empty
	enumerable. Fixes bug #523386.

2009-05-18  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Max, Min): fix generic versions.

2009-04-03  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Cast): fix for when casted enumerator is already
	of the appropriate type.

2009-03-28  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: fix Intersect.

2009-02-23  Marek Safar  <marek.safar@gmail.com>

	* Enumerable.cs (IterateNullable): Compare unwrapped values.

2009-02-23  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (IterateNullable): fix initial value
	for nullables.

2009-01-22  Jb Evain  <jbevain@novell.com>

	* SortSequenceContext.cs: make sort stable.

2009-01-22  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Sum): check the sum operations for possible overfows.

2009-01-22  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (SequenceEqual): make sure we dispose enumerators.

2009-01-22  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: optimize Last for lists.

2009-01-15  Jb Evain  <jbevain@novell.com>

	* Lookup.cs: propage the appropriate comparer for the lookup.

2008-11-20  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Any): optimize if we're operating on an ICollection.

2008-09-30  Jb Evain  <jbevain@novell.com>

	* QueryableEnumerable.cs: fix ElementType.

2008-09-28  Sebastien Pouliot  <sebastien@ximian.com>

	* Enumerable.cs: Add missing cast Average on IEnumerable<long?> to
	ensure the result is not truncated.
	[Found using Gendarme's ReviewCastOnIntegerDivisionRule]

2008-09-11  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Iterate*): use a bool empty instead of an int counter.
	Fixes #425344.

2007-08-14  Marek Safar  <marek.safar@gmail.com>

	* Enumerable.cs (Cast): Simplified.

2008-08-08  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Take): fix not too consume an uneeded item from
	the source enumerable. Fix #415644.

2008-07-24  Marek Safar  <marek.safar@gmail.com>

	* Enumerable.cs (First): Optimized.

2008-05-27  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Sum): don't throw if source is empty.
	Fixes #394827.

2008-05-20  Roei Erez  <roeie@mainsoft.com>

	* Lookup.cs: Implement ApplyResultSelector method

2008-05-20  Roei Erez  <roeie@mainsoft.com>

	* Queryable.cs: Implement the non-generic AsQureyable method.

2008-05-20  Marek Safar  <marek.safar@gmail.com>

	* Enumerable.cs: Removed GroupBy MonoTODO.

2008-05-19  Roei Erez  <roeie@mainsoft.com>

	* Enumerable.cs: Implemente two overloaded GroupBy methods.

2008-05-15  Jb Evain  <jbevain@novell.com>

	* QueryableEnumerable.cs: Make that the first expression is a constant
	of itself, and not a constant of the source enumerable.
	* QueryableTransformer.cs: On a constant, transform a QueryableEnumerable
	into the enumerable.
	* Queryable.cs: use new constructor.

2008-05-15  Jb Evain  <jbevain@novell.com>

	* QueryableTransformer.cs, QueryableEnumerable.cs: coding style plus
	some good refactorings.

2008-05-15  Roei Erez  <roeie@mainsoft.com>

	* QueryableTransformer.cs: missed in the last commit.

2008-05-15  Roei Erez  <roeie@mainsoft.com>

	* QueryableTransformer.cs, QueryableEnumerable.cs: two classes added for implementation
	of Queryable.AsQueryable() implementation.
	* Queryable.cs: Implement AsQueryable() method.

2008-05-08  Jonathan Pryor  <jpryor@novell.com>

	* Enumerable.cs: LongCount() can be optimized for arrays, and Reverse() can
	  be implemented in terms of IList w/o needing a temporary List<T> copy.

2008-05-06  Sasha Kogan  <sashak@mainsoft.com>

	* Queryable.cs (Average, GroupBy, Union): fix signatures to
	match MS API.

2008-05-03  Jb Evain  <jbevain@novell.com>

	* Queryable.cs (OrderBy, OrderByDescending): fix signature and
	properly return a IOrderedQueryable<>.

2008-05-02  Jb Evain  <jbevain@novell.com>

	* SortSequenceContext.cs (Compare): fix key equality case
	when there's a nested sort.

2008-05-01  Jb Evain  <jbevain@novell.com>

	* SortDirection.cs, SortContext.cs, SortSequenceContext.cs:
	new infrastructure files for nested orderby/thenby calls.
	* QuickSort.cs: refactored out of OrderedSequence.cs
	* OrderedEnumerable.cs, OrderedSequence.cs: refactoring
	to use the new SortContext infrastructure.

2008-04-30  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: Average (int|long): properly compute
	average.

2008-04-22  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (ToReadOnlyCollection): optimization, use
	a generic singleton for empty read only collections.

2008-03-31  Marek Safar  <marek.safar@gmail.com>

	* Enumerable.cs: Use Math.Min and Math.Max where appropriate.

2008-03-27  Leonid Freydovich  <leonidf@mainsoft.com>

	* LambdaExpression.cs Add some TARGET_JVM specific code

2008-02-09  Miguel de Icaza  <miguel@novell.com>

	* Enumerable.cs (ToDictionary): Implement this overload.

2008-02-01  Jb Evain  <jbevain@novell.com>

	* Queryable.cs, Check.cs: integrate GHOP work from
	Andreas Noever <andreas.noever@gmail.com>.

2008-01-21  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: fix Intersect.

2008-01-21  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: fix Concat et SelectMany.

2008-01-21  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: fix range.

2008-01-21  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: more ArgumentNullExceptions.

2008-01-21  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: fix some more ArgumentNullException.

2008-01-21  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: correctly throw ArgumentNullException
	for Cast.

2008-01-21  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs (Iterate): protect against null selectors.

2008-01-21  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: fix IterateNullable.

2008-01-15  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: clean the ToReadOnlyCollection extension
	method.

2007-12-18  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: refactor some Min.

2007-12-18  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: refactor some more Max.

2007-12-12  Jb Evain  <jbevain@novell.com>

	* Check.cs, Enumerable.cs: extract the checks to their
	own class, as they'll be used by Queryable as well.

2007-12-04  Marek Safar <marek.safar@gmail.com>

	* Enumerable.cs: Refactor some copy&paste blocks.

2007-11-28  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: fix warnings.

2007-11-27  Scott Peterson  <lunchtimemama@gmail.com>

	* InternalOrderedSequence.cs: updated Quicksort algorithm.

2007-11-22  Atsushi Enomoto  <atsushi@ximian.com>

	* Enumerable.cs : fixed Range(int,int) that iterated one less.
	  Thanks to http://d.hatena.ne.jp/NyaRuRu/ .

2007-11-13  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: make the new unit tests pass.

2007-11-09  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: refactor the ArgumentNullException checks.

2007-11-08  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: Implement SequenceEqual.

2007-11-08  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: Complete Union.

2007-11-08  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: correctly implement Intersect.

2007-11-08  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: code cleanup.

2007-11-06  Jb Evain  <jbevain@novell.com>

	* Enumerable.cs: Fix what we return on Except. Fix #324031.

2007-09-12  Marek Safar <marek.safar@gmail.com>

	* Enumerable.cs: Fixed GroupJoin logic. Reused DefaultIfEmpty
	implementation.

2007-09-11  Marek Safar <marek.safar@gmail.com>

	* Enumerable.cs: Fixed Join recursion.

2007-08-22  Marek Safar <marek.safar@gmail.com>

	* Enumerable.cs: More SelectionMany.

2007-08-21  Marek Safar <marek.safar@gmail.com>

	* AOrderedEnumerable: New abstract base.

	* Enumerable.cs, Queryable.cs: Public methods update.

	* InternalOrderedSequence.cs: Fixed ThenBy.

2007-08-21  Marek Safar <marek.safar@gmail.com>

	* Enumerable.cs, Queryable.cs: Public methods update.

	* InternalOrderedSequence.cs, OrderedSequence.cs: Derives from
	IOrderedEnumerable<TElement>.

2007-08-17  Michael Hutchinson <m.j.hutchinson@gmail.com>

	* Enumerable.cs: Fix Aggregate's counting code, and make it more
	  efficient.

2007-06-08  Marek Safar <marek.safar@gmail.com>

	* Enumerable.cs: Fixed recursion in GroupBy.

2007-03-24  Antonello Provenzano  <antonello@deveel.com>

	* Enumerable.cs: Migrated from QueryExpression
		- Implemented overload of method Aggregate
		- Method AsEnumerable implemented
		- Method Contains overloaded
		- 'Distinct' method refactored and overloaded
		- 'Except' method refactored and overloaded
		- Method IndexOf overloaded to be used with IEqualityComparer instances
		- Method Join overloaded to be used with IEqualityComparer instances
		- Method GroupJoin overloaded to be used with IEqualityComparer instances
		- Implemented internal method ToReadOnlyCollection for support
		to expressions.

2007-02-16  Marek Safar <marek.safar@gmail.com>

	* Enumerable.cs, Queryable.cs: Remove Extension attribute.

2007-02-03  Atsushi Enomoto  <atsushi@ximian.com>

	* IQueryable_T.cs : fixed type/member signatures (generic arguments).

2007-01-19  Marek Safar <marek.safar@gmail.com>

	* QueryExpression.cs,
	* Enumerable.cs: New files.

	* Small update to recent version.

2007-01-19  Marek Safar <marek.safar@gmail.com>

	* ChangeLog: Added

