+2008-04-19 Jb Evain <jbevain@novell.com>
+
+ * EmitContext.cs: infrastructure work to attach a compiled
+ lambda expression to an execution scope, and to detect and store
+ external globals in the scope.
+ * ConstantExpression.cs: load globals from the scope.
+
+2008-04-19 Jb Evain <jbevain@novell.com>
+
+ * ExpressionVisitor.cs (Visit): don't die because of Power.
+
+2008-04-09 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs: check for illegal booleab unary expressions.
+
+2008-04-09 Jb Evain <jbevain@novell.com>
+
+ * UnaryExpression.cs: implement compilation of negate.
+
+2008-04-09 Jb Evain <jbevain@novell.com>
+
+ * UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
+ to null for simple unary operators. Implement Not compilation.
+
+2008-04-08 Jb Evain <jbevain@novell.com>
+
+ * ElementInit.cs: emit pop if the add method doesn't return void.
+
+2008-03-20 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs: use the new and more complete IsAssignableTo
+ instead of IsAssignableFrom.
+
+2008-03-19 Jb Evain <jbevain@novell.com>
+
+ * LambdaExpression.cs: use the new standardified IsAssignableTo,
+ fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
+
+2008-03-19 Jb Evain <jbevain@novell.com>
+
+ * Extensions.cs (Type.IsAssignableTo): deal with arrays.
+
+2008-03-13 Jb Evain <jbevain@novell.com>
+
+ * NewArrayExpression.cs (EmitNewArrayBounds): implement.
+
+2008-03-12 Jb Evain <jbevain@novell.com>
+
+ * NewArrayExpression.cs (Emit): naive implementation of emit support
+ for array initialization.
+
+2008-03-11 Jb Evain <jbevain@novell.com>
+
+ * BinaryExpression.cs: very naive implementation of emitting
+ array accesses.
+
+2008-03-11 Jb Evain <jbevain@novell.com>
+
+ * *.cs: Move the different Emit* helpers to EmitContext,
+ so that they get used more naturally by the non Expression
+ types.
+
+2008-03-10 Jb Evain <jbevain@novell.com>
+
+ * TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
+ * UnaryExpression.cs: implement TypeAs using the EmitIsInst.
+
+2008-03-10 Jb Evain <jbevain@novell.com>
+
+ * TypeBinaryExpression.cs (Emit): implement.
+
+2008-03-08 Jb Evain <jbevain@novell.com>
+
+ * MemberListBinding.cs (Emit): implement.
+ * MemberBinding.cs (EmitLoadMember): add helper.
+
+2008-03-08 Jb Evain <jbevain@novell.com>
+
+ * MemberAssignment.cs (Emit): implement.
+
+2008-03-08 Jb Evain <jbevain@novell.com>
+
+ * ElementInit.cs (Emit): implement.
+
+2008-03-06 Jb Evain <jbevain@novell.com>
+
+ * EmitContext.cs: the DebugContext delegate the CreateDelegate
+ to a DynamicContext to avoid visibility issues in debug mode.
+
+2008-03-06 Jb Evain <jbevain@novell.com>
+
+ * EmitContext.cs: Lambda methods bypass JIT visibility checks.
+
+2008-03-06 Jb Evain <jbevain@novell.com>
+
+ * MethodCallExpression.cs, Expression.cs: refactor method calling
+ into a more sophisticated EmitCall in Expression.
+ * InvocationExpression.cs (Emit): implement using the previous EmitCall.
+
+2008-03-06 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs: add a EmitCall helper.
+ * MemberExpression.cs: implement property access.
+
+2008-03-06 Jb Evain <jbevain@novell.com>
+
+ * MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
+ * MemberExpression.cs: use EmitLoad to load the instance field if needed.
+
+2008-03-06 Jb Evain <jbevain@novell.com>
+
+ * BinaryExpression.cs, Expression.cs: move EmitStored from
+ BinaryExpression to Expression.
+ * MethodCallExpression.cs: allow method calls on structs.
+
+2008-03-05 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs: Fix the Call method which takes an array
+ of type arguments.
+
+2008-03-05 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs: fix for a good chunk of lifted/liftToNull tests.
+
+2008-02-26 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs (Call): Guess the parameters type from the argument
+ types if needed.
+
+2008-02-25 Jb Evain <jbevain@novell.com>
+
+ * NewExpression.cs (Emit): deal with value types construction.
+
+2008-02-25 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, NewExpression.cs: deal with the fact that value types
+ don't have a parameterless constructor.
+
+2008-02-24 Jb Evain <jbevain@novell.com>
+
+ * LambdaExpression.cs, EmitContext.cs: make compilation
+ of delegate returning void work.
+
+2008-02-24 Jb Evain <jbevain@novell.com>
+
+ * MethodCallExpression.cs: emit call or callvirt depending
+ on the virtuality of the method.
+
+2008-02-24 Jb Evain <jbevain@novell.com>
+
+ * LambdaExpression.cs: properly format error message.
+
+2008-02-21 Jb Evain <jbevain@novell.com>
+
+ * BinaryExpression.cs (EmitCoalesce): fix setup_null.
+
+2008-02-21 Jb Evain <jbevain@novell.com>
+
+ * BinaryExpression.cs (Emit): fix the both_are_null case.
+
+2008-02-20 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, ExpressionPrinter.cs: implement MemberBind.
+
+2008-02-20 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, ExpressionPrinter.cs: implement ListInit.
+
+2008-02-19 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, ExpressionPrinter.cs: implement MemberInit.
+
+2008-02-19 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, ExpressionPrinter.cs: implement last New
+ overload for anonymous types.
+
+2008-02-08 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
+ add support for Invoke.
+
+2008-02-04 Jb Evain <jbevain@novell.com>
+
+ * ExpressionPrinter.cs: fix printing of MemberListBinding.
+
+2008-02-04 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, NewExpression.cs: make New(Type) test pass.
+
+2008-02-04 Jb Evain <jbevain@novell.com>
+
+ * ExpressionPrinter.cs: fix and clean printing of ElementInit.
+
+2008-02-02 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
+
+2008-02-02 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
+
+2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
+
+ * Expression.cs, ExpressionPrinter.cs:Add ListBind
+
+2008-02-01 Olivier Dufour <olivier.duff@gmail.com>
+
+ * Expression.cs, ExpressionPrinter.cs:Add Elementinit
+
+2008-01-31 Jb Evain <jbevain@novell.com>
+
+ * UnaryExpression.cs: emit array length.
+
+2008-01-31 Jb Evain <jbevain@novell.com>
+
+ * MemberExpression.cs: Simple support for emitting fields.
+
+2008-01-30 Jb Evain <jbevain@novell.com>
+
+ * MethodCallExpression.cs: very naive implementation of Emit.
+
+2008-01-30 Jb Evain <jbevain@novell.com>
+
+ * NewExpression.cs: add Emit support for reference types.
+
+2008-01-30 Jb Evain <jbevain@novell.com>
+
+ * LambdaExpression.cs, EmitContext.cs: small refactoring.
+ Extract the different EmitContexts to their own file.
+
+2008-01-29 Jb Evain <jbevain@novell.com>
+
+ * MethodCallExpression.cs, Expression.cs: complete Calls.
+
+2008-01-29 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
+ implement the first flavors of New.
+
+2008-01-27 Jb Evain <jbevain@novell.com>
+
+ * ConditionalExpression.cs: implement Emit.
+
+2008-01-27 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs: implement the last Lambda method.
+
+2008-01-27 Jb Evain <jbevain@novell.com>
+
+ * LambdaExpression.cs: fix the Type of the LambdaExpressions.
+
+2008-01-27 Olivier Dufour <olivier.duff@gmail.com>
+
+ * Expression.cs, InvocationExpession.cs,
+ ListInitExpression.cs, MemberInitExpression.cs
+ NewExpression.cs : Add all missing
+ constructor in Expressions and remove the base one
+
+2008-01-25 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, ExpressionPrinter.cs: implement Bind.
+
+2008-01-25 Jb Evain <jbevain@novell.com>
+
+ * MemberMemberBinding.cs, MemberListBinding.cs,
+ MemberAssignment.cs, MemberBinding.cs:
+ add constructors.
+
+2008-01-25 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs: implement PropertyOrField.
+
+2008-01-24 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
+ implement Field and Property.
+
+2008-01-22 Miguel de Icaza <miguel@novell.com>
+
+ * BinaryExpression.cs: Unleash the power of cut and paste.
+
+ Bring a bunch of operatros from mcs/expression.cs
+
+ * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
+ used those from mcs, that was wrong. use the proper ones, clean
+ up the result.
+
+ * BinaryExpression.cs: Add method invocations for binary methods.
+
+2008-01-22 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
+
+2008-01-22 Jb Evain <jbevain@novell.com>
+
+ * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
+ implement Expression.NewArrayBounds.
+
+2008-01-22 Jb Evain <jbevain@novell.com>
+
+ * ExpressionPrinter.cs: fix Lambda and Equal.
+
+2008-01-22 Miguel de Icaza <miguel@novell.com>
+
+ * BinaryExpression.cs (EmitCoalesce): Add support for emitting
+ code for Coalesce.
+
+ TODO: this does not use the "Conversion" Lambda, which am not sure
+ who generates this or what it is used for.
+
+ (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
+
+ * Expression.cs: Add support for Coalesce.
+ (BinaryCoreCheck): Move more checking here, instead of the helper
+ routines, will remove them next.
+
+ * LambdaExpression.cs (Compile): Create the delegate last, so we
+ manage to save the assembly while debugging in case of error
+
+2008-01-21 Miguel de Icaza <miguel@novell.com>
+
+ * Expression.cs (BinaryCoreCheck): Add checking for a few
+ operators here (to avoid doing a second pass, handles AndAlso and
+ OrElse).
+
+ (AndAlso, OrElse): Add some code.
+
+ * BinaryExpression.cs: Instead of using GetValueOrDefault use
+ get_Value, as we already probed for the lack of value.
+
+ Split out support for And/Or to a separate routine as the code is
+ not very easy to share with the arithmetics code.
+
+2008-01-21 Marek Safar <marek.safar@gmail.com>
+
+ * BinaryExpression.cs: Fixed initobj initialization.
+
2008-01-21 Jb Evain <jbevain@novell.com>
* Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
* Start code generation for nullables, currently this generates
incorrect code for things like:
-
+
Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
e2.Compile ().Invoke (null, 3))
* Introduce LINQ_DBG env variable, which generates a linq file in
/tmp; It currently does not work as well as it should, as the
Func<> parameters do not mwatch the generated method.
- Investigate.
-
+ Investigate.
+
2008-01-20 Miguel de Icaza <miguel@novell.com>
Introduce support for Nullable arguments, no code is generated for
these yet, its only tests + node creation behavior at this point.
-
+
* Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
as operators, they must both be nullable.
NullableTypes in the arguments are transformed into the underlying
- values when doing the method validation.
+ values when doing the method validation.
2008-01-18 Miguel de Icaza <miguel@novell.com>
2008-01-18 Miguel de Icaza <miguel@novell.com>
* BinaryExpression.cs: Add support for emitting code for some
- operators (ported from the Mono C# compiler).
+ operators (ported from the Mono C# compiler).
Add tests.
Beginning of code generation framework for Linq.Expressions.
Some code was borrowed by from the C# compiler
-
+
* Expression_T.cs: Fill in the blanks.
-
+
* LambdaExpression.cs: Validation of parameters mostly, a tiny bit
of codegen.
* ConstantExpression.cs: Mostly done, need to write tests for
- non-fundamental types and other ValueType initializations.
+ non-fundamental types and other ValueType initializations.
2008-01-17 Jb Evain <jbevain@novell.com>
2008-01-16 Miguel de Icaza <miguel@novell.com>
- * Expression.cs: Add support for user-defined operators.
+ * Expression.cs: Add support for user-defined operators.
Put back various binary operator tests.