Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

Version 20 (modified by ecoffey, 17 years ago) (diff)

--

Overview

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. The glue code is now gone. The use of DllImport has made it all pretty much obsolete.
  • Give .NET Purple objects the ability to actually update their C counterpart (or create one).
  • Would be nice if we could explicitly state what Delegates expect, e.g. OnBuddyStatusChanged(Buddy b, Status s) This could probably be solved with the Manager idea discussed below.
  • Possibly utilize an object cache in the api, and to manage the mappings between .net objects and their c struct counterparts so we're not constantly (re)building objects.
  • grim provided gameplan

Mentor Goals/Objectives? (grim)

  • Implement signal chaining in Mono so Pidgin's signal handling doesn't get eaten up by the Mono runtime. See Mono Bug 75990.
  • Fix the build system so that make can be run successfully with multiple jobs.

Loader Internals

The api objects now directly tap into libpurple using DllImport. This is true for purple_signal_connect also, which gives us a cleaner way to tie up signals in .Net. Going to need to explore an Object Manager so that plugins don't have to worry about IntPtrs and what not.

All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!