== Overview ==

[http://mono-project.org Mono] is a Open Source implementation of the .NET runtime.  The Mono Loader aims to embed mono into libpurple so that plugins can be written in any .NET Language.

== Mono Loader SoC Development Notes ==

'''SoC Goals and Milestones'''
  * Completely wrap libpurple API in .NET bindings.
  * Fix the Mysterious Seg Fault On Exit (tm).
  * Re-examing and possibly re-implement signal-glue and API -glue code.
  * Give .NET Purple objects the ability to actually update their C counterpart (or create one).

'''Mentor Goals/Objectives ([http://guifications.org/trac/wiki/grim grim])'''
 * Implement signal chaining in Mono so Pidgin's signal handling doesn't get eaten up by the Mono runtime.  See [http://bugzilla.ximian.com/show_bug.cgi?id=75990 Mono Bug 75990].
 * Fix the build system so that make can be run successfully with multiple jobs.

'''Loader Internals:'''
  * There must be a better way for having the loader handle signals on behalf of .net plugins (will document the current implementation here).
  * Right now delegates are invoked and just given an array of their data.  Would be nice if we could explicitly state what they expect, e.g. {{{ OnBuddyStatusChanged(Buddy b, Status s) }}}