[Mono-dev] Ideas for Mono on Windows

2009-01-23 Thread SuperCiccio

Hello,
I'm writing a .NET application that uses Spring.NET and NHibernate, my 
development tool is VS 2008 standard (I've also tried MonoDevelop, but 
it is a bit far from VS for now).
My final goal is to create an application that runs without (major) 
changes on Win/.NET and Linux/Mono, I strongly believe in this fantastic 
project (Mono) and in free OSes.


In my intentions the (cyclic) dev process will be:

1. develop on Win/VS
2. quick test on Win/.NET and Win/Mono for architecture validation
3. unit test on Win/.NET and Linux/Mono

Unfortunately, I'me blocked on stage 2. because of a bug in Mono that 
prevents Spring XmlApplicationContext from initializing correctly by 
assembly embedded resources. This bug has been resolved a few days ago 
(http://lists.ximian.com/pipermail/mono-bugs/2009-January/084625.html).
I could grab a snapshot of source code and build it by myself, but I 
haven't time for setting up the needed environment and build Mono, I 
have to go on quickly on my project.
Sadly, I have to wait for the next Windows/Linux build to go ahead on 
step 2. If I had a simple way to build Mono on Windows, the (in)famous 
F5, I could go on peacefully.


Despite this hassle, I think Mono is a great work and I hope It will 
play an important role in my future.


Thanks to all!

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2009-01-23 Thread PFJ

Hi,


SuperCiccio wrote:
 
 Sadly, I have to wait for the next Windows/Linux build to go ahead on 
 step 2. If I had a simple way to build Mono on Windows, the (in)famous 
 F5, I could go on peacefully.
 

I don't mind running the code if you need a hand (using Fedora rawhide). My
box is updated from svn roughly every day...

TTFN

Paul
-- 
View this message in context: 
http://www.nabble.com/Ideas-for-Mono-on-Windows-tp21622111p21622154.html
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2009-01-23 Thread Leszek Ciesielski
On Fri, Jan 23, 2009 at 11:40 AM, PFJ pjohns...@uclan.ac.uk wrote:

 Hi,


 SuperCiccio wrote:

 Sadly, I have to wait for the next Windows/Linux build to go ahead on
 step 2. If I had a simple way to build Mono on Windows, the (in)famous
 F5, I could go on peacefully.


 I don't mind running the code if you need a hand (using Fedora rawhide). My
 box is updated from svn roughly every day...

 TTFN

 Paul
 --

So how's the progress with getting Mono easy to compile on Windows
going? I'm getting stuck on exception that's been already mentioned on
the list ( 
http://n2.nabble.com/Re:-Mono-devel-list-Digest,-Vol-44,-Issue-48-td1757065.html
) and can't find any solution for this.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


[Mono-dev] Ideas for Mono on Windows

2009-01-23 Thread SuperCiccio
Paul,
thanks for your helpfulness.

At present time it is non so simple, for various reasons:
- I need testing almost continuously, in this initial phase;
- there are no deployment/setup procedures so it takes a bit porting the 
application on other machines: for me it is very simple to access the same 
resources (database, files, etc..) on the same configuration with .NET and Mono

Anyway, I've appreciated your offer.
It would be a great help for me if you had a procedure for setting up and 
mantaining an up-to-date Fedora/Mono system.

Regards

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2009-01-23 Thread Rafael Teixeira
You can try to use Mono's VM image which is an tailored-OpenSUSE, upgrading
it to newer mono releases or using it to build and run mono from svn trunk
is far easier than building mono in windows.

It also may help you find real portability issues, like what happens when
the linux user doesn't have the fonts you use in your WinForms, or file
access issues..

Hope it helps,

On Fri, Jan 23, 2009 at 9:52 AM, SuperCiccio sc_030...@yahoo.it wrote:

 Paul,
 thanks for your helpfulness.

 At present time it is non so simple, for various reasons:
 - I need testing almost continuously, in this initial phase;
 - there are no deployment/setup procedures so it takes a bit porting the
 application on other machines: for me it is very simple to access the same
 resources (database, files, etc..) on the same configuration with .NET and
 Mono

 Anyway, I've appreciated your offer.
 It would be a great help for me if you had a procedure for setting up and
 mantaining an up-to-date Fedora/Mono system.

 Regards

 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list




-- 
Rafael Monoman Teixeira
---
I myself am made entirely of flaws, stitched together with good
intentions.
Augusten Burroughs
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2009-01-23 Thread Jonathan Pobst
It's not ideal, but you can grab daily precompiled assemblies from here:
http://mono.ximian.com/daily/ , and place them in your Mono's GAC:
C:\Program Files\Mono-2.2\lib\mono\gac.  (Or use Mono's gacutil to 
register them.)

Jonathan


SuperCiccio wrote:
 Hello,
 I'm writing a .NET application that uses Spring.NET and NHibernate, my 
 development tool is VS 2008 standard (I've also tried MonoDevelop, but 
 it is a bit far from VS for now).
 My final goal is to create an application that runs without (major) 
 changes on Win/.NET and Linux/Mono, I strongly believe in this fantastic 
 project (Mono) and in free OSes.
 
 In my intentions the (cyclic) dev process will be:
 
 1. develop on Win/VS
 2. quick test on Win/.NET and Win/Mono for architecture validation
 3. unit test on Win/.NET and Linux/Mono
 
 Unfortunately, I'me blocked on stage 2. because of a bug in Mono that 
 prevents Spring XmlApplicationContext from initializing correctly by 
 assembly embedded resources. This bug has been resolved a few days ago 
 (http://lists.ximian.com/pipermail/mono-bugs/2009-January/084625.html).
 I could grab a snapshot of source code and build it by myself, but I 
 haven't time for setting up the needed environment and build Mono, I 
 have to go on quickly on my project.
 Sadly, I have to wait for the next Windows/Linux build to go ahead on 
 step 2. If I had a simple way to build Mono on Windows, the (in)famous 
 F5, I could go on peacefully.
 
 Despite this hassle, I think Mono is a great work and I hope It will 
 play an important role in my future.
 
 Thanks to all!
 
 
 
 
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2009-01-23 Thread BGB

  - Original Message - 
  From: Rafael Teixeira 
  To: SuperCiccio 
  Cc: mono-devel-list@lists.ximian.com 
  Sent: Friday, January 23, 2009 10:43 PM
  Subject: Re: [Mono-dev] Ideas for Mono on Windows


  You can try to use Mono's VM image which is an tailored-OpenSUSE, upgrading 
it to newer mono releases or using it to build and run mono from svn trunk is 
far easier than building mono in windows. 

  It also may help you find real portability issues, like what happens when the 
linux user doesn't have the fonts you use in your WinForms, or file access 
issues..

IMO, a major source of the building issue is likely the GLib dependency (or, at 
least, a kind of GLib-dummy can be provided).

if one can eliminate most of the dependency on libraries and tools which don't 
work well, or are not present, in a typical Windows environment, it should 
build easier.

for example, trying to get it to build in my case, required going and getting 
bison, and then trying to get this to build, but then having to go and tweak 
this as well to make it build (due to Windows not having API calls like 
'fork()', ...).


but, in my case, none of this looks good to me, as I have a policy of doing 
more or less self-contained (and modular) code, such as that apart from areas 
defined to have a dependency (usually as a basic part of their operation), 
there are not dependencies. even then, dependencies are often wrapped such that 
things can be re-routed if needed, ...

IMO, it makes the code cleaner, easier to maintain, and easier to port (ok, 
yes, it is sad that much of my current project has dependencies on the x86 and 
x86-64 instruction sets... but it is not so easy to abstract automated code 
generation from the particular arch...).

(and also, my effort is much easier to build on Windows, as I code mostly for 
Windows...).


but, alas, my effort continues, although granted being able to JIT higher-level 
bytecode formats is posing many subtle difficulties.

a recent example is that, both JBC and CIL are different enough from the way my 
existing approach works (and is backwards of the typical C-order on x86 and 
x86-64, ...), that I considered things and made a decision to go over to a 
custom calling convention for these cases.

this calling convention differs in some fairly major ways from cdecl and sysv 
and similar, primarily in that it uses an explicit frame structure and is based 
around CPS (the CPU stack then is used primarily for calculations and for 
native calls).

however, I am mildly worried about the performance (for code with large numbers 
of small functions, the performance is not likely to be good). at least on the 
upside, the convention itself is only trivially different between x86 and 
x86-64 (the main difference being whether to use EAX or RAX, ...).

but, alas, I am not sure if Mono went and also paid the costs of using frames, 
... or if it managed to keep all this stuff strictly on the CPU stack.


BTW, for my uses, I have also gone and come up with an alternative 
representation for the metadata (apparently the need for metadata being an 
almost inescapable issue). my representation differs somewhat from that used in 
CIL, namely that as opposed to using tag-indices and tables, I am using a 
pointer-and-value compression scheme (mostly differential pointers and VLC).

I had realized that using raw pointers, ... the space overhead of metadata 
would likely be huge, ... but tables require keeping track of the table 
structure, which would be a big hassle and probably a performance cost, so the 
idea then was to instead use a special coding scheme to allow the pointers to 
be compressed while still keeping their independence...

in general though, these pointers are not visible to the linker (note, all this 
is at the ASM/machine-code level), so any external pointers are typically 
stored in a special metadata entry, which holds linker-visible (AKA 
conventional) pointers (these would be pointers into code or data, or other 
chunks of metadata).

but, it does save from me having to make my linker aware of these oddities 
(actually, I am not even sure if it would be practical/possible to link this 
kind of pointer-compressed data, as trying to do so is likely to involve having 
to restructure the whole thing...).

note that the metadata is still byte-structured (no LZ or Huffman, ...) and so 
it is still possible for machine code to hold pointers into the metadata 
(likewise, the representation can be easily decoded in place, .. at the cost 
of some loss of compression ability).

(none the less, a field definition could be concievably stored in 5-7 bytes, as 
opposed to 20 or 32 on x86 or x86-64).


note that it will not likely be a 1:1 transcription of CIL metadata, but is 
actually likely to be built by the JIT compiler (which may have in turn have 
gained its information from CIL, or also from '.class' files, ..). technically, 
it is structurally closer to the contents of '.class

Re: [Mono-dev] Ideas for Mono on Windows

2008-12-11 Thread [EMAIL PROTECTED]
Not sure nobody will be interested in 1.1.

We are! :-)



Daniel Morgan escribió:
 I think building Mono with Visual Studio is good for several reasons - 
 debugger is awesome, mono.exe should run faster built with visual c++ instead 
 of gcc, and easier to edit files.

 As for coding guidelines using visual studio text editor, it is not easy 
 because it autoformats C#.  Even when you tweak the settings to be like 
 mono's coding guidelines, they still are not correct.  So, you end up having 
 to manually go back and fixup the problems.

 As for the 1.1 profile, those building mono using visual studio will not 
 interested in the 1.1 profile anyways - they want to see the cool new stuff.



 --- On Tue, 12/9/08, Jonathan Chambers [EMAIL PROTECTED] wrote:

   
 From: Jonathan Chambers [EMAIL PROTECTED]
 Subject: Re: [Mono-dev] Ideas for Mono on Windows
 To: Miguel de Icaza [EMAIL PROTECTED]
 Cc: Atsushi Eno [EMAIL PROTECTED], mono-devel 
 mono-devel-list@lists.ximian.com
 Date: Tuesday, December 9, 2008, 2:41 PM
 Hello,

   I broke down the 'Mono on Windows' topic into
 two distinct approaches.
 I have mainly been working on the second approach as it
 seemed to be easier
 and provide more value.

 The first approach is to provide a way to build mono on
 windows without
 cygwin installed. This approach provides uses no MS tools
 and provides no VS
 integration for the class libraries. The runtime would
 still be built with
 MSVC at this point in the plan. It's simply a way for
 Windows developers to
 quickly build mono on windows. It should be much faster
 than the current
 cygwin based build and require let setup.

 The second approach (the one I have been working on) was to
 provide a
 'prepare' tool to generate csproj files for all the
 class libs. I also
 generate a solution containing all the projects. The user
 can then build all
 the mono class libraries (and unit tests) with one click
 (it's also per
 profile 1.1, 2.0, 3.5).

 So as for an update to the second approach. I have a
 rudimentary Makefile
 parser and am using it to generate csproj files for the
 class libraries. I
 have run into a few problems/issues:

 1. The conscensus on #monodev was that the build could use
 the MS compiler,
 but that we should reference mono class libraries as
 references. So, I build
 corlib first and then try and build the System.dll
 referencing our corlib
 rather than the MS one via -nostdlib compiler option (for
 the 1.1 profile).
 Visual Studio 2008 allows users to specify what framework
 version to target
 for a specific project, but 2.0 is the minimum version
 (2.0, 3.0, and 3.5
 are the options). The csc compiler errors out when building
 System.dll as it
 is looking for 2.0 specific items in corlib. The specific
 error is:

 error CS0656: Missing compiler required member
 'System.Threading.Thread.get_ManagedThreadId'

 I hacked around this by making that field public when build
 inside of Visual
 Studio. However, that is a hack and some in #monodev seemed
 to indicate we'd
 hit more issues going down this path.

 So, in short I think we may be stuck trying to build 1.1
 profile libraries
 (referencing our 1.1 corlib) using the csc compiler.

 I have a couple questions that hopefully I can get some
 responses on.

 1. What's the impact of building the 1.1 class
 libraries against the 2.0
 corlib?

 2. Should this approach (VS integration) be able to build a
 fully working
 mono image?

 3. If so, are we confident enough that contributors could
 use this build
 mechanism to make changes/patches? Or would this be viewed
 as a second
 class, and we would expect them to build on Linux or with
 cygwin before
 actually commiting changes?

 4. If we don't expect this approach to build a fully
 working mono image,
 what exactly is the goal/use case? Is it just so Windows
 hackers can quickly
 build a single class library in VS? They can debug a class
 library in VS?

 I'm still hoping to make things better on Windows for
 mono, but am not sure
 which direction to go now. Any (potential) mono hackers on
 Windows please
 let your opinions be known.

 Thanks,
 Jonathan

 On Fri, Nov 14, 2008 at 4:42 PM, Miguel de Icaza
 [EMAIL PROTECTED] wrote:

 
 Hello,

   
 The upside of the mechanism I am using is that
 
 all of that would still
 
 work the same, because I am still using the
 
 .sources files instead of
 
 having a .csproj.  The downside is we still
 
 wouldn't have .csproj's, so
 
 it doesn't make working in VS any easier, it
 
 just makes it possible to
 
 build Mono for Windows in under two hours.
 
 Thanks for this information.

 Is there a reason why we could not generate the
   
 .csproj files from
 
 the .sources and the Makefile settings for the entire
   
 tree in one
 
 prepare step?

 We need to have a good Visual Studio experience from
   
 the get-go and not
 
 only a faster command line buidl.

 Miguel

Re: [Mono-dev] Ideas for Mono on Windows

2008-12-10 Thread Marek Safar
Hello,
 They still need to get their patch reviewed, and we can publish a set of
 configuration settings for Visual Studio that follow the Mono Coding
 Guidelines.   

 I know that this is possible for per-user settings, but I am not sure if
 there is a way of distributing these. 

   
Yes, it's available in VS2008 under Tools-Import and Export Settings.

Marek
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-12-10 Thread Daniel Morgan
I think building Mono with Visual Studio is good for several reasons - debugger 
is awesome, mono.exe should run faster built with visual c++ instead of gcc, 
and easier to edit files.

As for coding guidelines using visual studio text editor, it is not easy 
because it autoformats C#.  Even when you tweak the settings to be like mono's 
coding guidelines, they still are not correct.  So, you end up having to 
manually go back and fixup the problems.

As for the 1.1 profile, those building mono using visual studio will not 
interested in the 1.1 profile anyways - they want to see the cool new stuff.



--- On Tue, 12/9/08, Jonathan Chambers [EMAIL PROTECTED] wrote:

 From: Jonathan Chambers [EMAIL PROTECTED]
 Subject: Re: [Mono-dev] Ideas for Mono on Windows
 To: Miguel de Icaza [EMAIL PROTECTED]
 Cc: Atsushi Eno [EMAIL PROTECTED], mono-devel 
 mono-devel-list@lists.ximian.com
 Date: Tuesday, December 9, 2008, 2:41 PM
 Hello,
 
   I broke down the 'Mono on Windows' topic into
 two distinct approaches.
 I have mainly been working on the second approach as it
 seemed to be easier
 and provide more value.
 
 The first approach is to provide a way to build mono on
 windows without
 cygwin installed. This approach provides uses no MS tools
 and provides no VS
 integration for the class libraries. The runtime would
 still be built with
 MSVC at this point in the plan. It's simply a way for
 Windows developers to
 quickly build mono on windows. It should be much faster
 than the current
 cygwin based build and require let setup.
 
 The second approach (the one I have been working on) was to
 provide a
 'prepare' tool to generate csproj files for all the
 class libs. I also
 generate a solution containing all the projects. The user
 can then build all
 the mono class libraries (and unit tests) with one click
 (it's also per
 profile 1.1, 2.0, 3.5).
 
 So as for an update to the second approach. I have a
 rudimentary Makefile
 parser and am using it to generate csproj files for the
 class libraries. I
 have run into a few problems/issues:
 
 1. The conscensus on #monodev was that the build could use
 the MS compiler,
 but that we should reference mono class libraries as
 references. So, I build
 corlib first and then try and build the System.dll
 referencing our corlib
 rather than the MS one via -nostdlib compiler option (for
 the 1.1 profile).
 Visual Studio 2008 allows users to specify what framework
 version to target
 for a specific project, but 2.0 is the minimum version
 (2.0, 3.0, and 3.5
 are the options). The csc compiler errors out when building
 System.dll as it
 is looking for 2.0 specific items in corlib. The specific
 error is:
 
 error CS0656: Missing compiler required member
 'System.Threading.Thread.get_ManagedThreadId'
 
 I hacked around this by making that field public when build
 inside of Visual
 Studio. However, that is a hack and some in #monodev seemed
 to indicate we'd
 hit more issues going down this path.
 
 So, in short I think we may be stuck trying to build 1.1
 profile libraries
 (referencing our 1.1 corlib) using the csc compiler.
 
 I have a couple questions that hopefully I can get some
 responses on.
 
 1. What's the impact of building the 1.1 class
 libraries against the 2.0
 corlib?
 
 2. Should this approach (VS integration) be able to build a
 fully working
 mono image?
 
 3. If so, are we confident enough that contributors could
 use this build
 mechanism to make changes/patches? Or would this be viewed
 as a second
 class, and we would expect them to build on Linux or with
 cygwin before
 actually commiting changes?
 
 4. If we don't expect this approach to build a fully
 working mono image,
 what exactly is the goal/use case? Is it just so Windows
 hackers can quickly
 build a single class library in VS? They can debug a class
 library in VS?
 
 I'm still hoping to make things better on Windows for
 mono, but am not sure
 which direction to go now. Any (potential) mono hackers on
 Windows please
 let your opinions be known.
 
 Thanks,
 Jonathan
 
 On Fri, Nov 14, 2008 at 4:42 PM, Miguel de Icaza
 [EMAIL PROTECTED] wrote:
 
  Hello,
 
   The upside of the mechanism I am using is that
 all of that would still
   work the same, because I am still using the
 .sources files instead of
   having a .csproj.  The downside is we still
 wouldn't have .csproj's, so
   it doesn't make working in VS any easier, it
 just makes it possible to
   build Mono for Windows in under two hours.
 
  Thanks for this information.
 
  Is there a reason why we could not generate the
 .csproj files from
  the .sources and the Makefile settings for the entire
 tree in one
  prepare step?
 
  We need to have a good Visual Studio experience from
 the get-go and not
  only a faster command line buidl.
 
  Miguel
 
  ___
  Mono-devel-list mailing list
  Mono-devel-list@lists.ximian.com
 
 http://lists.ximian.com/mailman/listinfo/mono-devel-list

Re: [Mono-dev] Ideas for Mono on Windows

2008-12-10 Thread Leszek Ciesielski
On Wed, Dec 10, 2008 at 1:14 AM, Atsushi Eno [EMAIL PROTECTED] wrote:

 VS integration has another problem. You cannot really expect VS non-
 express versions installed and then there is no way to run NUnit tests
 (no addins are allowed in Express versions). It can never be a first
 citizen build environment.

It is possible with a bit of a hack (no
violating-licence-to-install-plugins, as some projects did earlier).
One needs to add a StartAction and StartProgram to the .csproj
(details: 
http://skolima.jogger.pl/2007/07/02/debugging-nunit-tests-in-visual-studio-2005-express/
). I have used this for over two years (VS 2005 Express and VS 2008
Express), before my employer finally bought VS Standard.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-12-09 Thread Jonathan Chambers
Hello,

  I broke down the 'Mono on Windows' topic into two distinct approaches.
I have mainly been working on the second approach as it seemed to be easier
and provide more value.

The first approach is to provide a way to build mono on windows without
cygwin installed. This approach provides uses no MS tools and provides no VS
integration for the class libraries. The runtime would still be built with
MSVC at this point in the plan. It's simply a way for Windows developers to
quickly build mono on windows. It should be much faster than the current
cygwin based build and require let setup.

The second approach (the one I have been working on) was to provide a
'prepare' tool to generate csproj files for all the class libs. I also
generate a solution containing all the projects. The user can then build all
the mono class libraries (and unit tests) with one click (it's also per
profile 1.1, 2.0, 3.5).

So as for an update to the second approach. I have a rudimentary Makefile
parser and am using it to generate csproj files for the class libraries. I
have run into a few problems/issues:

1. The conscensus on #monodev was that the build could use the MS compiler,
but that we should reference mono class libraries as references. So, I build
corlib first and then try and build the System.dll referencing our corlib
rather than the MS one via -nostdlib compiler option (for the 1.1 profile).
Visual Studio 2008 allows users to specify what framework version to target
for a specific project, but 2.0 is the minimum version (2.0, 3.0, and 3.5
are the options). The csc compiler errors out when building System.dll as it
is looking for 2.0 specific items in corlib. The specific error is:

error CS0656: Missing compiler required member
'System.Threading.Thread.get_ManagedThreadId'

I hacked around this by making that field public when build inside of Visual
Studio. However, that is a hack and some in #monodev seemed to indicate we'd
hit more issues going down this path.

So, in short I think we may be stuck trying to build 1.1 profile libraries
(referencing our 1.1 corlib) using the csc compiler.

I have a couple questions that hopefully I can get some responses on.

1. What's the impact of building the 1.1 class libraries against the 2.0
corlib?

2. Should this approach (VS integration) be able to build a fully working
mono image?

3. If so, are we confident enough that contributors could use this build
mechanism to make changes/patches? Or would this be viewed as a second
class, and we would expect them to build on Linux or with cygwin before
actually commiting changes?

4. If we don't expect this approach to build a fully working mono image,
what exactly is the goal/use case? Is it just so Windows hackers can quickly
build a single class library in VS? They can debug a class library in VS?

I'm still hoping to make things better on Windows for mono, but am not sure
which direction to go now. Any (potential) mono hackers on Windows please
let your opinions be known.

Thanks,
Jonathan

On Fri, Nov 14, 2008 at 4:42 PM, Miguel de Icaza [EMAIL PROTECTED] wrote:

 Hello,

  The upside of the mechanism I am using is that all of that would still
  work the same, because I am still using the .sources files instead of
  having a .csproj.  The downside is we still wouldn't have .csproj's, so
  it doesn't make working in VS any easier, it just makes it possible to
  build Mono for Windows in under two hours.

 Thanks for this information.

 Is there a reason why we could not generate the .csproj files from
 the .sources and the Makefile settings for the entire tree in one
 prepare step?

 We need to have a good Visual Studio experience from the get-go and not
 only a faster command line buidl.

 Miguel

 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-12-09 Thread Jonathan Pobst
Hey Jonathan,

My interest is mainly the first approach, but building class libraries 
is an important part of either approach, so thank you for your effort on 
this.  :)

I would say especially for your use case, we probably don't need to 
worry about the 1.1 profile currently.  All contributing is probably 
going to happen in the 2.0+ profile, given how complete and obsolete 1.1 is.

The only concern then is libraries that we only ship runtime 1.1 
versions of.  Mono.Cecil.dll had been mentioned as one of these.  We 
probably need to come up with the list of assemblies that this includes. 
  Most, if not all, would probably be fine if they were compiled against 
2.0 for users' local testing.

Obviously, there are other factors in play such as correctness and 
cross-platformness, but I don't see any reason why users' patches 
wouldn't be accepted if they were written on Windows.

jpobst

Jonathan Chambers wrote:
 Hello,
 
   I broke down the 'Mono on Windows' topic into two distinct 
 approaches. I have mainly been working on the second approach as it 
 seemed to be easier and provide more value.
 
 The first approach is to provide a way to build mono on windows without 
 cygwin installed. This approach provides uses no MS tools and provides 
 no VS integration for the class libraries. The runtime would still be 
 built with MSVC at this point in the plan. It's simply a way for Windows 
 developers to quickly build mono on windows. It should be much faster 
 than the current cygwin based build and require let setup.
 
 The second approach (the one I have been working on) was to provide a 
 'prepare' tool to generate csproj files for all the class libs. I also 
 generate a solution containing all the projects. The user can then build 
 all the mono class libraries (and unit tests) with one click (it's also 
 per profile 1.1, 2.0, 3.5).
 
 So as for an update to the second approach. I have a rudimentary 
 Makefile parser and am using it to generate csproj files for the class 
 libraries. I have run into a few problems/issues:
 
 1. The conscensus on #monodev was that the build could use the MS 
 compiler, but that we should reference mono class libraries as 
 references. So, I build corlib first and then try and build the 
 System.dll referencing our corlib rather than the MS one via -nostdlib 
 compiler option (for the 1.1 profile). Visual Studio 2008 allows users 
 to specify what framework version to target for a specific project, but 
 2.0 is the minimum version (2.0, 3.0, and 3.5 are the options). The csc 
 compiler errors out when building System.dll as it is looking for 2.0 
 specific items in corlib. The specific error is:
 
 error CS0656: Missing compiler required member 
 'System.Threading.Thread.get_ManagedThreadId'
 
 I hacked around this by making that field public when build inside of 
 Visual Studio. However, that is a hack and some in #monodev seemed to 
 indicate we'd hit more issues going down this path.
 
 So, in short I think we may be stuck trying to build 1.1 profile 
 libraries (referencing our 1.1 corlib) using the csc compiler.
 
 I have a couple questions that hopefully I can get some responses on.
 
 1. What's the impact of building the 1.1 class libraries against the 2.0 
 corlib?
 
 2. Should this approach (VS integration) be able to build a fully 
 working mono image?
 
 3. If so, are we confident enough that contributors could use this build 
 mechanism to make changes/patches? Or would this be viewed as a second 
 class, and we would expect them to build on Linux or with cygwin before 
 actually commiting changes?
 
 4. If we don't expect this approach to build a fully working mono image, 
 what exactly is the goal/use case? Is it just so Windows hackers can 
 quickly build a single class library in VS? They can debug a class 
 library in VS?
 
 I'm still hoping to make things better on Windows for mono, but am not 
 sure which direction to go now. Any (potential) mono hackers on Windows 
 please let your opinions be known.
 
 Thanks,
 Jonathan
 
 On Fri, Nov 14, 2008 at 4:42 PM, Miguel de Icaza [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED] wrote:
 
 Hello,
 
   The upside of the mechanism I am using is that all of that would
 still
   work the same, because I am still using the .sources files instead of
   having a .csproj.  The downside is we still wouldn't have
 .csproj's, so
   it doesn't make working in VS any easier, it just makes it
 possible to
   build Mono for Windows in under two hours.
 
 Thanks for this information.
 
 Is there a reason why we could not generate the .csproj files from
 the .sources and the Makefile settings for the entire tree in one
 prepare step?
 
 We need to have a good Visual Studio experience from the get-go and not
 only a faster command line buidl.
 
 Miguel
 
 ___
 Mono-devel-list mailing list
 

Re: [Mono-dev] Ideas for Mono on Windows

2008-12-09 Thread Atsushi Eno
Hello,

First of all I'm not aware of any of concensus on #monodev. Actually
I find almost no reason to use VS to build our classlibs. The classlib
build is not much slower on cygwin. The remarkable difference would
happen only on the runtime build.

VS integration has another problem. You cannot really expect VS non-
express versions installed and then there is no way to run NUnit tests
(no addins are allowed in Express versions). It can never be a first
citizen build environment.

Also note that we cannot bring VS apporach to our automated build unless
we get working xbuild.

As I stated earlier, I don't care much about it as long as cygwin build
is kept though. The minor issue I am afraid is that those VS users are
likely to ignore our Coding Guidelines.

Atsushi Eno

Jonathan Chambers wrote:
 Hello,
 
   I broke down the 'Mono on Windows' topic into two distinct 
 approaches. I have mainly been working on the second approach as it 
 seemed to be easier and provide more value.
 
 The first approach is to provide a way to build mono on windows without 
 cygwin installed. This approach provides uses no MS tools and provides 
 no VS integration for the class libraries. The runtime would still be 
 built with MSVC at this point in the plan. It's simply a way for Windows 
 developers to quickly build mono on windows. It should be much faster 
 than the current cygwin based build and require let setup.
 
 The second approach (the one I have been working on) was to provide a 
 'prepare' tool to generate csproj files for all the class libs. I also 
 generate a solution containing all the projects. The user can then build 
 all the mono class libraries (and unit tests) with one click (it's also 
 per profile 1.1, 2.0, 3.5).
 
 So as for an update to the second approach. I have a rudimentary 
 Makefile parser and am using it to generate csproj files for the class 
 libraries. I have run into a few problems/issues:
 
 1. The conscensus on #monodev was that the build could use the MS 
 compiler, but that we should reference mono class libraries as 
 references. So, I build corlib first and then try and build the 
 System.dll referencing our corlib rather than the MS one via -nostdlib 
 compiler option (for the 1.1 profile). Visual Studio 2008 allows users 
 to specify what framework version to target for a specific project, but 
 2.0 is the minimum version (2.0, 3.0, and 3.5 are the options). The csc 
 compiler errors out when building System.dll as it is looking for 2.0 
 specific items in corlib. The specific error is:
 
 error CS0656: Missing compiler required member 
 'System.Threading.Thread.get_ManagedThreadId'
 
 I hacked around this by making that field public when build inside of 
 Visual Studio. However, that is a hack and some in #monodev seemed to 
 indicate we'd hit more issues going down this path.
 
 So, in short I think we may be stuck trying to build 1.1 profile 
 libraries (referencing our 1.1 corlib) using the csc compiler.
 
 I have a couple questions that hopefully I can get some responses on.
 
 1. What's the impact of building the 1.1 class libraries against the 2.0 
 corlib?
 
 2. Should this approach (VS integration) be able to build a fully 
 working mono image?
 
 3. If so, are we confident enough that contributors could use this build 
 mechanism to make changes/patches? Or would this be viewed as a second 
 class, and we would expect them to build on Linux or with cygwin before 
 actually commiting changes?
 
 4. If we don't expect this approach to build a fully working mono image, 
 what exactly is the goal/use case? Is it just so Windows hackers can 
 quickly build a single class library in VS? They can debug a class 
 library in VS?
 
 I'm still hoping to make things better on Windows for mono, but am not 
 sure which direction to go now. Any (potential) mono hackers on Windows 
 please let your opinions be known.
 
 Thanks,
 Jonathan
 
 On Fri, Nov 14, 2008 at 4:42 PM, Miguel de Icaza [EMAIL PROTECTED] 
 mailto:[EMAIL PROTECTED] wrote:
 
 Hello,
 
   The upside of the mechanism I am using is that all of that would
 still
   work the same, because I am still using the .sources files instead of
   having a .csproj.  The downside is we still wouldn't have
 .csproj's, so
   it doesn't make working in VS any easier, it just makes it
 possible to
   build Mono for Windows in under two hours.
 
 Thanks for this information.
 
 Is there a reason why we could not generate the .csproj files from
 the .sources and the Makefile settings for the entire tree in one
 prepare step?
 
 We need to have a good Visual Studio experience from the get-go and not
 only a faster command line buidl.
 
 Miguel
 
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 mailto:Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list
 

Re: [Mono-dev] Ideas for Mono on Windows

2008-12-09 Thread Miguel de Icaza
Hello,

I think it would help to keep in mind what the objective is for the
second approach: to make Mono easier to hack on for Windows developers
and to encourage contributions. 

We agreed on the second approach (Hit F5 in Visual Studio, get a
fully built Mono):

 1. What's the impact of building the 1.1 class libraries against the
 2.0 corlib?

I am wondering if there is a lot of value in building the 1.0 and 2.0
profiles of Mono with Visual Studio.

The 1.0 profile so far has limited uses: bootstrapping and embedded
scenarios, they are both valuable, but they probably should not be
mandatory for the F5 experience which is to say: how do we enable more
developers on Windows to easily hack on Mono.

The multi-stage build process from Mono (where we build mscorlib a
number of times) might not be necessary to achieve this goal, I would
postpone this for now and not bother too much with this.

I saw the discussion about some of our libraries that we still compile
against the 1.0 profile.   I think that we can do two things here:

* We could build policy files that remap 2.0 to the 1.0 
  assemblies on Linux so that executables built on Windows
  using these 2.0-based applications continue to work.

* Alternatively, have a new stage that redirects the code
  to a 1.0 profile API to ensure full compatibility (this
  is what JB suggested online).

 2. Should this approach (VS integration) be able to build a fully
 working mono image? 

In order of priority I think we want:

* Ease of use for developers to get started with Mono hacking.

* Ease for users to get a version of Mono, and build a version
  from SVN that they can use.

* Eventually be able to produce a fully compatible Mono from 
  Visual Studio with a single command.

I believe that we can achieve the last point with some custom tools in
the future, using a last stage pass that uses our runtime and a
monolite component.   I say a last stage merely because I think that
we should postpone a full build of Mono that includes the 1.0 profile
from Visual Studio if this is too difficult.

 3. If so, are we confident enough that contributors could use this
 build mechanism to make changes/patches? Or would this be viewed as a
 second class, and we would expect them to build on Linux or with
 cygwin before actually commiting changes?

I do not anticipate to find too many problems with the partial approach
(where the 2.0 is the only platform tested).   There certainly will be
some, but those problems even happen today with people using Linux or
Cygwin.

If it becomes too much of a problem, we can revisit at that point the
setup and augment it.

Miguel.

 4. If we don't expect this approach to build a fully working mono
 image, what exactly is the goal/use case? Is it just so Windows
 hackers can quickly build a single class library in VS? They can debug
 a class library in VS?
 
 I'm still hoping to make things better on Windows for mono, but am not
 sure which direction to go now. Any (potential) mono hackers on
 Windows please let your opinions be known.
 
 Thanks,
 Jonathan
 
 On Fri, Nov 14, 2008 at 4:42 PM, Miguel de Icaza [EMAIL PROTECTED]
 wrote:
 Hello,
 
  The upside of the mechanism I am using is that all of that
 would still
  work the same, because I am still using the .sources files
 instead of
  having a .csproj.  The downside is we still wouldn't
 have .csproj's, so
  it doesn't make working in VS any easier, it just makes it
 possible to
  build Mono for Windows in under two hours.
 
 
 Thanks for this information.
 
 Is there a reason why we could not generate the .csproj files
 from
 the .sources and the Makefile settings for the entire tree in
 one
 prepare step?
 
 We need to have a good Visual Studio experience from the
 get-go and not
 only a faster command line buidl.
 
 Miguel
 
 
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list
 
 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-12-09 Thread Miguel de Icaza
Hello,

Let us please not use stop energy from preventing this incredibly
important project from moving ahead.

The Mono Build on Visual Studio will not be able to solve every problem
ever, but for that we already have the Cygwin fallback. 

This discussion is about how we can gradually improve things for
developers that are mostly used by Visual Studio developers:

 First of all I'm not aware of any of concensus on #monodev. Actually
 I find almost no reason to use VS to build our classlibs. The classlib
 build is not much slower on cygwin. The remarkable difference would
 happen only on the runtime build.

This was a consensus reached by those of us that were present at the
time.   

The goal is to make it simpler for contributors that are interested in
Mono to contribute effectively.The reality is that setting up cygwin
is a painful process, and it is not always reliable and requires
contributors to be familiar with the Unix toolchain.

The gist of the discussion in #monodev was to achieve the same level of
ease of use as Google Chrome has: they shipped with Visual Studio
solutions and you can go from source code checkout to running Chrome
following the following steps:

* Open Solution File.
* Hit F5

That is it.A fully working Chrome pops up in your screen after
this. 

So the goal is to come to this exact point: having a fully working Mono,
have an option to run its test suites, build programs against this Mono
and so on from Visual Studio with a single keystroke without requiring
people to learn any Unixisms.

We need to get there one step at a time, baby steps.  First being able
to build a runtime and the class libraries, then we will do the full
profiles, then we can even think about integrating this with our Visual
Studio plugin and so on.

 VS integration has another problem. You cannot really expect VS non-
 express versions installed and then there is no way to run NUnit tests
 (no addins are allowed in Express versions). It can never be a first
 citizen build environment.

For the F5 experience people would need to have Visual Studio
Professional installed as this would build runtime, support libraries
and class libraries.

For express users we could probably partition the problem: runtime built
with Express C++ and class libraries with Express C#.

 As I stated earlier, I don't care much about it as long as cygwin build
 is kept though. The minor issue I am afraid is that those VS users are
 likely to ignore our Coding Guidelines.

They still need to get their patch reviewed, and we can publish a set of
configuration settings for Visual Studio that follow the Mono Coding
Guidelines.   

I know that this is possible for per-user settings, but I am not sure if
there is a way of distributing these. 

Miguel.

 
 Atsushi Eno
 
 Jonathan Chambers wrote:
  Hello,
  
I broke down the 'Mono on Windows' topic into two distinct 
  approaches. I have mainly been working on the second approach as it 
  seemed to be easier and provide more value.
  
  The first approach is to provide a way to build mono on windows without 
  cygwin installed. This approach provides uses no MS tools and provides 
  no VS integration for the class libraries. The runtime would still be 
  built with MSVC at this point in the plan. It's simply a way for Windows 
  developers to quickly build mono on windows. It should be much faster 
  than the current cygwin based build and require let setup.
  
  The second approach (the one I have been working on) was to provide a 
  'prepare' tool to generate csproj files for all the class libs. I also 
  generate a solution containing all the projects. The user can then build 
  all the mono class libraries (and unit tests) with one click (it's also 
  per profile 1.1, 2.0, 3.5).
  
  So as for an update to the second approach. I have a rudimentary 
  Makefile parser and am using it to generate csproj files for the class 
  libraries. I have run into a few problems/issues:
  
  1. The conscensus on #monodev was that the build could use the MS 
  compiler, but that we should reference mono class libraries as 
  references. So, I build corlib first and then try and build the 
  System.dll referencing our corlib rather than the MS one via -nostdlib 
  compiler option (for the 1.1 profile). Visual Studio 2008 allows users 
  to specify what framework version to target for a specific project, but 
  2.0 is the minimum version (2.0, 3.0, and 3.5 are the options). The csc 
  compiler errors out when building System.dll as it is looking for 2.0 
  specific items in corlib. The specific error is:
  
  error CS0656: Missing compiler required member 
  'System.Threading.Thread.get_ManagedThreadId'
  
  I hacked around this by making that field public when build inside of 
  Visual Studio. However, that is a hack and some in #monodev seemed to 
  indicate we'd hit more issues going down this path.
  
  So, in short I think we may be stuck trying to build 1.1 

Re: [Mono-dev] Ideas for Mono on Windows

2008-12-09 Thread Eyal Alaluf
Hi, all.

I'd like to chip in our Grasshopper experience with Mono. We found it always 
extremely useful and productive to be able to build the Mono class libraries 
from Visual Studio (in the Grasshopper version).
To me it would seem that the 1.1 profile is much less important then 2.0 and 
above. Also I find that the class libraries have precedence over the runtime - 
so (for instance) any investment in Express C++ should come last. Also, when 
effort wil be invested in building without requiring cygwin installed - I would 
first do it for the class libraries and only afterwards the Mono runtime build.

Eyal.

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Miguel de Icaza
Sent: Wednesday, December 10, 2008 2:44 AM
To: Atsushi Eno
Cc: mono-devel
Subject: Re: [Mono-dev] Ideas for Mono on Windows

Hello,

Let us please not use stop energy from preventing this incredibly
important project from moving ahead.

The Mono Build on Visual Studio will not be able to solve every problem
ever, but for that we already have the Cygwin fallback. 

This discussion is about how we can gradually improve things for
developers that are mostly used by Visual Studio developers:

 First of all I'm not aware of any of concensus on #monodev. Actually
 I find almost no reason to use VS to build our classlibs. The classlib
 build is not much slower on cygwin. The remarkable difference would
 happen only on the runtime build.

This was a consensus reached by those of us that were present at the
time.   

The goal is to make it simpler for contributors that are interested in
Mono to contribute effectively.The reality is that setting up cygwin
is a painful process, and it is not always reliable and requires
contributors to be familiar with the Unix toolchain.

The gist of the discussion in #monodev was to achieve the same level of
ease of use as Google Chrome has: they shipped with Visual Studio
solutions and you can go from source code checkout to running Chrome
following the following steps:

* Open Solution File.
* Hit F5

That is it.A fully working Chrome pops up in your screen after
this. 

So the goal is to come to this exact point: having a fully working Mono,
have an option to run its test suites, build programs against this Mono
and so on from Visual Studio with a single keystroke without requiring
people to learn any Unixisms.

We need to get there one step at a time, baby steps.  First being able
to build a runtime and the class libraries, then we will do the full
profiles, then we can even think about integrating this with our Visual
Studio plugin and so on.

 VS integration has another problem. You cannot really expect VS non-
 express versions installed and then there is no way to run NUnit tests
 (no addins are allowed in Express versions). It can never be a first
 citizen build environment.

For the F5 experience people would need to have Visual Studio
Professional installed as this would build runtime, support libraries
and class libraries.

For express users we could probably partition the problem: runtime built
with Express C++ and class libraries with Express C#.

 As I stated earlier, I don't care much about it as long as cygwin build
 is kept though. The minor issue I am afraid is that those VS users are
 likely to ignore our Coding Guidelines.

They still need to get their patch reviewed, and we can publish a set of
configuration settings for Visual Studio that follow the Mono Coding
Guidelines.   

I know that this is possible for per-user settings, but I am not sure if
there is a way of distributing these. 

Miguel.

 
 Atsushi Eno
 
 Jonathan Chambers wrote:
  Hello,
  
I broke down the 'Mono on Windows' topic into two distinct 
  approaches. I have mainly been working on the second approach as it 
  seemed to be easier and provide more value.
  
  The first approach is to provide a way to build mono on windows without 
  cygwin installed. This approach provides uses no MS tools and provides 
  no VS integration for the class libraries. The runtime would still be 
  built with MSVC at this point in the plan. It's simply a way for Windows 
  developers to quickly build mono on windows. It should be much faster 
  than the current cygwin based build and require let setup.
  
  The second approach (the one I have been working on) was to provide a 
  'prepare' tool to generate csproj files for all the class libs. I also 
  generate a solution containing all the projects. The user can then build 
  all the mono class libraries (and unit tests) with one click (it's also 
  per profile 1.1, 2.0, 3.5).
  
  So as for an update to the second approach. I have a rudimentary 
  Makefile parser and am using it to generate csproj files for the class 
  libraries. I have run into a few problems/issues:
  
  1. The conscensus on #monodev was that the build could use the MS 
  compiler, but that we should reference mono class libraries

Re: [Mono-dev] Ideas for Mono on Windows

2008-11-14 Thread Miguel de Icaza

 As to not just be a complainer, I am offering some suggestions/ideas
 and hoping for others to do the same (or at least critique mine ;-)).
 Before I offer any suggestions, I think we need to balance between two
 things. One is making life easy for the mono build/package team to
 produce a Windows product. It's not real easy now, but we shouldn't
 make it any harder. The second thing is making life easy for those who
 wish to work/contribute to mono on Windows. This second item is tough
 at this point.

I agree;Point (2) is probably one of the most important thing that
we can do and we are missing important contributions by making it hard
for the Windows developer community to work with Mono.

I would like to follow on Google's footsteps here and make sure that the
Mono development experience is Check out the source, open the solution,
hit F5 and you are done.

 1) We should consider using MSVC as the default compiler for C code on
 Windows. I can compile the entire Visual Studio solution for the
 runtime in minutes. It takes 20-30 seconds if I do a parallel build.
 We can also use the Visual Studio debugger on Windows, which IMO is
 betten than gdb on Windows.

I like this plan.

 2) Two propositions for the class libraries have been mentioned
 previously. One is a lightweight, 'managed make' system that could be
 run easily on windows in place of all the build infrastructure
 provided by cgywin. This obviously allows us to keep using Makefiles
 on other platforms and keep a unified build process, but requires
 someone write the tool (and maintain it). Another option is to moved
 to MSBuild/xbuild for the class libraries. This would change the build
 process on all platforms, and require some fixing of our current
 xbuild tool. MSYS/MinGW has also been mentioned, but I don't consider
 that much better than Cygwin. I attempted to get it working one time,
 but gave up after a few days of hacking.

I am fine with either solution myself.

I do like the idea of reusing msbuild and completing the implementation
of xbuild myself, although we have dropped the ball on xbuild numerous
times.

Miguel

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-14 Thread Miguel de Icaza
Hello,

 The upside of the mechanism I am using is that all of that would still 
 work the same, because I am still using the .sources files instead of 
 having a .csproj.  The downside is we still wouldn't have .csproj's, so 
 it doesn't make working in VS any easier, it just makes it possible to 
 build Mono for Windows in under two hours.

Thanks for this information.

Is there a reason why we could not generate the .csproj files from
the .sources and the Makefile settings for the entire tree in one
prepare step?

We need to have a good Visual Studio experience from the get-go and not
only a faster command line buidl.

Miguel

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-14 Thread Eugeny Grishul

There is no need for .dll.sources for (ms|x)build - use wildcards:
  ItemGroup
Compile Include=../../build/common/*.cs /
Compile Include=**/*.cs /
  /ItemGroup

gmcs is self-hosting compiler so there is no obstacles to have unified
self-hosting build engine like xbuild for entire project. The only problem
is developers that like spend time in command line insted of
developing/debugging.
-- 
View this message in context: 
http://www.nabble.com/Ideas-for-Mono-on-Windows-tp20449573p20512725.html
Sent from the Mono - Dev mailing list archive at Nabble.com.

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-13 Thread Lucas Meijer
Atsushi Eno wrote:
 Classlib hackers who uses Visual Studio: how do you do those tasks?
   
I'm no classlib hacker, but do use Visual Studio for my game project 
that is running ontop of mono.

We currently use scons as our build software, and have 
visualstudiosolution as a seperate target.
the scons script will basically scan trough my project's filesystem in a 
way I have told it to, and look
for all .cs files.   It then creates .csproj's for each assembly, and a 
.sln file containing all those projects.

Creating those files is as simple as taking a template .csproj file 
prepared by me, and adding a line for each .cs file.

When you do an svn-update you just have to regenerate your visualstudio 
solution, which takes about a second.
When you add new files yourself trough visual studio, you don't need to 
do anything.

I might not have a helicopter view of the problems with building mono, 
but at least this works great for our project.

Bye, Lucas
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-13 Thread Paolo Molaro
On 11/11/08 Jonathan Chambers wrote:
 1) We should consider using MSVC as the default compiler for C code on
 Windows. I can compile the entire Visual Studio solution for the runtime in
 minutes. It takes 20-30 seconds if I do a parallel build. We can also use
 the Visual Studio debugger on Windows, which IMO is betten than gdb on
 Windows.

So this is already done by you, AFAIK. I even add new .c files to the MSVC build
files (when I remember about it:).

 it). Another option is to moved to MSBuild/xbuild for the class libraries.

I think you're taking it from the wrong side.
There is no need to move the Linux build system to xbuild or whatever.
As other have mentioned, the build files can be generated from the
.sources files quite easily. You can write the conversion script in perl
or even C# and we can have rules in the makefiles to run them
automatically when the source files are modified.

AFAIK, the only two things missing are:
1) a windows developer that volunteers writing the script and
MSBuild/xbuild files.
2) a windows developer that documents the thing for other windows
developers so they are not tricked into going down the cygwin route
anymore and just click on the right buttons instead.

As you see we only need some windows developer to step up to the plate.
I suggest starting to build the complete assemblies first, without
going into the details of bootstrapping. This should take an hour or
two. And then we (mostly hari I guess) can help with the bootstrap
details.

So, who volunteers?

lupus

-- 
-
[EMAIL PROTECTED] debian/rules
[EMAIL PROTECTED] Monkeys do it better
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-13 Thread Jonathan Chambers
Paolo,
 Thanks for the response.

On Thu, Nov 13, 2008 at 9:01 AM, Paolo Molaro [EMAIL PROTECTED] wrote:

 On 11/11/08 Jonathan Chambers wrote:
  1) We should consider using MSVC as the default compiler for C code on
  Windows. I can compile the entire Visual Studio solution for the runtime
 in
  minutes. It takes 20-30 seconds if I do a parallel build. We can also use
  the Visual Studio debugger on Windows, which IMO is betten than gdb on
  Windows.

 So this is already done by you, AFAIK. I even add new .c files to the MSVC
 build
 files (when I remember about it:).

  it). Another option is to moved to MSBuild/xbuild for the class
 libraries.

 I think you're taking it from the wrong side.
 There is no need to move the Linux build system to xbuild or whatever.
 As other have mentioned, the build files can be generated from the
 .sources files quite easily. You can write the conversion script in perl
 or even C# and we can have rules in the makefiles to run them
 automatically when the source files are modified.



 AFAIK, the only two things missing are:
 1) a windows developer that volunteers writing the script and
 MSBuild/xbuild files.


I have started writing this tool in C#. It correctly generates a csproj file
from the Makefile and the library.dll.sources files. It already works on
most assemblies in mcs/class. I'm working on generating the corresponding
NUnit projects as well.I'll hopefully post something in a couple of days.


 2) a windows developer that documents the thing for other windows
 developers so they are not tricked into going down the cygwin route
 anymore and just click on the right buttons instead.


I can also look into this once a full build is working. Not to mention the
fact the xbuild needs a good bit of work.



 As you see we only need some windows developer to step up to the plate.
 I suggest starting to build the complete assemblies first, without
 going into the details of bootstrapping. This should take an hour or
 two. And then we (mostly hari I guess) can help with the bootstrap
 details.

 So, who volunteers?


I would appreciate any help offered by others ;-). Hacking on xbuild
(including contributing tests) would be expecially useful...

Thanks,
Jonathan




 lupus

 --
 -
 [EMAIL PROTECTED] debian/rules
 [EMAIL PROTECTED] Monkeys do it better
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-13 Thread Paolo Molaro
On 11/13/08 Jonathan Chambers wrote:
 I have started writing this tool in C#. It correctly generates a csproj file
 from the Makefile and the library.dll.sources files. It already works on
 most assemblies in mcs/class. I'm working on generating the corresponding
 NUnit projects as well.I'll hopefully post something in a couple of days.

Excellent news!
IMHO, the sooner you commit your script, the sooner other windows
developers can help improving it.

lupus

-- 
-
[EMAIL PROTECTED] debian/rules
[EMAIL PROTECTED] Monkeys do it better
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-13 Thread Andrés G. Aragoneses

This is awesome news.

However, this doesn't change the fact that a Windows developer will have
to remember to change the makefiles if she contributes a patch with
files included/removed (and a Win developer usually doesn't know how to
do this as well).

But if you write your tool to be able to do the opposite thing as well,
you could just call it in the MSbuild files in order to change them as a
part of the build, right? If this can be done, even the non-Windows
developers that aren't used to AutoTools will benefit from it when
xbuild is finished.

Andrés


Jonathan Chambers wrote:
 Paolo,
  Thanks for the response.
 
 On Thu, Nov 13, 2008 at 9:01 AM, Paolo Molaro [EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED] wrote:
 
 On 11/11/08 Jonathan Chambers wrote:
  1) We should consider using MSVC as the default compiler for C code on
  Windows. I can compile the entire Visual Studio solution for the
 runtime in
  minutes. It takes 20-30 seconds if I do a parallel build. We can
 also use
  the Visual Studio debugger on Windows, which IMO is betten than gdb on
  Windows.
 
 So this is already done by you, AFAIK. I even add new .c files to
 the MSVC build
 files (when I remember about it:).
 
  it). Another option is to moved to MSBuild/xbuild for the class
 libraries.
 
 I think you're taking it from the wrong side.
 There is no need to move the Linux build system to xbuild or whatever.
 As other have mentioned, the build files can be generated from the
 .sources files quite easily. You can write the conversion script in perl
 or even C# and we can have rules in the makefiles to run them
 automatically when the source files are modified.
 
 
 
 AFAIK, the only two things missing are:
 1) a windows developer that volunteers writing the script and
 MSBuild/xbuild files.
 
  
 I have started writing this tool in C#. It correctly generates a csproj
 file from the Makefile and the library.dll.sources files. It already
 works on most assemblies in mcs/class. I'm working on generating the
 corresponding NUnit projects as well.I'll hopefully post something in a
 couple of days.
 
 
 2) a windows developer that documents the thing for other windows
 developers so they are not tricked into going down the cygwin route
 anymore and just click on the right buttons instead.
 
  
 I can also look into this once a full build is working. Not to mention
 the fact the xbuild needs a good bit of work.
 
 
 
 As you see we only need some windows developer to step up to the plate.
 I suggest starting to build the complete assemblies first, without
 going into the details of bootstrapping. This should take an hour or
 two. And then we (mostly hari I guess) can help with the bootstrap
 details.
 
 So, who volunteers?
 
 
 I would appreciate any help offered by others ;-). Hacking on xbuild
 (including contributing tests) would be expecially useful...
 
 Thanks,
 Jonathan
  

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-12 Thread Lluis Sanchez Gual
El dc 12 de 11 de 2008 a les 10:43 +0100, en/na Rolf Bjarne Kvinge va
escriure:
 Hi,
 
  As one of the true maintainers of classlibs I'm completely against
  ideas to drop cygwin support as it completely destroys my hacking life
  (note that I don't mean I dislike adding VS build support), but anyways
  here I agree with jpobst on the part to keep using dll.sources.
  
  Here is what I do for adding new source files into svn:
  - Update *.dll.sources file:
 ls ../../build/common/*.cs */*.cs | sort 
  System.Foo.Bar.dll.sources
 make
  - Collect which files should be mentioned in ChangeLog:
 svn diff FooBar.dll.sources
 - copy the rectangle(s) on the console output
  - Add new files to svn (and svn propdel svn:executable):
 copypaste those lines in svn add command line.
  
  Can these tasks ever easier by switching to your beautiful xml csproj?
  In MWF land did we create csproj-sources converter?
 
 In MWF land there's a sources-csproj converter.
 
 In vbnc land there's a vbproj-sources converter.
 
 I guess it depends on whoever is maintaining the code. 
 
 IMHO as a starter it would be nice to have csproj's for all classlibs in
 svn, generated automatically in the makefiles (they way it's done in MWF),
 especially now that MD doesn't seem to be able to open the Makefiles anymore

I'm not aware of any problem opening Mono's Makefiles.

 (this isn't only for VS people, it would be useful for MD people too).
 
 Rolf
  
 
 
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-12 Thread Jonathan Pobst
Atsushi Eno wrote:
 Here is what I do for adding new source files into svn:
 - Update *.dll.sources file:
ls ../../build/common/*.cs */*.cs | sort  System.Foo.Bar.dll.sources
make
 - Collect which files should be mentioned in ChangeLog:
svn diff FooBar.dll.sources
- copy the rectangle(s) on the console output
 - Add new files to svn (and svn propdel svn:executable):
copypaste those lines in svn add command line.
 
 Can these tasks ever easier by switching to your beautiful xml csproj?
 In MWF land did we create csproj-sources converter?

The upside of the mechanism I am using is that all of that would still 
work the same, because I am still using the .sources files instead of 
having a .csproj.  The downside is we still wouldn't have .csproj's, so 
it doesn't make working in VS any easier, it just makes it possible to 
build Mono for Windows in under two hours.

 Classlib hackers who uses Visual Studio: how do you do those tasks?

I manually add new classes to the project in VS.  Before I commit, I 
manually add those classes to the .sources file.  I then write my 
ChangeLog by hand.  I then commit using TortoiseSVN, where I just click 
the files I want to commit, and TortoiseSVN handles doing adds or 
commits or whatever.

In MWF, there is script that builds the .csproj from the .sources file, 
however it is written in bash, so it isn't usable on Windows without 
cygwin/bash.  Therefore, I just manually maintain my own .csproj.  This 
works for MWF because it is very rare at this point to add any new 
classes.  For other projects, that may not be true.

Jonathan
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-12 Thread Avery Pennarun
2008/11/11 Jonathan Chambers [EMAIL PROTECTED]:
 3) Compilation takes forever. I am working on a Dual Quad Core machine (8
 cores) at 3.6 Ghz. The mono build process still takes hours on my machine.
 This may be aggravated by virus scanners or other similar software, but the
 fact remains that all Windows users run virus scanners.

Have you thought about using a gcc-to-cygwin cross compiler running on
Linux?  I do that with some of my projects, and it's a whole lot
faster. I'd never want to go back to building on pure cygwin.

(Side note: we even build our Delphi applications that way at work,
because it turns out the command-line Delphi compiler runs fine under
Wine... more than twice as fast as under Windows XP.)

gdb on Windows is a total disaster, though.  Not that it's much better
on Linux.  You may want to do what we do at work, and use a
Linux-based cross compiler for your autobuilder/releases, and MSVC for
active development and debugging.

Have fun,

Avery
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-12 Thread Leszek Ciesielski
Because of notorious problems (and slowness) of cygwin, I have
followed the same path that Daniel Morgan has (only stable Mono on
Windows, hacking goes on Linux). An msbuild/xbuild solution for whole
Mono sounds great. First - because of eased debugging with Microsoft
tools and much faster builds. Second - because this might mean that
xbuild finally matures to be a more usable tool.

Regards,

Leszek
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-12 Thread Rolf Bjarne Kvinge
Hi,

 As one of the true maintainers of classlibs I'm completely against
 ideas to drop cygwin support as it completely destroys my hacking life
 (note that I don't mean I dislike adding VS build support), but anyways
 here I agree with jpobst on the part to keep using dll.sources.
 
 Here is what I do for adding new source files into svn:
 - Update *.dll.sources file:
ls ../../build/common/*.cs */*.cs | sort 
 System.Foo.Bar.dll.sources
make
 - Collect which files should be mentioned in ChangeLog:
svn diff FooBar.dll.sources
- copy the rectangle(s) on the console output
 - Add new files to svn (and svn propdel svn:executable):
copypaste those lines in svn add command line.
 
 Can these tasks ever easier by switching to your beautiful xml csproj?
 In MWF land did we create csproj-sources converter?

In MWF land there's a sources-csproj converter.

In vbnc land there's a vbproj-sources converter.

I guess it depends on whoever is maintaining the code. 

IMHO as a starter it would be nice to have csproj's for all classlibs in
svn, generated automatically in the makefiles (they way it's done in MWF),
especially now that MD doesn't seem to be able to open the Makefiles anymore
(this isn't only for VS people, it would be useful for MD people too).

Rolf
 


___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-12 Thread Jonathan Pobst
Daniel Morgan wrote:
 Where is this sources-csproj converter and how do you setup and use it?

It is part of the normal mcs checkout.

Go to mcs/class/Managed.Windows.Forms, and run build-csproj2k5.  Note 
that it is all hardcoded to build the MWF csproj.  It is not a general 
.sources - .csproj converter.

Jonathan
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-12 Thread Daniel Morgan
Considering that a visual studio solution/project files are in xml, could there 
be some configure macros created to autogenerate these solution/project files?  
Automake takes a Makefile.am file as input and spits out a Makefile file.  I 
wonder how other free software project deal with a hybrid build system of gnu 
autotools/make/gcc on free software operating systems vs. visual c++ on 
windows.  

To answer Eno's question for mono classlib development, I use Visual Studio for:
1. creating tests to make sure they work on .net first
2. text editor
3. manually create solution/project to step debug a problem

In rare circumstances to debug a problem, I have manually created a solution 
and project for each assembly I needed to create and manually add files to each 
project.  Such as, to debug something in SybaseClient, I needed System.Data, 
Mono.Data.Tds, etc.  I had to modify certain source files to set various 
defines, such as, NET_2_0.

However, the text editor is problematic because you cannot get the formatting 
to be exactly like the mono style guidelines.

I'm not brave enough to build mono using Visual Studio.  It would be truly 
awesome if we could get the entire unmanaged and managed parts building on 
Visual Studio.  Of course, the Visual Studio solution and project files would 
be autogenerated via configure.

--- On Wed, 11/12/08, Atsushi Eno [EMAIL PROTECTED] wrote:

 From: Atsushi Eno [EMAIL PROTECTED]
 Subject: Re: [Mono-dev] Ideas for Mono on Windows
 To: 
 Cc: mono-devel mono-devel-list@lists.ximian.com
 Date: Wednesday, November 12, 2008, 12:36 AM
 As one of the true maintainers of classlibs I'm
 completely against
 ideas to drop cygwin support as it completely destroys my
 hacking life
 (note that I don't mean I dislike adding VS build
 support), but anyways
 here I agree with jpobst on the part to keep using
 dll.sources.
 
...
 
 Classlib hackers who uses Visual Studio: how do you do
 those tasks?



  
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-12 Thread Jonathan Pobst
Avery Pennarun wrote:
 Have you thought about using a gcc-to-cygwin cross compiler running on
 Linux?  I do that with some of my projects, and it's a whole lot
 faster. I'd never want to go back to building on pure cygwin.

We do have cross-compiling:

http://www.mono-project.com/Compiling_Mono#Cross-compiling_on_Linux_using_MinGW

But if we have things setup to run without cygwin/make on Windows, we 
can probably do a full compile in the same amount of time on Windows 
without having to have a second machine or VM to do it.

Chambers is quoting 30-120 seconds for the unmanaged part.
Based on my work, I would guess about 4-5 minutes for the managed part, 
significantly less if parallelized.

The linux buildbots are currently taking about 25-30 minutes to build. 
I don't know why that is, they used to take around 7-8 minutes to build.

Jonathan
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


[Mono-dev] Ideas for Mono on Windows

2008-11-11 Thread Jonathan Chambers
Hello All,
  Mono on Windows has never been easy. However, lately things to have
continually gotten worse (or I and others have just gotten more annoyed).
Setting up an environment takes a lot of effort for a normal windows
developer. Cygwin and the whole Makefile based process is very foreign for
Windows developers. Not to mention the busted make in cygwin and cygwin
issues on Vista (amd64). Most people have had enough interest in building
mono on windows that they took the time to work things out (usually at least
a day). But that's just the first time; try setting everything up again on a
different machine or updating your cygwin and things start over.

I see the basic issues as:

1) Cygwin development environment is less than ideal. It's foreign to most
Windows developers and is a barrier to entry for most people.
2) Debugging is mostly impossible. gdb seems to provide little help on
Windows (echoed by others on #monodev)
3) Compilation takes forever. I am working on a Dual Quad Core machine (8
cores) at 3.6 Ghz. The mono build process still takes hours on my machine.
This may be aggravated by virus scanners or other similar software, but the
fact remains that all Windows users run virus scanners.


As to not just be a complainer, I am offering some suggestions/ideas and
hoping for others to do the same (or at least critique mine ;-)). Before I
offer any suggestions, I think we need to balance between two things. One is
making life easy for the mono build/package team to produce a Windows
product. It's not real easy now, but we shouldn't make it any harder. The
second thing is making life easy for those who wish to work/contribute to
mono on Windows. This second item is tough at this point.

1) We should consider using MSVC as the default compiler for C code on
Windows. I can compile the entire Visual Studio solution for the runtime in
minutes. It takes 20-30 seconds if I do a parallel build. We can also use
the Visual Studio debugger on Windows, which IMO is betten than gdb on
Windows.

2) Two propositions for the class libraries have been mentioned previously.
One is a lightweight, 'managed make' system that could be run easily on
windows in place of all the build infrastructure provided by cgywin. This
obviously allows us to keep using Makefiles on other platforms and keep a
unified build process, but requires someone write the tool (and maintain
it). Another option is to moved to MSBuild/xbuild for the class libraries.
This would change the build process on all platforms, and require some
fixing of our current xbuild tool. MSYS/MinGW has also been mentioned, but I
don't consider that much better than Cygwin. I attempted to get it working
one time, but gave up after a few days of hacking.

Simply opening a csproj file for a class library, hacking on it, testing
under .Net and mono, and then contributing the changes seems a like a good
goal to aim for in regards to contributors. The build/packaging guys can
respond with what they are looking for on Windows.

Any thoughts/responses on making mono better on Windows is appreciated.

Thanks,
Jonathan
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-11 Thread Daniel Morgan
Jonathan,

I year ya!

I stopped hacking on mono on windows.  I only run released versions of mono on 
windows via Novell's windows installer.  As for hacking on mono, I've been 
using the mono / open suse vm ever since. 

At first, you could create a branch in svn which would be a place to start so 
others could participate in hammering mono on windows into shape.  Then when it 
stabilizes, merge into svn trunk.

A Windows Installer designed to install Cygwin, gtk+ and dependencies, and 
whatever else necessary to build mono on windows out-of-the-box.  I believe 
Paco may have tried to create something like this, but it was the size of a CD 
to download.  

If you look at other free software projects, they use gcc on Linux but they use 
Visual C++ on Windows, ie. OpenOffice.org and Mozilla.  So, it makes sense that 
we do the same. 

Anyways, I like your idea Jonathan.  I believe Miguel and others are open to 
the idea too.  It just requires someone to get it started.

--- On Tue, 11/11/08, Jonathan Chambers [EMAIL PROTECTED] wrote:

 From: Jonathan Chambers [EMAIL PROTECTED]
 Subject: [Mono-dev] Ideas for Mono on Windows
 To: mono-devel mono-devel-list@lists.ximian.com
 Date: Tuesday, November 11, 2008, 5:10 PM
 Hello All,
   Mono on Windows has never been easy. However, lately
 things to have
 continually gotten worse (or I and others have just gotten
 more annoyed).
 Setting up an environment takes a lot of effort for a
 normal windows
 developer. Cygwin and the whole Makefile based process is
 very foreign for
 Windows developers. Not to mention the busted make in
 cygwin and cygwin
 issues on Vista (amd64). Most people have had enough
 interest in building
 mono on windows that they took the time to work things out
 (usually at least
 a day). But that's just the first time; try setting
 everything up again on a
 different machine or updating your cygwin and things start
 over.
 
 I see the basic issues as:
 
 1) Cygwin development environment is less than ideal.
 It's foreign to most
 Windows developers and is a barrier to entry for most
 people.
 2) Debugging is mostly impossible. gdb seems to provide
 little help on
 Windows (echoed by others on #monodev)
 3) Compilation takes forever. I am working on a Dual Quad
 Core machine (8
 cores) at 3.6 Ghz. The mono build process still takes hours
 on my machine.
 This may be aggravated by virus scanners or other similar
 software, but the
 fact remains that all Windows users run virus scanners.
 
 
 As to not just be a complainer, I am offering some
 suggestions/ideas and
 hoping for others to do the same (or at least critique mine
 ;-)). Before I
 offer any suggestions, I think we need to balance between
 two things. One is
 making life easy for the mono build/package team to produce
 a Windows
 product. It's not real easy now, but we shouldn't
 make it any harder. The
 second thing is making life easy for those who wish to
 work/contribute to
 mono on Windows. This second item is tough at this point.
 
 1) We should consider using MSVC as the default compiler
 for C code on
 Windows. I can compile the entire Visual Studio solution
 for the runtime in
 minutes. It takes 20-30 seconds if I do a parallel build.
 We can also use
 the Visual Studio debugger on Windows, which IMO is betten
 than gdb on
 Windows.
 
 2) Two propositions for the class libraries have been
 mentioned previously.
 One is a lightweight, 'managed make' system that
 could be run easily on
 windows in place of all the build infrastructure provided
 by cgywin. This
 obviously allows us to keep using Makefiles on other
 platforms and keep a
 unified build process, but requires someone write the tool
 (and maintain
 it). Another option is to moved to MSBuild/xbuild for the
 class libraries.
 This would change the build process on all platforms, and
 require some
 fixing of our current xbuild tool. MSYS/MinGW has also been
 mentioned, but I
 don't consider that much better than Cygwin. I
 attempted to get it working
 one time, but gave up after a few days of hacking.
 
 Simply opening a csproj file for a class library, hacking
 on it, testing
 under .Net and mono, and then contributing the changes
 seems a like a good
 goal to aim for in regards to contributors. The
 build/packaging guys can
 respond with what they are looking for on Windows.
 
 Any thoughts/responses on making mono better on Windows is
 appreciated.
 
 Thanks,
 Jonathan
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list


  
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-11 Thread Jonathan Pobst
Hey Jonathan,

I'm glad to hear that you have the runtime building nicely on Windows. 
In my spare time, I have been playing with making an MSBuild script for 
the managed pieces, and was hoping you might have something similar for 
the unmanaged part.  (Which I know nothing about.)

The route I took (and this is my first time playing with MSBuild) was to 
write an McsTask that simply calls (g)mcs with the same command line as 
the make system.  In this way, I simply use the existing .sources files. 
  This may be an easier scenario to achieve than switching over to 
.csproj files, as it allows people to continue doing things the way they 
always have.

It would be nice to have all platforms build with xbuild, but if that's 
not possible, at least the burden of maintaining two build systems this 
way is a lot less than if we tried to maintain changes to .csproj files.

Jonathan


Jonathan Chambers wrote:
 Hello All,
   Mono on Windows has never been easy. However, lately things to 
 have continually gotten worse (or I and others have just gotten more 
 annoyed). Setting up an environment takes a lot of effort for a normal 
 windows developer. Cygwin and the whole Makefile based process is very 
 foreign for Windows developers. Not to mention the busted make in cygwin 
 and cygwin issues on Vista (amd64). Most people have had enough interest 
 in building mono on windows that they took the time to work things out 
 (usually at least a day). But that's just the first time; try setting 
 everything up again on a different machine or updating your cygwin and 
 things start over.
 
 I see the basic issues as:
 
 1) Cygwin development environment is less than ideal. It's foreign to 
 most Windows developers and is a barrier to entry for most people.
 2) Debugging is mostly impossible. gdb seems to provide little help on 
 Windows (echoed by others on #monodev)
 3) Compilation takes forever. I am working on a Dual Quad Core machine 
 (8 cores) at 3.6 Ghz. The mono build process still takes hours on my 
 machine. This may be aggravated by virus scanners or other similar 
 software, but the fact remains that all Windows users run virus scanners.
 
 
 As to not just be a complainer, I am offering some suggestions/ideas and 
 hoping for others to do the same (or at least critique mine ;-)). Before 
 I offer any suggestions, I think we need to balance between two things. 
 One is making life easy for the mono build/package team to produce a 
 Windows product. It's not real easy now, but we shouldn't make it any 
 harder. The second thing is making life easy for those who wish to 
 work/contribute to mono on Windows. This second item is tough at this point.
 
 1) We should consider using MSVC as the default compiler for C code on 
 Windows. I can compile the entire Visual Studio solution for the runtime 
 in minutes. It takes 20-30 seconds if I do a parallel build. We can also 
 use the Visual Studio debugger on Windows, which IMO is betten than gdb 
 on Windows.
 
 2) Two propositions for the class libraries have been mentioned 
 previously. One is a lightweight, 'managed make' system that could be 
 run easily on windows in place of all the build infrastructure provided 
 by cgywin. This obviously allows us to keep using Makefiles on other 
 platforms and keep a unified build process, but requires someone write 
 the tool (and maintain it). Another option is to moved to MSBuild/xbuild 
 for the class libraries. This would change the build process on all 
 platforms, and require some fixing of our current xbuild tool. 
 MSYS/MinGW has also been mentioned, but I don't consider that much 
 better than Cygwin. I attempted to get it working one time, but gave up 
 after a few days of hacking.
 
 Simply opening a csproj file for a class library, hacking on it, testing 
 under .Net and mono, and then contributing the changes seems a like a 
 good goal to aim for in regards to contributors. The build/packaging 
 guys can respond with what they are looking for on Windows.
 
 Any thoughts/responses on making mono better on Windows is appreciated.
 
 Thanks,
 Jonathan
 
 
 
 
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Ideas for Mono on Windows

2008-11-11 Thread Atsushi Eno
As one of the true maintainers of classlibs I'm completely against
ideas to drop cygwin support as it completely destroys my hacking life
(note that I don't mean I dislike adding VS build support), but anyways
here I agree with jpobst on the part to keep using dll.sources.

Here is what I do for adding new source files into svn:
- Update *.dll.sources file:
   ls ../../build/common/*.cs */*.cs | sort  System.Foo.Bar.dll.sources
   make
- Collect which files should be mentioned in ChangeLog:
   svn diff FooBar.dll.sources
   - copy the rectangle(s) on the console output
- Add new files to svn (and svn propdel svn:executable):
   copypaste those lines in svn add command line.

Can these tasks ever easier by switching to your beautiful xml csproj?
In MWF land did we create csproj-sources converter?

Classlib hackers who uses Visual Studio: how do you do those tasks?

Atsushi Eno

Jonathan Pobst wrote:
 Hey Jonathan,
 
 I'm glad to hear that you have the runtime building nicely on Windows. 
 In my spare time, I have been playing with making an MSBuild script for 
 the managed pieces, and was hoping you might have something similar for 
 the unmanaged part.  (Which I know nothing about.)
 
 The route I took (and this is my first time playing with MSBuild) was to 
 write an McsTask that simply calls (g)mcs with the same command line as 
 the make system.  In this way, I simply use the existing .sources files. 
   This may be an easier scenario to achieve than switching over to 
 .csproj files, as it allows people to continue doing things the way they 
 always have.
 
 It would be nice to have all platforms build with xbuild, but if that's 
 not possible, at least the burden of maintaining two build systems this 
 way is a lot less than if we tried to maintain changes to .csproj files.
 
 Jonathan
 
 
 Jonathan Chambers wrote:
 Hello All,
   Mono on Windows has never been easy. However, lately things to 
 have continually gotten worse (or I and others have just gotten more 
 annoyed). Setting up an environment takes a lot of effort for a normal 
 windows developer. Cygwin and the whole Makefile based process is very 
 foreign for Windows developers. Not to mention the busted make in cygwin 
 and cygwin issues on Vista (amd64). Most people have had enough interest 
 in building mono on windows that they took the time to work things out 
 (usually at least a day). But that's just the first time; try setting 
 everything up again on a different machine or updating your cygwin and 
 things start over.

 I see the basic issues as:

 1) Cygwin development environment is less than ideal. It's foreign to 
 most Windows developers and is a barrier to entry for most people.
 2) Debugging is mostly impossible. gdb seems to provide little help on 
 Windows (echoed by others on #monodev)
 3) Compilation takes forever. I am working on a Dual Quad Core machine 
 (8 cores) at 3.6 Ghz. The mono build process still takes hours on my 
 machine. This may be aggravated by virus scanners or other similar 
 software, but the fact remains that all Windows users run virus scanners.


 As to not just be a complainer, I am offering some suggestions/ideas and 
 hoping for others to do the same (or at least critique mine ;-)). Before 
 I offer any suggestions, I think we need to balance between two things. 
 One is making life easy for the mono build/package team to produce a 
 Windows product. It's not real easy now, but we shouldn't make it any 
 harder. The second thing is making life easy for those who wish to 
 work/contribute to mono on Windows. This second item is tough at this point.

 1) We should consider using MSVC as the default compiler for C code on 
 Windows. I can compile the entire Visual Studio solution for the runtime 
 in minutes. It takes 20-30 seconds if I do a parallel build. We can also 
 use the Visual Studio debugger on Windows, which IMO is betten than gdb 
 on Windows.

 2) Two propositions for the class libraries have been mentioned 
 previously. One is a lightweight, 'managed make' system that could be 
 run easily on windows in place of all the build infrastructure provided 
 by cgywin. This obviously allows us to keep using Makefiles on other 
 platforms and keep a unified build process, but requires someone write 
 the tool (and maintain it). Another option is to moved to MSBuild/xbuild 
 for the class libraries. This would change the build process on all 
 platforms, and require some fixing of our current xbuild tool. 
 MSYS/MinGW has also been mentioned, but I don't consider that much 
 better than Cygwin. I attempted to get it working one time, but gave up 
 after a few days of hacking.

 Simply opening a csproj file for a class library, hacking on it, testing 
 under .Net and mono, and then contributing the changes seems a like a 
 good goal to aim for in regards to contributors. The build/packaging 
 guys can respond with what they are looking for on Windows.

 Any thoughts/responses on making mono