| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670 |
- 2008-06-05 Jb Evain <[email protected]>
- * Expression.cs (ConditionalBinaryCheck): if a method is passed,
- checked that the operators true and false are also defined.
- 2008-06-05 Jb Evain <[email protected]>
- * BinaryExpression.cs (Emit): deal with binary expressions
- where only the left is lifted.
- 2008-06-05 Jb Evain <[email protected]>
- * Extensions.cs: Add Type.MakeNullableType helper.
- * Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
- creat lifted/lifted to null/not lifted
- user defined binary expressions.
- * BinaryExpression.cs (Emit): implement compilation of
- lifted and lifted to null user defined binary operators.
- 2008-06-05 Jb Evain <[email protected]>
- * Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
- unary expressions with user defined operators.
- * UnaryExpression.cs (Emit): fix compilation of lifted user operators.
- 2008-05-30 Jb Evain <[email protected]>
- * UnaryExpression.cs (Emit): fix convertion from nullable
- to nullable types.
- 2008-05-29 Jb Evain <[email protected]>
- * Expression.cs (Power): allow bool?.
- * BinaryExpression.cs: properly deal with lifted power expression.
- 2008-05-29 Jb Evain <[email protected]>
- * BinaryExpression.cs (Emit): fix lifted andalso and orelse.
- 2008-05-29 Jb Evain <[email protected]>
- * BinaryExpression.cs (Emit): properly emit lifted to null
- relational binary expressions.
- 2008-05-28 Jb Evain <[email protected]>
- * BinaryExpression.cs (Emit): rework compilation of
- arithmetic and relational lifted binary expressions.
- 2008-05-28 Jb Evain <[email protected]>
- * UnaryExpression.cs (Emit): implement support for compiling
- lifted unary expressions.
- 2008-05-27 Jb Evain <[email protected]>
- * UnaryExpression.cs (EmitConvert): implement nullable to nullable
- convert.
- 2008-05-20 Roei Erez <[email protected]>
- * Extensions.cs: Add 'IsGenericImplementationOf' extension method
- 2008-05-15 Jb Evain <[email protected]>
- * UnaryExpression.cs, EmitContext.cs: emit convert from and
- to nullable types.
- 2008-05-15 Jb Evain <[email protected]>
- * Extensions.cs: add a few useful extensions such as
- IsGenericInstanceOf and MakeGenericFrom.
- 2008-05-15 Roei Erez <[email protected]>
- * ExpressionTransformer.cs: Add a base class for transforming Expressions.
- In use at AsQueryable() implementation.
- 2008-05-14 Jb Evain <[email protected]>
- * EmitContext.cs: only generate a new lambda name if we're in
- a debug context.
- 2008-05-14 Jb Evain <[email protected]>
- * LambdaExpression.cs, EmitContext.cs: When encountering a lambda
- inside an ET, compile it as a read of a global. Based on a patch
- by Roei Erez <[email protected]>
- 2008-05-08 Jb Evain <[email protected]>
- * Expression.cs, EmitContext.cs: deal with call to methods
- with byref parameters.
- 2008-05-07 Roei Erez <[email protected]>
- * Add ifdef TARGET_JVM
- 2008-05-03 Jb Evain <[email protected]>
- * LambdaExpression.cs: move checks to Expression
- * Expression.cs: apply check for both typed and untyped lambda
- creation, so that the constructor does not throws exception.
- Needed to create instances of Expression<> for untyped lambda
- factory method. Fixes #386322.
- 2008-05-02 Jb Evain <[email protected]>
- * Expression.cs: make Emit virtual instead of abstract,
- to allow externals libraries to extend Expression.
- Patch by Jan Oravec <[email protected]>. Fixes #386097.
- 2008-04-29 Jb Evain <[email protected]>
- * UnaryExpression.cs (EmitPrimitiveConversion): implement.
- 2008-04-28 Jb Evain <[email protected]>
- * EmitContext.cs: deal with globals when encountering them while
- compiling, and not ahead of time with a dedicated visitor.
- 2008-04-27 Jb Evain <[email protected]>
- * ConstantExpression.cs (Emit): emit properly null nullable types.
- 2008-04-27 Jb Evain <[email protected]>
- * Expression.cs: improve method finder.
- 2008-04-24 Jb Evain <[email protected]>
- * UnaryExpression.cs, EmitContext.cs: implement compilation
- of Quote as a global load.
- 2008-04-23 Jb Evain <[email protected]>
- * UnaryExpression.cs: start implementing EmitConvert.
- 2008-04-23 Jb Evain <[email protected]>
- * ConstantExpression.cs (Emit): properly Emit null constants.
- 2008-04-23 Jb Evain <[email protected]>
- * Expression.cs (Constant): check for assignability, not for type
- equality, when a type is passed.
- 2008-04-23 Jb Evain <[email protected]>
- * ExpressionPrinter.cs: ToString convert properly.
- 2008-04-22 Jb Evain <[email protected]>
- * UnaryExpression.cs: implement IsLiftedToNull properly.
- * Expression.cs (Convert, ConvertChecked): implemented computing
- of IsLifted and IsLiftedToNull for conversions.
- 2008-04-22 Jb Evain <[email protected]>
- * Expression.cs (Convert, ConvertChecked): implement.
- 2008-04-21 Jb Evain <[email protected]>
- * Expression.cs (Call): don't rely on the fact that if the
- instance expression is null, then it's a static call. Explicitely
- check on the MethodInfo for that.
- * EmitContext.cs (EmitCall): same pattern.
- 2008-04-20 Jb Evain <[email protected]>
- * MemberMemberBinding.cs (Emit): implement.
- 2008-04-19 Jb Evain <[email protected]>
- * 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 <[email protected]>
- * ExpressionVisitor.cs (Visit): don't die because of Power.
- 2008-04-09 Jb Evain <[email protected]>
- * Expression.cs: check for illegal booleab unary expressions.
- 2008-04-09 Jb Evain <[email protected]>
- * UnaryExpression.cs: implement compilation of negate.
- 2008-04-09 Jb Evain <[email protected]>
- * UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
- to null for simple unary operators. Implement Not compilation.
- 2008-04-08 Jb Evain <[email protected]>
- * ElementInit.cs: emit pop if the add method doesn't return void.
- 2008-03-20 Jb Evain <[email protected]>
- * Expression.cs: use the new and more complete IsAssignableTo
- instead of IsAssignableFrom.
- 2008-03-19 Jb Evain <[email protected]>
- * LambdaExpression.cs: use the new standardified IsAssignableTo,
- fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
- 2008-03-19 Jb Evain <[email protected]>
- * Extensions.cs (Type.IsAssignableTo): deal with arrays.
- 2008-03-13 Jb Evain <[email protected]>
- * NewArrayExpression.cs (EmitNewArrayBounds): implement.
- 2008-03-12 Jb Evain <[email protected]>
- * NewArrayExpression.cs (Emit): naive implementation of emit support
- for array initialization.
- 2008-03-11 Jb Evain <[email protected]>
- * BinaryExpression.cs: very naive implementation of emitting
- array accesses.
- 2008-03-11 Jb Evain <[email protected]>
- * *.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 <[email protected]>
- * TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
- * UnaryExpression.cs: implement TypeAs using the EmitIsInst.
- 2008-03-10 Jb Evain <[email protected]>
- * TypeBinaryExpression.cs (Emit): implement.
- 2008-03-08 Jb Evain <[email protected]>
- * MemberListBinding.cs (Emit): implement.
- * MemberBinding.cs (EmitLoadMember): add helper.
- 2008-03-08 Jb Evain <[email protected]>
- * MemberAssignment.cs (Emit): implement.
- 2008-03-08 Jb Evain <[email protected]>
- * ElementInit.cs (Emit): implement.
- 2008-03-06 Jb Evain <[email protected]>
- * EmitContext.cs: the DebugContext delegate the CreateDelegate
- to a DynamicContext to avoid visibility issues in debug mode.
- 2008-03-06 Jb Evain <[email protected]>
- * EmitContext.cs: Lambda methods bypass JIT visibility checks.
- 2008-03-06 Jb Evain <[email protected]>
- * 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 <[email protected]>
- * Expression.cs: add a EmitCall helper.
- * MemberExpression.cs: implement property access.
- 2008-03-06 Jb Evain <[email protected]>
- * 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 <[email protected]>
- * BinaryExpression.cs, Expression.cs: move EmitStored from
- BinaryExpression to Expression.
- * MethodCallExpression.cs: allow method calls on structs.
- 2008-03-05 Jb Evain <[email protected]>
- * Expression.cs: Fix the Call method which takes an array
- of type arguments.
- 2008-03-05 Jb Evain <[email protected]>
- * Expression.cs: fix for a good chunk of lifted/liftToNull tests.
- 2008-02-26 Jb Evain <[email protected]>
- * Expression.cs (Call): Guess the parameters type from the argument
- types if needed.
- 2008-02-25 Jb Evain <[email protected]>
- * NewExpression.cs (Emit): deal with value types construction.
- 2008-02-25 Jb Evain <[email protected]>
- * Expression.cs, NewExpression.cs: deal with the fact that value types
- don't have a parameterless constructor.
- 2008-02-24 Jb Evain <[email protected]>
- * LambdaExpression.cs, EmitContext.cs: make compilation
- of delegate returning void work.
- 2008-02-24 Jb Evain <[email protected]>
- * MethodCallExpression.cs: emit call or callvirt depending
- on the virtuality of the method.
- 2008-02-24 Jb Evain <[email protected]>
- * LambdaExpression.cs: properly format error message.
- 2008-02-21 Jb Evain <[email protected]>
- * BinaryExpression.cs (EmitCoalesce): fix setup_null.
- 2008-02-21 Jb Evain <[email protected]>
- * BinaryExpression.cs (Emit): fix the both_are_null case.
- 2008-02-20 Jb Evain <[email protected]>
- * Expression.cs, ExpressionPrinter.cs: implement MemberBind.
- 2008-02-20 Jb Evain <[email protected]>
- * Expression.cs, ExpressionPrinter.cs: implement ListInit.
- 2008-02-19 Jb Evain <[email protected]>
- * Expression.cs, ExpressionPrinter.cs: implement MemberInit.
- 2008-02-19 Jb Evain <[email protected]>
- * Expression.cs, ExpressionPrinter.cs: implement last New
- overload for anonymous types.
- 2008-02-08 Jb Evain <[email protected]>
- * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
- add support for Invoke.
- 2008-02-04 Jb Evain <[email protected]>
- * ExpressionPrinter.cs: fix printing of MemberListBinding.
- 2008-02-04 Jb Evain <[email protected]>
- * Expression.cs, NewExpression.cs: make New(Type) test pass.
- 2008-02-04 Jb Evain <[email protected]>
- * ExpressionPrinter.cs: fix and clean printing of ElementInit.
- 2008-02-02 Jb Evain <[email protected]>
- * Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
- 2008-02-02 Jb Evain <[email protected]>
- * Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
- 2008-02-01 Olivier Dufour <[email protected]>
- * Expression.cs, ExpressionPrinter.cs:Add ListBind
- 2008-02-01 Olivier Dufour <[email protected]>
- * Expression.cs, ExpressionPrinter.cs:Add Elementinit
- 2008-01-31 Jb Evain <[email protected]>
- * UnaryExpression.cs: emit array length.
- 2008-01-31 Jb Evain <[email protected]>
- * MemberExpression.cs: Simple support for emitting fields.
- 2008-01-30 Jb Evain <[email protected]>
- * MethodCallExpression.cs: very naive implementation of Emit.
- 2008-01-30 Jb Evain <[email protected]>
- * NewExpression.cs: add Emit support for reference types.
- 2008-01-30 Jb Evain <[email protected]>
- * LambdaExpression.cs, EmitContext.cs: small refactoring.
- Extract the different EmitContexts to their own file.
- 2008-01-29 Jb Evain <[email protected]>
- * MethodCallExpression.cs, Expression.cs: complete Calls.
- 2008-01-29 Jb Evain <[email protected]>
- * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
- implement the first flavors of New.
- 2008-01-27 Jb Evain <[email protected]>
- * ConditionalExpression.cs: implement Emit.
- 2008-01-27 Jb Evain <[email protected]>
- * Expression.cs: implement the last Lambda method.
- 2008-01-27 Jb Evain <[email protected]>
- * LambdaExpression.cs: fix the Type of the LambdaExpressions.
- 2008-01-27 Olivier Dufour <[email protected]>
- * 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 <[email protected]>
- * Expression.cs, ExpressionPrinter.cs: implement Bind.
- 2008-01-25 Jb Evain <[email protected]>
- * MemberMemberBinding.cs, MemberListBinding.cs,
- MemberAssignment.cs, MemberBinding.cs:
- add constructors.
- 2008-01-25 Jb Evain <[email protected]>
- * Expression.cs: implement PropertyOrField.
- 2008-01-24 Jb Evain <[email protected]>
- * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
- implement Field and Property.
- 2008-01-22 Miguel de Icaza <[email protected]>
- * 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 <[email protected]>
- * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
- 2008-01-22 Jb Evain <[email protected]>
- * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
- implement Expression.NewArrayBounds.
- 2008-01-22 Jb Evain <[email protected]>
- * ExpressionPrinter.cs: fix Lambda and Equal.
- 2008-01-22 Miguel de Icaza <[email protected]>
- * 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 <[email protected]>
- * 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 <[email protected]>
- * BinaryExpression.cs: Fixed initobj initialization.
- 2008-01-21 Jb Evain <[email protected]>
- * 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 <[email protected]>
- * 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))
- 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 <[email protected]>
- 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 <[email protected]>
- * ParameterExpression.cs: Add emit support.
- 2008-01-18 Jb Evain <[email protected]>
- * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
- 2008-01-18 Miguel de Icaza <[email protected]>
- * BinaryExpression.cs: Add support for emitting code for some
- operators (ported from the Mono C# compiler).
- Add tests.
- 2008-01-17 Miguel de Icaza <[email protected]>
- 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 <[email protected]>
- * Expression.cs: implement MakeMemberAccess.
- 2008-01-17 Jb Evain <[email protected]>
- * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
- implement ArrayIndex.
- 2008-01-17 Jb Evain <[email protected]>
- * Expression.cs: Use TypeCode for IsInt and IsNumber.
- 2008-01-16 Miguel de Icaza <[email protected]>
- * Expression.cs: Add support for user-defined operators.
- Put back various binary operator tests.
- 2008-01-16 Jb Evain <[email protected]>
- * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
- 2008-01-15 Miguel de Icaza <[email protected]>
- * Expression.cs: Do validation on the method parameters and use
- the return type if provided.
- 2008-01-15 Jb Evain <[email protected]>
- * MethodCallExpression.cs, Expression.cs
- ExpressionPrinter.cs: Implement Call (Expression, ...)
- 2008-01-15 Jb Evain <[email protected]>
- * Expression.cs, ConditionalExpressionExpression.cs
- ExpressionPrinter.cs : implement Expression.Condition.
- 2008-01-15 Jb Evain <[email protected]>
- * Expression.cs,
- ParameterExpression.cs,
- ExpressionPrinter.cs: implement Expression.Parameter
- 2008-01-15 Jb Evain <[email protected]>
- * ExpressionPrinter.cs (VisitBinaryExpression): simple
- implementation (probably misses a few cases).
- 2008-01-14 Miguel de Icaza <[email protected]>
- * 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 <[email protected]>
- * ExpressionPrinter.cs: print ArrayLength.
- 2008-01-14 Jb Evain <[email protected]>
- * Expression.cs: TypeAs can't take value types.
- * ExpressionPrinter.cs: implement TypeAs.
- 2008-01-14 Jb Evain <[email protected]>
- * Expression.cs: implement TypeIs.
- * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
- * TypeBinaryExpression.cs: add proper ctor.
- 2008-01-14 Jb Evain <[email protected]>
- * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
- 2008-01-14 Jb Evain <[email protected]>
- * 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 <[email protected]>
- * Expression.cs: MakeUnary is expected to call the appropriate
- factory methods.
- 2008-01-14 Miguel de Icaza <[email protected]>
- * 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 <[email protected]>
- * *.cs: fresh implementation.
|