[haiku-development] Re: Mono Port

  • From: Stephen Hite <steveh2009@xxxxxxxxxxx>
  • To: "haiku-development@xxxxxxxxxxxxx" <haiku-development@xxxxxxxxxxxxx>
  • Date: Mon, 8 Sep 2014 10:27:10 -0400

The libgdiplus library needs Cairo for Windows Forms to work.  Cairo has 
several other libraries it needs.  There's an older port in the HaikuPorts 
system which is marked as not ready to build yet.  You can find the library 
dependencies list in their source repository.

MonoDevelop needs GTK.  I saw an old flickr pic of a 1.30 demo done by 3deyes 
who I assume is the same person doing the Qt 5 port to Haiku and is almost 
finished with that.  He would be the ideal point person to get the lastest GTK 
running or, if he still has his ported GTK 1.3 patches, that would be a good 
reference point to start.

To create the marshaling C# libs for native C++ GUI development, Mono now comes 
with a porting tool called CppSharp.  It relies on Clang's C++ parser for the 
heavy lifting.  Clang/LLVM have already been ported to Haiku so that might be 
the easiest route to go for GUI app generation at the start, albeit without an 
IDE so that would be a stop-gap measure until that could be integrated into a 
MonoDevelop port.   Another plus with the Clang/LLVM port is that it can be 
used to support Mono's LLVM code emission capability in place of their internal 
Jit for many things (not all).

For me personally, the GTK usage is a means to an end.  The end is a full-on 
.Net development environment on Haiku utilizing the native C++ libraries at the 
bottom of the stack.  The portable transparency layer in .Net's case is using 
Windows Forms.  GTK gets us compatible, future updates to MonoDevelop releases. 
  Programming GTK# GUI apps would be a side-effect of this whole process but 
CppSharp facilitates full access to native Haiku and that's where all the fun 
in this lies (for me).

Mono's generational garbage collector (sgen) does compile but doesn't link into 
utils and the mono binary (missing function entry points) and I haven't played 
with the ahead of time (AOT) compiling facility or the Native Client 
capability.   

Right now, I need to find out how to hunt down native C code bugs through 
crashing .Net code using gdb.  I see Mono's web page which talks about adding 
some gdb macros to .gdbinit to help.  I'll get a Linux Mono build configured 
with the same configure options as Haiku so I know how it should work on a 
complete system.

On Sep 8, 2014, at 4:47 AM, Richie Nyhus <richienyhus@xxxxxxxxx> wrote:
> 
> Hi,
> 
> > > It's very possible my fixes to get the build to work are the very source 
> > > of the crashes.  Time will tell.  But what I'd like to do is post a link 
> > > to the patches with some of the minor Makefile edits I made (all this 
> > > autoconf stuff is way over my head) later tonight (EST) so others 
> > > interested in getting further along have a decent starting point.
> 
> If you haven't found source of the patch that Haikuports uses, then it can be 
> found here:
> 
> http://bb.haikuports.org/haikuports/src/53f9afc3e15c76eda0e6687f157139ae5f255de9/dev-lang/mono/patches/mono-trunk.diff
> 
> However it looks like the build instructions for Mono has be lost when moving 
> to bitbucket, as it was on our deleted wiki and not in our repository.
> 
> Also I would like to see Mono feature in this year's Google Code-In, do you 
> have any recommended apps that you think might be useful  to add to Haiku's 
> package management?
> 
> Regards,
> Richard.

Other related posts: