<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>crossnet Work Item Rss Feed</title><link>http://www.codeplex.com/crossnet/WorkItem/List.aspx</link><description>crossnet Work Item Rss Description</description><item><title>COMMENTED ISSUE: Missing type System::IntPtr</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1882</link><description>Missing type System&amp;#58;&amp;#58;IntPtr&lt;br /&gt;Comments: ** Comment from web user: OlivierNallet ** &lt;p&gt;Oh well, comments don&amp;#39;t support Wiki syntax and I cannot edit my comments &amp;#59;&amp;#41;&lt;/p&gt;&lt;p&gt;Here are more accurate links then&amp;#58;&lt;br /&gt;CrossNetSystem&amp;#58; www.codeplex.com&amp;#47;crossnetsystem&lt;br /&gt;Predefined .NET types&amp;#58; http&amp;#58;&amp;#47;&amp;#47;www.codeplex.com&amp;#47;crossnet&amp;#47;Wiki&amp;#47;View.aspx&amp;#63;title&amp;#61;predefined&amp;#37;20.NET&amp;#37;20types&amp;#38;referringTitle&amp;#61;Overview&lt;br /&gt;&lt;/p&gt;</description><author>OlivierNallet</author><pubDate>Sat, 20 Oct 2007 05:15:37 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: Missing type System::IntPtr 20071020051537A</guid></item><item><title>COMMENTED ISSUE: Missing type System::IntPtr</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1882</link><description>Missing type System&amp;#58;&amp;#58;IntPtr&lt;br /&gt;Comments: ** Comment from web user: OlivierNallet ** &lt;p&gt;Actually you can find System&amp;#58;&amp;#58;IntPtr in the project &amp;#91;url&amp;#58;CrossNetSystem&amp;#124;http&amp;#58;&amp;#47;&amp;#47;www.codeplex.com&amp;#47;crossnetsystem&amp;#93; as that&amp;#39;s where most of the BCL&amp;#39;s implementation is.&lt;/p&gt;&lt;p&gt;Only types that are critical to compile are actually implemented directly in CrossNet.&lt;br /&gt;For example, arrays are defined inside CrossNet but they implement several interfaces. In order to be able to manipulate those interfaces, they have to be defined in CrossNet as well.&lt;br /&gt;Here is the list of &amp;#91;predefined .NET types&amp;#93; in CrossNet.&lt;/p&gt;&lt;p&gt;Note that CrossNetSystem contains very few classes of the BCL, and they contain very little implementations yet. I hope to find people to help me on this task over time.&lt;/p&gt;</description><author>OlivierNallet</author><pubDate>Sat, 20 Oct 2007 05:11:19 GMT</pubDate><guid isPermaLink="false">COMMENTED ISSUE: Missing type System::IntPtr 20071020051119A</guid></item><item><title>CREATED ISSUE: Missing type System::IntPtr</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1882</link><description>Missing type System&amp;#58;&amp;#58;IntPtr&lt;br /&gt;</description><author>ysdavid</author><pubDate>Fri, 19 Oct 2007 12:49:56 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Missing type System::IntPtr 20071019124956P</guid></item><item><title>CREATED ISSUE: Make CrossNet work with Reflector optimized for .NET 1.0 (and no optimization)</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1801</link><description>It seems that Reflector&amp;#39;s optimizations are layered, i.e. it starts with no optimization &amp;#40;fastest parsing - almost plain conversion of the byte code in a statement tree&amp;#41;, then it applies .NET 1.0 optimization &amp;#40;changing code to make it more palatable, discover foreach, using, etc...&amp;#41;, then it applies .NET 2.0 &amp;#40;anonymous methods, nullable, etc...&amp;#41;, finally that&amp;#39;s the .NET 3.5 layer &amp;#40;LINQ, newer syntax...&amp;#41;.&lt;br /&gt;&lt;br /&gt;The idea is that lower layers are stable and are not changing frequently, higher level are potentially less stable and are changing more frequently.&lt;br /&gt;In order to reduce possibility of breakage, the goal would be to beeing able to generate C&amp;#43;&amp;#43; code with .NET 1.0 or no optimization in order to have a more stable parsing.&lt;br /&gt;An example is with the anonymous methods. With no or .NET 1.0 optimizations, anonymous methods are disassembled as their plain IL code, showing all the internals.&lt;br /&gt;With .NET 2.0, everything is parsed transparently, but from CrossNet point of view, I actually had to regenerate the whole code that existed already in IL.&lt;br /&gt;Generating .NET 1.0 would have saved quite some pain here &amp;#40;but it is actually nice to have both ways dependeing of your use case&amp;#41;.&lt;br /&gt;</description><author>OlivierNallet</author><pubDate>Sun, 14 Oct 2007 06:40:35 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Make CrossNet work with Reflector optimized for .NET 1.0 (and no optimization) 20071014064035A</guid></item><item><title>CREATED ISSUE: Make CrossNet work with Reflector optimized for .NET 3.5</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1800</link><description>Currently, if Reflector is set to .NET 3.5 &amp;#40;by default&amp;#41;, the generated code compile but is actually incomplete &amp;#40;member initializer is not generated correctly&amp;#41;.&lt;br /&gt;The code is in progress but big chances is that it doesn&amp;#39;t work.&lt;br /&gt;</description><author>OlivierNallet</author><pubDate>Sun, 14 Oct 2007 06:33:02 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Make CrossNet work with Reflector optimized for .NET 3.5 20071014063302A</guid></item><item><title>COMMENTED TASK: Make Rotor's unit-tests pass</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1650</link><description>Rotor&amp;#39;s unit-tests produce a C&amp;#43;&amp;#43; source files of 500K LOC. It is a very complete unit-tests, testing a lot the BCL as well as .NET features &amp;#40;like heavily the generics&amp;#41;.&lt;br /&gt;&lt;br /&gt;The goal of this task is to be able to compile and run most of ROTOR&amp;#39;s unit-tests. In the process we need more BCL&amp;#39;s implementations.&lt;br /&gt;&lt;br /&gt;At first, CrossNetSystem will be the most impacted. Then I expect to find some issues that will force some fixes in the parser, finally after a lot of work, I will reach the state where the runtime will have to be fixed &amp;#40;mostly BCL&amp;#39;s implementation&amp;#41;.&lt;br /&gt;Comments: ** Comment from web user: OlivierNallet ** &lt;p&gt;Great progress&amp;#33; 61 errors, 18 warnings. Only 20 different errors now, a couple of them are incorrect parsing from Reflector.&lt;br /&gt;&lt;/p&gt;</description><author>OlivierNallet</author><pubDate>Sat, 13 Oct 2007 02:59:46 GMT</pubDate><guid isPermaLink="false">COMMENTED TASK: Make Rotor's unit-tests pass 20071013025946A</guid></item><item><title>CLOSED FEATURE: Generate C++ code with files per class instead of per assembly</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1676</link><description>Also we need an option to not generate the implementation, so the definition only calls CROSSNET_NOT_IMPLEMENTED&amp;#40;&amp;#41;.&lt;br /&gt;Comments: Should be resolved now.</description><author>OlivierNallet</author><pubDate>Sat, 13 Oct 2007 02:36:40 GMT</pubDate><guid isPermaLink="false">CLOSED FEATURE: Generate C++ code with files per class instead of per assembly 20071013023640A</guid></item><item><title>CLOSED FEATURE: Make CrossNet a Reflector addins</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1741</link><description>Currently CrossNet is using Reflector&amp;#39;s API to help generate the C&amp;#43;&amp;#43; code. The current functionality is unsupported.&lt;br /&gt;The goal of this task is to switch CrossNet to a Reflector addins so I can use the supported API.&lt;br /&gt;Beside having the UI displayed and closed on the screen there should not be any impact &amp;#40;Reflector doesn&amp;#39;t support console mode&amp;#41;.&lt;br /&gt;</description><author>OlivierNallet</author><pubDate>Sat, 13 Oct 2007 02:35:56 GMT</pubDate><guid isPermaLink="false">CLOSED FEATURE: Make CrossNet a Reflector addins 20071013023556A</guid></item><item><title>COMMENTED FEATURE: Make CrossNet a Reflector addins</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1741</link><description>Currently CrossNet is using Reflector&amp;#39;s API to help generate the C&amp;#43;&amp;#43; code. The current functionality is unsupported.&lt;br /&gt;The goal of this task is to switch CrossNet to a Reflector addins so I can use the supported API.&lt;br /&gt;Beside having the UI displayed and closed on the screen there should not be any impact &amp;#40;Reflector doesn&amp;#39;t support console mode&amp;#41;.&lt;br/&gt;Comments: ** Comment from web user: OlivierNallet ** &lt;p&gt;Done. That was actually simple.&lt;br/&gt;The only downside is that Reflector&amp;#39;s UI is displayed briefly at the beginning of the parsing.&lt;/p&gt;</description><author>OlivierNallet</author><pubDate>Sat, 06 Oct 2007 06:19:40 GMT</pubDate><guid isPermaLink="false">COMMENTED FEATURE: Make CrossNet a Reflector addins 20071006061940A</guid></item><item><title>CREATED FEATURE: Make CrossNet a Reflector addins</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1741</link><description>Currently CrossNet is using Reflector&amp;#39;s API to help generate the C&amp;#43;&amp;#43; code. The current functionality is unsupported.&lt;br /&gt;The goal of this task is to switch CrossNet to a Reflector addins so I can use the supported API.&lt;br /&gt;Beside having the UI displayed and closed on the screen there should not be any impact &amp;#40;Reflector doesn&amp;#39;t support console mode&amp;#41;.&lt;br/&gt;</description><author>OlivierNallet</author><pubDate>Sat, 06 Oct 2007 05:18:50 GMT</pubDate><guid isPermaLink="false">CREATED FEATURE: Make CrossNet a Reflector addins 20071006051850A</guid></item><item><title>COMMENTED TASK: Make Rotor's unit-tests pass</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1650</link><description>Rotor&amp;#39;s unit-tests produce a C&amp;#43;&amp;#43; source files of 500K LOC. It is a very complete unit-tests, testing a lot the BCL as well as .NET features &amp;#40;like heavily the generics&amp;#41;.&lt;br /&gt;&lt;br /&gt;The goal of this task is to be able to compile and run most of ROTOR&amp;#39;s unit-tests. In the process we need more BCL&amp;#39;s implementations.&lt;br /&gt;&lt;br /&gt;At first, CrossNetSystem will be the most impacted. Then I expect to find some issues that will force some fixes in the parser, finally after a lot of work, I will reach the state where the runtime will have to be fixed &amp;#40;mostly BCL&amp;#39;s implementation&amp;#41;.&lt;br/&gt;Comments: ** Comment from web user: OlivierNallet ** &lt;p&gt;Great progress there&amp;#33;&lt;br/&gt;Out of 1601 unit-tests, 67 unit-tests are deactivated as they contain known unsupported features &amp;#40;they may be more to deactivate over time&amp;#41;. Note that some unit tests can be really complex and lenghty.&lt;/p&gt;&lt;p&gt;The great news is that I was able to compile ROTOR&amp;#39;s unit tests with less than 300 compile errors&amp;#33; A lot of errors are actually duplicated so I guess I may have just around 50 different errors.&lt;br/&gt;Remember that Rotor unit-tests produces more than 500K Line of C&amp;#43;&amp;#43; code. That makes an average of 1 compile error per 10K line of code of complex unit-tests. Pretty good.&lt;br/&gt;I&amp;#39;m going to delay the release and try to solve most of the issues before that.&lt;/p&gt;&lt;p&gt;Note that even if I reach 0 compile error, the code won&amp;#39;t certainly link because of missing functions in BCL&amp;#39;s impleemntation. Also it won&amp;#39;t run as many functions are going to be not implemented and return default value. So more work will be needed in order to actually run Rotor&amp;#39;s unit tests.&lt;/p&gt;&lt;p&gt;But still, that&amp;#39;s a step toward the right direction.&lt;/p&gt;</description><author>OlivierNallet</author><pubDate>Sat, 06 Oct 2007 05:13:18 GMT</pubDate><guid isPermaLink="false">COMMENTED TASK: Make Rotor's unit-tests pass 20071006051318A</guid></item><item><title>COMMENTED FEATURE: Generate C++ code with files per class instead of per assembly</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1676</link><description>Also we need an option to not generate the implementation, so the definition only calls CROSSNET_NOT_IMPLEMENTED&amp;#40;&amp;#41;.&lt;br/&gt;Comments: ** Comment from web user: OlivierNallet ** &lt;p&gt;Great progress on it.&lt;br/&gt;The implementation is not correct yet &amp;#40;the default return value is not set correctly&amp;#41; otherwise the headers are compiling completely.&lt;/p&gt;</description><author>OlivierNallet</author><pubDate>Sat, 06 Oct 2007 05:01:59 GMT</pubDate><guid isPermaLink="false">COMMENTED FEATURE: Generate C++ code with files per class instead of per assembly 20071006050159A</guid></item><item><title>CREATED FEATURE: Generate C++ code with files per class instead of per assembly</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1676</link><description>Also we need an option to not generate the implementation, so the definition only calls CROSSNET_NOT_IMPLEMENTED&amp;#40;&amp;#41;.&lt;br/&gt;</description><author>OlivierNallet</author><pubDate>Mon, 01 Oct 2007 05:37:33 GMT</pubDate><guid isPermaLink="false">CREATED FEATURE: Generate C++ code with files per class instead of per assembly 20071001053733A</guid></item><item><title>CREATED ISSUE: Fix anonymous methods on generic types.</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1675</link><description>This has not been tested and is certainly failing. This should be a rare occurence and easy to fix though.&lt;br/&gt;</description><author>OlivierNallet</author><pubDate>Mon, 01 Oct 2007 05:01:03 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Fix anonymous methods on generic types. 20071001050103A</guid></item><item><title>CREATED ISSUE: Fix possible incorrect result when accessing static generic fields without creating an instance first</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1674</link><description>Static constructor is called on generics only when the first instance is created.&lt;br /&gt;So if some code accesses a static field when no instance of the owner type has been created, the field will not have the correct value.&lt;br /&gt;This can also happen when calling a static function accessing the static field.&lt;br /&gt;&lt;br /&gt;Note that this is very rare. First static members on generic types are rarely used, access to static fields without instance already created is even rarer.&lt;br /&gt;Nevertheless this can happen.&lt;br /&gt;&lt;br /&gt;It could be solved by accessing the field only by static methods and have all the static methods of the generic type to make sure that the static constructor has been called.&lt;br/&gt;</description><author>OlivierNallet</author><pubDate>Mon, 01 Oct 2007 04:59:31 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Fix possible incorrect result when accessing static generic fields without creating an instance first 20071001045931A</guid></item><item><title>CLOSED TASK: Re-enable Mono's unit-tests</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1673</link><description>&amp;#42; 55 unit tests have been disabled on around 230 unit-tests. The reason is because the features are not supported yet&amp;#58; &lt;br /&gt;&amp;#42; Unit-tests using things like&amp;#58; Reflection, Multi-threading, exception on divide by zero, attributes, CodeGen, StructLayout, Asynchronous delegates, __arglist, DateTime implementation, support for nan.&lt;br /&gt;&amp;#42; All these features are already documented as not supported or in the to do list...&lt;br/&gt;</description><author>OlivierNallet</author><pubDate>Mon, 01 Oct 2007 04:50:44 GMT</pubDate><guid isPermaLink="false">CLOSED TASK: Re-enable Mono's unit-tests 20071001045044A</guid></item><item><title>CREATED TASK: Re-enable Mono's unit-tests</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1673</link><description>&amp;#42; 55 unit tests have been disabled on around 230 unit-tests. The reason is because the features are not supported yet&amp;#58; &lt;br /&gt;&amp;#42; Unit-tests using things like&amp;#58; Reflection, Multi-threading, exception on divide by zero, attributes, CodeGen, StructLayout, Asynchronous delegates, __arglist, DateTime implementation, support for nan.&lt;br /&gt;&amp;#42; All these features are already documented as not supported or in the to do list...&lt;br/&gt;</description><author>OlivierNallet</author><pubDate>Mon, 01 Oct 2007 04:50:38 GMT</pubDate><guid isPermaLink="false">CREATED TASK: Re-enable Mono's unit-tests 20071001045038A</guid></item><item><title>CLOSED ISSUE: Support anonymous methods</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1672</link><description>&amp;#42; There was more work than expected as I ended up having to generate what the C&amp;#35; compiler does. Pretty nice design though, very transparent for the user. Lot of work for the compiler &amp;#59;&amp;#41;&lt;br /&gt;&amp;#42; Expect some issues if the declaring type is generic as I didn&amp;#39;t test that yet. Should be easy to fix though.&lt;br/&gt;</description><author>OlivierNallet</author><pubDate>Mon, 01 Oct 2007 04:49:35 GMT</pubDate><guid isPermaLink="false">CLOSED ISSUE: Support anonymous methods 20071001044935A</guid></item><item><title>CREATED ISSUE: Support anonymous methods</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1672</link><description>&amp;#42; There was more work than expected as I ended up having to generate what the C&amp;#35; compiler does. Pretty nice design though, very transparent for the user. Lot of work for the compiler &amp;#59;&amp;#41;&lt;br /&gt;&amp;#42; Expect some issues if the declaring type is generic as I didn&amp;#39;t test that yet. Should be easy to fix though.&lt;br/&gt;</description><author>OlivierNallet</author><pubDate>Mon, 01 Oct 2007 04:49:27 GMT</pubDate><guid isPermaLink="false">CREATED ISSUE: Support anonymous methods 20071001044927A</guid></item><item><title>CLOSED ISSUE: Handle static constructors and static members for generic types</title><link>http://www.codeplex.com/crossnet/WorkItem/View.aspx?WorkItemId=1671</link><description>&amp;#42; For the concerned generics, static constructors are called at every construction &amp;#40;and a flag make sure that we call the init only one time&amp;#41;.&lt;br /&gt;&amp;#42; The current implementation is limited, it might create link errors if several assemblies using the generic with static constructors are compiled in different obj files. This can be improved later as needed.&lt;br /&gt;&amp;#42; Currently static members are traced when we are tracing each instance &amp;#40;that mean they can be traced several times&amp;#41;. This will be optimized over time.&lt;br /&gt;&amp;#42; Accessing directly static members of a generic type may not return a correct result if a corresponding generic instance has not been created earlier &amp;#40;static constructor is called at instance creation&amp;#41;.&lt;br /&gt;&amp;#42; Beside adding a check before each static member access I don&amp;#39;t think there is an easy fix.&lt;br/&gt;</description><author>OlivierNallet</author><pubDate>Mon, 01 Oct 2007 04:48:46 GMT</pubDate><guid isPermaLink="false">CLOSED ISSUE: Handle static constructors and static members for generic types 20071001044846A</guid></item></channel></rss>