X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Core%2FSystem.Linq.Expressions%2FChangeLog;h=9be8b88e7301ec073dab746ae2e1e1b228882467;hb=50f329e08b610717272b5a29e66684ee8f377bd6;hp=8f82f1263e9e15467365ee4e51c1c59855eced6b;hpb=c9c6e7805ad3151152849070e97cef91da23b4df;p=mono.git diff --git a/mcs/class/System.Core/System.Linq.Expressions/ChangeLog b/mcs/class/System.Core/System.Linq.Expressions/ChangeLog index 8f82f1263e9..9be8b88e730 100644 --- a/mcs/class/System.Core/System.Linq.Expressions/ChangeLog +++ b/mcs/class/System.Core/System.Linq.Expressions/ChangeLog @@ -1,177 +1,414 @@ -2008-01-09 Jb Evain +2008-03-06 Jb Evain - * Expression.cs: make the TypeAs test pass. + * EmitContext.cs: the DebugContext delegate the CreateDelegate + to a DynamicContext to avoid visibility issues in debug mode. -2007-12-04 Marek Safar +2008-03-06 Jb Evain - * ElementInit.cs: New implementation. - - * Funclet.cs, FuncletExpression.cs, LiftExpression.cs: Removed. - * ListInitExpression.cs, MemberListBinding.cs, Expression.cs, - ExpressionType.cs, BinaryExpression.cs, NewExpression.cs: API update. + * EmitContext.cs: Lambda methods bypass JIT visibility checks. -2007-08-17 Federico Di Gregorio +2008-03-06 Jb Evain - * Expression.cs: fixed Field() and Property() behaviour when accessing static - members (i.e., when expression is null). Also added the missing version for - Property(). + * MethodCallExpression.cs, Expression.cs: refactor method calling + into a more sophisticated EmitCall in Expression. + * InvocationExpression.cs (Emit): implement using the previous EmitCall. - * MemberExpression.cs: added missing BuildString() method that differentiates - between static and instance methods. +2008-03-06 Jb Evain - * Expression.cs: implemented Quote() and tests. + * Expression.cs: add a EmitCall helper. + * MemberExpression.cs: implement property access. - * Expression.cs: implemented RightShift(), added tests for it and for - LeftShift(). +2008-03-06 Jb Evain - * Expression.cs: checked TypeAs and added tests. + * MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression. + * MemberExpression.cs: use EmitLoad to load the instance field if needed. - * UnaryExpression.cs: added BuildString() case for TypeAs. +2008-03-06 Jb Evain - * Expression.cs: added tests for TypeIs. + * BinaryExpression.cs, Expression.cs: move EmitStored from + BinaryExpression to Expression. + * MethodCallExpression.cs: allow method calls on structs. - * TypeBinaryExpression.cs: implemented BuildString(). +2008-03-05 Jb Evain - * Expression.cs: added three specific methods to determine when a type - is a number (IsNumeric), an integer (IsInteger) or an integer or a bool - (IsIntegerOrBool). Code taken and simplified from ExpressionUtil. + * Expression.cs: Fix the Call method which takes an array + of type arguments. - * Expression.cs: two less to do: Subtract() and SubtractChecked(). +2008-03-05 Jb Evain - * Expression.cs: implemented all versions of Or() and OrElse(). + * Expression.cs: fix for a good chunk of lifted/liftToNull tests. - * BinaryExpression.cs: fixed OrElse case in BuildString(). +2008-02-26 Jb Evain - * Expression.cs: implemented all versions of Divide(), Modulo(), - Multiply(), MultiplyChecked() and tests. Call() works except for - generic types. + * Expression.cs (Call): Guess the parameters type from the argument + types if needed. -2007-08-15 Federico Di Gregorio +2008-02-25 Jb Evain - * Expression.cs: implemented both versions of Bind() & tests. + * NewExpression.cs (Emit): deal with value types construction. - * MemberBinding.cs: added missing override of ToString(). +2008-02-25 Jb Evain -2007-08-14 Federico Di Gregorio + * Expression.cs, NewExpression.cs: deal with the fact that value types + don't have a parameterless constructor. - * Expression.cs: implemented ArrayLength & tests. +2008-02-24 Jb Evain - * Expression.cs: implemented all three versions of ArrayIndex method. + * LambdaExpression.cs, EmitContext.cs: make compilation + of delegate returning void work. - * MethodCallExpression.cs: implemented BuildString() method. +2008-02-24 Jb Evain -2007-08-13 Federico Di Gregorio - - * ConstantExpression.cs: using multiple StringBuilder.Append() methods - instead of concatenating strings. - - * Expression.cs: added AndAlso() method and validator for True and - False user-defined operators. - - * Test: added unique IDs to all tests. - -2007-08-12 Federico Di Gregorio - - * ConstantExpression.cs: fixed BuildString() to return "value(...)" - when the string representation of the value is equal to the type name. - Added appropriate checks. - - * Expression.cs: fixed And() method. - - * Expression.cs: Add() method uses new GetUserDefinedBinaryOperator() - and raise exactly the same exceptions (including exception text) as MS - one does. - -2007-07-24 Federico Di Gregorio - - * Expression.cs: modified Constant method to use "object" as the type if - just a null is given. Changed exception text when the passed type is not - nullable but value is. - -2007-07-13 Federico Di Gregorio - - * BinaryExpression.cs: implemented BuildString(). - -2007-07-12 Federico Di Gregorio - - * Test/System.Linq.Expressions: added test directory and some tests. - - * Expression.cs: - - changed the exceptions raised on argument errors to match the ones in - found in the last system.core.dll (the one from SilverLight 1.1 alpha) - - removed the three very generic #regions and started replacing them with - specific ones, as found in other parts of classes code. - -2007-03-29 Antonello Provenzano - - * ExpressionUtil.cs: - - Implemented method GetOperator for general pourposes, - moving some implementations from Expression.cs specific methods - - IsNumber now returns 'true' for sbyte and unsigned integers - - Implemented method IsInteger - * Expression.cs: Implementation of the method: - - AddChecked - - Call - - Condition - - Divide - - LeftShift - - Quote - * ExpressionType.cs: Applied Obsolete attributes - * LiftExpression.cs: New file - -2007-03-27 Antonello Provenzano - - * ExpressionUtil.cs: methods 'GetReadOnlyCollection' removed - to use internal extension 'ToReadOnlyCollection'. - * Expression: Removed unimplemented stubs. - -2007-03-27 Marek Safar - - * InvocationExpression.cs, - * ExpressionType.cs, - * ParameterExpression.cs: Updated to match with the latest version. - -2007-03-25 Antonello Provenzano - - * ConstantExpression.cs: New file - * ConditionalExpression.cs: New file - * BinaryExpression.cs: New file - * ExecutionScope.cs: New file - * Expression.cs: New file - * Expression_T.cs: modified to support LambdaExpression .ctor - * ExpressionCompiler.cs: New file - * ExpressionType.cs: New file - * ExpressionUtil.cs: New file - * Funclet.cs: New file - * FuncletExpression.cs: New file - * InvocationExpression.cs: New file - * IStrongBox.cs: New file - * LambdaExpression.cs: implemented constructor and fields - * MemberAssignment.cs: New file - * MemberBinding.cs: New file - * MemberBindingType.cs: New file - * MemberListBinding.cs: New file - * MemberMemberBinding.cs: New file - * MethodCallExpression.cs: New file - * NewArrayExpression.cs: New file - * NewExpression.cs: New file - * ParameterExpression.cs: extended implementation - * StrongBox_T.cs: New file - * UnaryExpression.cs: New file - * TypeBinaryExpression.cs: New file - -2007-02-16 Marek Safar - - * Expression_T.cs: Derives from lambda. - -2007-02-03 Atsushi Enomoto - - * LambdaExpression.cs : new (stub) file. - -2007-01-19 Marek Safar - - * Expression_T.cs: New file. - -2006-11-02 Marek Safar - - * Initial checkin. + * MethodCallExpression.cs: emit call or callvirt depending + on the virtuality of the method. + +2008-02-24 Jb Evain + + * LambdaExpression.cs: properly format error message. + +2008-02-21 Jb Evain + + * BinaryExpression.cs (EmitCoalesce): fix setup_null. + +2008-02-21 Jb Evain + + * BinaryExpression.cs (Emit): fix the both_are_null case. + +2008-02-20 Jb Evain + + * Expression.cs, ExpressionPrinter.cs: implement MemberBind. + +2008-02-20 Jb Evain + + * Expression.cs, ExpressionPrinter.cs: implement ListInit. + +2008-02-19 Jb Evain + + * Expression.cs, ExpressionPrinter.cs: implement MemberInit. + +2008-02-19 Jb Evain + + * Expression.cs, ExpressionPrinter.cs: implement last New + overload for anonymous types. + +2008-02-08 Jb Evain + + * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs + add support for Invoke. + +2008-02-04 Jb Evain + + * ExpressionPrinter.cs: fix printing of MemberListBinding. + +2008-02-04 Jb Evain + + * Expression.cs, NewExpression.cs: make New(Type) test pass. + +2008-02-04 Jb Evain + + * ExpressionPrinter.cs: fix and clean printing of ElementInit. + +2008-02-02 Jb Evain + + * Expression.cs: fix ListBind(MemberInfo,IEnumerable). + +2008-02-02 Jb Evain + + * Expression.cs: fix ListBind(MethodInfo,IEnumerable). + +2008-02-01 Olivier Dufour + + * Expression.cs, ExpressionPrinter.cs:Add ListBind + +2008-02-01 Olivier Dufour + + * Expression.cs, ExpressionPrinter.cs:Add Elementinit + +2008-01-31 Jb Evain + + * UnaryExpression.cs: emit array length. + +2008-01-31 Jb Evain + + * MemberExpression.cs: Simple support for emitting fields. + +2008-01-30 Jb Evain + + * MethodCallExpression.cs: very naive implementation of Emit. + +2008-01-30 Jb Evain + + * NewExpression.cs: add Emit support for reference types. + +2008-01-30 Jb Evain + + * LambdaExpression.cs, EmitContext.cs: small refactoring. + Extract the different EmitContexts to their own file. + +2008-01-29 Jb Evain + + * MethodCallExpression.cs, Expression.cs: complete Calls. + +2008-01-29 Jb Evain + + * Expression.cs, NewExpression.cs, ExpressionPrinter.cs: + implement the first flavors of New. + +2008-01-27 Jb Evain + + * ConditionalExpression.cs: implement Emit. + +2008-01-27 Jb Evain + + * Expression.cs: implement the last Lambda method. + +2008-01-27 Jb Evain + + * LambdaExpression.cs: fix the Type of the LambdaExpressions. + +2008-01-27 Olivier Dufour + + * 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 + + * Expression.cs, ExpressionPrinter.cs: implement Bind. + +2008-01-25 Jb Evain + + * MemberMemberBinding.cs, MemberListBinding.cs, + MemberAssignment.cs, MemberBinding.cs: + add constructors. + +2008-01-25 Jb Evain + + * Expression.cs: implement PropertyOrField. + +2008-01-24 Jb Evain + + * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs: + implement Field and Property. + +2008-01-22 Miguel de Icaza + + * 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 + + * Expression.cs, ExpressionPrinter.cs: implement NewArrayList. + +2008-01-22 Jb Evain + + * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs: + implement Expression.NewArrayBounds. + +2008-01-22 Jb Evain + + * ExpressionPrinter.cs: fix Lambda and Equal. + +2008-01-22 Miguel de Icaza + + * 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 + + * 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 + + * BinaryExpression.cs: Fixed initobj initialization. + +2008-01-21 Jb Evain + + * Expression.cs, UnaryExpression.cs, BinaryExpression.cs: + Move the IsUnsigned helper from BinaryExpression to Expression, + so it can be used in UnaryExpression. + +2008-01-21 Miguel de Icaza + + * Start code generation for nullables, currently this generates + incorrect code for things like: + + Expression> e2 = (a, b) => a + b; + e2.Compile ().Invoke (null, 3)) + + This should return null, but returns something else. + + * 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. + + +2008-01-20 Miguel de Icaza + + 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. + +2008-01-18 Miguel de Icaza + + * ParameterExpression.cs: Add emit support. + +2008-01-18 Jb Evain + + * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate. + +2008-01-18 Miguel de Icaza + + * BinaryExpression.cs: Add support for emitting code for some + operators (ported from the Mono C# compiler). + + Add tests. + +2008-01-17 Miguel de Icaza + + 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. + +2008-01-17 Jb Evain + + * Expression.cs: implement MakeMemberAccess. + +2008-01-17 Jb Evain + + * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs: + implement ArrayIndex. + +2008-01-17 Jb Evain + + * Expression.cs: Use TypeCode for IsInt and IsNumber. + +2008-01-16 Miguel de Icaza + + * Expression.cs: Add support for user-defined operators. + + Put back various binary operator tests. + +2008-01-16 Jb Evain + + * Expression.cs, ExpressionPrinter.cs: fix call for static methods. + +2008-01-15 Miguel de Icaza + + * Expression.cs: Do validation on the method parameters and use + the return type if provided. + +2008-01-15 Jb Evain + + * MethodCallExpression.cs, Expression.cs + ExpressionPrinter.cs: Implement Call (Expression, ...) + +2008-01-15 Jb Evain + + * Expression.cs, ConditionalExpressionExpression.cs + ExpressionPrinter.cs : implement Expression.Condition. + +2008-01-15 Jb Evain + + * Expression.cs, + ParameterExpression.cs, + ExpressionPrinter.cs: implement Expression.Parameter + +2008-01-15 Jb Evain + + * ExpressionPrinter.cs (VisitBinaryExpression): simple + implementation (probably misses a few cases). + +2008-01-14 Miguel de Icaza + + * Expression.cs: Bring back the (most) of binary operators. Added + type checking as well and reorganized the source file by topic + instead of alphabetical sorting. + +2008-01-14 Jb Evain + + * ExpressionPrinter.cs: print ArrayLength. + +2008-01-14 Jb Evain + + * Expression.cs: TypeAs can't take value types. + * ExpressionPrinter.cs: implement TypeAs. + +2008-01-14 Jb Evain + + * Expression.cs: implement TypeIs. + * ExpressionPrinter.cs: implement VisitTypeBinaryExpression. + * TypeBinaryExpression.cs: add proper ctor. + +2008-01-14 Jb Evain + + * Expression.cs, ExpressionPrinter.cs: fix for Quote's type. + +2008-01-14 Jb Evain + + * BinaryExpression.cs, + * Expression.cs: revert part of Miguel's last patch. + MakeBinary is expected to call the appropriate factory + methods. Whose methods that are responsible for creating + the good BinaryExpression, wether they use a custom method + or not. + +2008-01-14 Jb Evain + + * Expression.cs: MakeUnary is expected to call the appropriate + factory methods. + +2008-01-14 Miguel de Icaza + + * Expression.cs (Constant, MakeBinary and consumers of it): Some + more fill-up changes. + + MakeBinary will need much more work to support user-provided + types. + +2008-01-13 Jb Evain + + * *.cs: fresh implementation.