You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Michael Greene (JIRA)" <ji...@apache.org> on 2009/02/03 22:29:59 UTC

[jira] Created: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
----------------------------------------------------------------------------------------

                 Key: THRIFT-309
                 URL: https://issues.apache.org/jira/browse/THRIFT-309
             Project: Thrift
          Issue Type: Improvement
          Components: Compiler (C#), Library (C#)
            Reporter: Michael Greene
            Assignee: Michael Greene


The current requirements for Thrift are:
.NET 3.5 on Visual Studio 2008
or
Mono 1.2.6+ with special compiler flags or Mono 2.0 standard

This does not need to be.  We can support the following setup without too much difficulty:
.NET 2.0+ on Visual Studio 2005+
Mono 1.2.4+ standard

I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.

Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12683729#action_12683729 ] 

Michael Greene commented on THRIFT-309:
---------------------------------------

The existing patch has already been committed (thanks David!) and the library can now be built on many more systems, however I have not had the resources to work on a patch to solve Todd's Etch issue.  It should be pretty simple, but I don't have an environment to test (neither Etch itself nor a Mono < 1.2.4).

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12673118#action_12673118 ] 

Michael Greene commented on THRIFT-309:
---------------------------------------

Sounds good to me.  With the items that depend on this issue, and the community interest in a 2.0-compatible implementation, the sooner the better.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "David Reiss (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672367#action_12672367 ] 

David Reiss commented on THRIFT-309:
------------------------------------

Michael, did you test this on a machine that has mono >= 2.0.0 installed?  I think that the first PKG_CHECK_MODULES result is being cached, so the second one will always succeed if the first does (meaning that it would always think Mono was < 2.0.0).

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Greene updated THRIFT-309:
----------------------------------

       Patch Info: [Patch Available]
    Fix Version/s: 0.1

This could use some more eyes, please test if you can.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672350#action_12672350 ] 

Michael Greene commented on THRIFT-309:
---------------------------------------

I'd imagine there are many ways to improve the performance of the C# library.  Faster serialization and deserialization is something in particular I could use, but I've been personally focusing on expanding our audience and feature set--we have a few outstanding feature tickets that just need a little love from their patch submitters before C# feature-wise becomes comparable to the other first-class libraries.

Thanks for the suggestion, I'll look into its feasibility in the code.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Greene closed THRIFT-309.
---------------------------------

    Resolution: Fixed

Sounds good to me, created THRIFT-394 to work on the Etch / Mono 1.2.2 / SetMaxThreads issue.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "David Reiss (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672345#action_12672345 ] 

David Reiss commented on THRIFT-309:
------------------------------------

You know, you might be able to make deserialization (and maybe serialization--I'd have to check the code) faster by eliminating TStruct, TField, etc. and just using out arguments like we do in C++.  It would save the allocation.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "David Reiss (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12673116#action_12673116 ] 

David Reiss commented on THRIFT-309:
------------------------------------

I think we should define another preprocessor flag for mono < 1.2.4.  We have a ton of checks for the C++ library.  I think that if I commit the patch as-is, but leave this issue open to deal with the Etch problem, it will make further code review easier.  Thoughts?

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "David Reiss (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672432#action_12672432 ] 

David Reiss commented on THRIFT-309:
------------------------------------

This version is working for me with mono 1.2.6.  The first check fails, but the second succeeds.  If I had no mono, they would both fail.  If I had 2.0.0, the first would succeed, and the second would be cached.  If you're good with this, I'll check in.

{noformat}
 AX_THRIFT_LIB(csharp, [C#], yes)
 if test "$with_csharp" = "yes";  then
-  PKG_CHECK_MODULES(MONO, mono >= 1.2.6, have_mono=yes, have_mono=no)
+  PKG_CHECK_MODULES(MONO, mono >= 2.0.0, net_3_5=yes, net_3_5=no)
+  PKG_CHECK_MODULES(MONO, mono >= 1.2.4, have_mono=yes, have_mono=no)
 fi
 AM_CONDITIONAL(WITH_MONO, [test "$have_mono" = "yes"])
+AM_CONDITIONAL(NET_2_0, [test "$net_3_5" = "no"])
{noformat}

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Esteve Fernandez (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12671436#action_12671436 ] 

Esteve Fernandez commented on THRIFT-309:
-----------------------------------------

Cool. I haven't tested your patch, but will try to include it in our Debian packages and tell you how it goes.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Esteve Fernandez (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12671447#action_12671447 ] 

Esteve Fernandez commented on THRIFT-309:
-----------------------------------------

Great! It compiles cleanly on Ubuntu 8.04 (which ships Mono 1.2.6):

http://launchpadlibrarian.net/22074452/buildlog_ubuntu-hardy-i386.thrift_0.2009.02.03.5~8.04_FULLYBUILT.txt.gz

Disclaimer: those are beta packages, you're strongly advised to use these instead:

https://launchpad.net/~txamqpteam/+archive/ppa

Anyway, +1 on applying your patch right now.



> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Todd Lipcon (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12673109#action_12673109 ] 

Todd Lipcon commented on THRIFT-309:
------------------------------------

Is mono-gmcs 1.2.2 support completely infeasible? I'd like to be able to support etch, but I think depending on a package from etch-backports is a bit messy.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672184#action_12672184 ] 

Michael Greene commented on THRIFT-309:
---------------------------------------

It is too bad about THashSet.  .NET 2.0 does not define a Set interface, sadly.  Libraries have been offering up their own custom interface definitions for it since 1.1.  For that matter, even to date ISet doesn't exist, despite HashSet<T>.

I don't have a personal preference between the two flags but NET_2_0 is commonly used by other projects.

I was planning on fixing the spacing to tabs and converting the test shell script to a proper Makefile still.
I do have a personal inclination toward the whole lib using spaces, but shouldn't make that decision myself.  Contributed code for this lib has tended to come with space indentation, but both Microsoft and Mono prefer tabs.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "David Reiss (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672163#action_12672163 ] 

David Reiss commented on THRIFT-309:
------------------------------------

I'm okay with this.

Too bad about having to define THashSet.  Is it possible to allow the user to put a normal HashSet in their structure (like, by using ISet or something if it is available)?  Or is there no Set interface in .NET 2.0?

Do you mind if I change NET_2_0 to DOT_NET_2_0?

Most (all?) of the C# library files use tabs for indentation (unlike the rest of Thrift) because that's how it was submitted, but a lot of your code uses spaces for indentation.  I can change your stuff to tabs, or if you and Will prefer, I can change the whole lib to use spaces instead.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Todd Lipcon (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672351#action_12672351 ] 

Todd Lipcon commented on THRIFT-309:
------------------------------------

Getting some errors building on debian etch even after applying this patch:

{noformat}
src/Protocol/TList.cs(25,5): error CS1501: No overload for method `Thrift.Protocol.TList' takes `0' arguments
src/Protocol/TSet.cs(25,5): error CS1501: No overload for method `Thrift.Protocol.TSet' takes `0' arguments
src/Protocol/TMap.cs(26,5): error CS1501: No overload for method `Thrift.Protocol.TMap' takes `0' arguments
src/Protocol/TField.cs(26,5): error CS1501: No overload for method `Thrift.Protocol.TField' takes `0' arguments
src/Protocol/TMessage.cs(26,5): error CS1501: No overload for method `Thrift.Protocol.TMessage' takes `0' arguments
src/Protocol/TStruct.cs(23,5): error CS1501: No overload for method `Thrift.Protocol.TStruct' takes `0' arguments
src/Server/TThreadPoolServer.cs(70,20): error CS0117: `System.Threading.ThreadPool' does not contain a definition for `SetMaxThreads'
{noformat}

This is with mono-gmcs 1.2.2.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12673110#action_12673110 ] 

Michael Greene commented on THRIFT-309:
---------------------------------------

Todd: as you no doubt are aware, your error in ThreadPool is due to having Mono less than 1.2.4
1.2.4 is the first version that implements SetMaxThreads: http://anonsvn.mono-project.com/viewvc?view=rev&revision=75954

Bizarrely, the method isn't even defined before that, despite being part of the spec.  I'm not sure how I would handle this -- we still want to be able to set the max threads where possible, and I'd prefer not to have another compiler detective beyond NET_2_0 for this special case.  The alternative might be to cripple Mono < 2.0 for just this method call.

What do interested parties think about these ... options?

David, your comments are accurate.  I tested running on Mono greater than 2.0 after building with MSVC# (my primary C# development platform) but embarrassingly had only checked to make sure I could build/run tests on 1.2.4 and 1.2.6 on Linux.  I checked on Ubuntu's latest beta with gmcs 2.0.1 with my latest patch and revised with your Makefile updates, and your version fixes it to use the right Set.

I'd like to get the Etch problem resolved, but if you want to move that to another issue to get this committed I think this is good to go with your changes.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Greene updated THRIFT-309:
----------------------------------

    Attachment: thrift-309-001.diff

This is still a work in progress, but I think it's at the point where it makes the C# libraries much easier to use on a variety of systems -- pretty much anything that's not MinGW+Windows with Visual Studio 2008.  We now can support the versions I specified in the issue description.

Autoconf and pkg-config now perform better Mono version detection so that NET_2_0 can be defined for versions which only support the .NET 2.0 framework.  The minimum requirements were downgraded from 1.2.6 to 1.2.4 after a brief test of compilation and ThriftTest on Gutsy Gibbon.

The properties have all been explicitly defined, instead of the previous automatic versions which required C# 3.0.  There is no difference in the IL generated in either case, so the version with greater platform support was chosen.

A new type, THashSet, is defined.  This type uses either the .NET HashSet library (available in 3.5 and higher) or my own DictSet, a nested class inside of it, based on the "best available".  HashSet was changed to THashSet throughout the project.

Many declared but unnecessary dependencies were removed, in particular ones which are only available in the 3.0 and 3.5 frameworks (i.e. Linq, DataSetExtensions, etc...) and auto-generated but unneeded references (e.g. System.Text in most places)

The ThriftTest csproj didn't take advantage of environmental variables when re-building its ThriftImpl DLL.  The new version allows one to use Framework 2, 3, or 3.5 instead of the previous 3.5
A shell script was added to build the ThriftTests on non-Windows platforms, since this was previously very difficult.  This is intended to be replaced with the proper Makefile setup.

ThriftTest optionally tests all the servers now (TThreadedServer was missing)

Problems with this patch:
 - the lines of the getter and setter properties accidentally had their spacing changed, purely an aesthetic problem

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Michael Greene (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672192#action_12672192 ] 

Michael Greene commented on THRIFT-309:
---------------------------------------

No, it's no longer a work-in-progress.  Besides the spacing, the only thing I wanted to fix was proper Makefile support for the tests which hadn't been included in THRIFT-25, as long as I was mucking about the C# Makefiles.  I can open up a new issue for that though.  Thanks!

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "David Reiss (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12672187#action_12672187 ] 

David Reiss commented on THRIFT-309:
------------------------------------

Double bummer, then.  I'll stick with NET_2_0 if it is conventional.  I'll convert your patch to tabs.  We can convert to spaces later.  Is this patch still a work-in-progress, or do you think it is ready to commit?

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Bryan Duxbury (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12688194#action_12688194 ] 

Bryan Duxbury commented on THRIFT-309:
--------------------------------------

+1 to Chad's suggestion. Let's close the issue.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Chad Walters (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12688151#action_12688151 ] 

Chad Walters commented on THRIFT-309:
-------------------------------------

If the existing patch has been committed, I'd recommend closing this issue and opening a new issue that is more specific to the Etch and mono < 1.2.4 issue.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (THRIFT-309) Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies

Posted by "Kevin Clark (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/THRIFT-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12683726#action_12683726 ] 

Kevin Clark commented on THRIFT-309:
------------------------------------

What's the status of this? It's marked as targeted for 0.1, so if we still want it in there needs to be movement.

> Thrift should run on plain .NET 2.0 and compatible Mono, with no additional dependencies
> ----------------------------------------------------------------------------------------
>
>                 Key: THRIFT-309
>                 URL: https://issues.apache.org/jira/browse/THRIFT-309
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Compiler (C#), Library (C#)
>            Reporter: Michael Greene
>            Assignee: Michael Greene
>             Fix For: 0.1
>
>         Attachments: thrift-309-001.diff
>
>
> The current requirements for Thrift are:
> .NET 3.5 on Visual Studio 2008
> or
> Mono 1.2.6+ with special compiler flags or Mono 2.0 standard
> This does not need to be.  We can support the following setup without too much difficulty:
> .NET 2.0+ on Visual Studio 2005+
> Mono 1.2.4+ standard
> I think we should, as this has come up several times via complaints on blogs, notes on the Wiki, or confusion on the mailing list.  .NET 2.0's penetration is much higher than 3.5, and this moves support for Thrift out to ~2007 on the Mono side and ~2005 on the .NET side versus the current ~2008 for both.
> Just wrapping this up over here, patch will be available later today.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.