[Mono-list] Getting started with mono

Jonathan Pryor jonpryor@vt.edu
27 Apr 2003 16:05:50 -0400


See inline...

On Sun, 2003-04-27 at 15:16, Philip Van Hoof wrote:
> Hi there,
> 
> I have been following this mailinglist, news about mono and releases for
> some time now. All that reading made me interested in helping you guys
> getting the mono .NET implementation a great development environment.
> 
> I am a employed .NET developer, a hobby GNOME developer and long-time
> Linux user and developer. I have installed both Windows XP Home (which I
> mounted on /mnt/windows) and RedHat 9.0 with all development packages
> that I can think of.
> 
> What I want to know .. 
> 
> * Where can I find information on building the CVS-tree of Mono (all
> it's components). It looks like a simple ./autogen.sh && make && make
> install does not (always) work. So is there information available? 

See README.building in the MCS directory.

The single biggest source of confusion seems to be the "Your runtime is
out of sync" messages.  Realize that this is *normal* while BUILDING. 
Think about it: you're building a new class library with the old
runtime.  If the new class library references a function that the old
runtime knows nothing about, the runtime system issues this warning.

I'm sure there's a better explanation for it, but that's the general
summary.

Solution: compile <cvs module="mcs"/>/class/corlib FIRST, build mono,
install mono & the new corlib.dll (in <cvs
module="mcs"/>/class/lib/corlib.dll), and then build & install the rest
of the mono class libraries.

Repeat as needed whenever the runtime changes.

Note that you may need to build & install the mcs compiler before
attempting to build the class libraries.

Just don't panic when you see the "out of sync" messages.  They're not
indicative of something being horribly wrong, UNLESS you get the message
after installation when running programs.  THEN you should worry.  (And
rebuild & re-install all of mcs to fix it.)

> * What development environment is used? For Linux development I always
> use Anjuta and I know (from the Anjuta mailinglist) that C#-support is
> being worked on. Are there at this moment editors for Linux which
> support stuff like code-completion and C# syntax highligthing? And what
> development environment can I use on Windows ? I own a copy of Visual
> Studio.NET but how should I set it up to make it start using the
> Mono-framework?

I'm a vim user myself, which has C# syntax highlighting but not code
completion.  I know others use vim as well, but I'm sure some use
Emacs.  I've heard that Visual SlickEdit is also a good editor.

On windows, SharpDevelop is popular:

	http://www.icsharpcode.net/OpenSource/SD/

SharpDevelop is also being ported to Linux.  I'm not sure when it will
be available, though.

I'm not sure what needs to be done to set up a mono-using environment.

> * Which parts/sub projects of Mono can actually use my help? I have
> experience in developing Java, C, C#, VB.NET, C++ with Visual Studio,
> PHP, GNOME and Gtk+, GNOME2.x and Gtk+-2.x. Where should I start?!
> Please be very specific :)

Be Specific.  Well, System.Diagnostics (<cvs
module="mcs"/>/class/System/System.Diagnostics) could use some loving. 
In particular, the EventLog and related classes (CounterCreationData,
InstanceData, PerformanceCounter, etc.) have been stubbed (the stubs are
commented out), but many of the classes need an implementation.

I started these, but they look to be largely Win32 specific (though
EventLog could probably be mapped to the syslog(3) Unix function), and
other things caught my interest.

Isolated Storage (class/corlib/System.IO.IsolatedStorage) could use some
loving as well, as it currently only has a rudimentary implementation.

Everything could probably use more test cases.

AFAIK, there are some bugs that the test cases have found.  Those need
to be fixed.

Bugzilla also has over 100 bugs that should be looked at and fixed when
possible.  See the following link (beware line wrapping):

http://bugzilla.ximian.com/buglist.cgi?product=Mono%2FClass+Libraries&product=Mono%2FRuntime&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=substring&long_desc=&long_desc_type=substring&bug_file_loc=&bug_file_loc_type=substring&keywords=&keywords_type=anywords&op_sys_details=&op_sys_details_type=substring&version_details=&version_details_type=substring&cmdtype=doit&newqueryname=&order=Reuse+same+sort+as+last+time&form_name=query

System.Xml also needs help, as does parts of remoting, and other areas.

You should also take a look at mono-devel-list:

	http://lists.ximian.com/mailman/listinfo/mono-devel-list

In short, you could probably pick any area of the class library and put
some work into it.  So go where your interests lie.

> * I guess these questions have been asked a lot .. maybe, if it has been
> answered a lot, there is a FAQ for questions like this? If thats the
> case: where can I find it?

Some of these questions are FAQs, but they're not in a FAQ yet. :-)

Plus, some of the answers are temporal in nature (the parts of the class
library that need attention will change over time).  So it might not be
sensible to have a FAQ entry for them.

 - Jon