Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mono Update. Miguel de Icaza

Similar presentations


Presentation on theme: "Mono Update. Miguel de Icaza"— Presentation transcript:

1 Mono Update. Miguel de Icaza (miguel@ximian.com)

2 Project Overview Mono: –Open Source implementation of.NET Framework Development tools Runtime engine Compatible class libraries. –Based on the ECMA tc39 tg1/tg2/tg3 standards #1 Fun Open Source Project. –Also, the most important one ;-)

3 Need Reduce cost of development: –Evolution: 850k-wc, 17 people, 3years. –GC, safe runtime eliminate source of errors. –Threaded runtime enable many new uses. Keep multi-language culture Better languages to develop multi-year software.

4 Development Tools Compilers produced by the Mono team: –C# compiler (100%) –IL Assembler (90%) –VB.NET (50%) –Jscript (10%) Debugger –Both Mono and Unix applications. Documentation system

5 C# High level systems programming language –Strong typing –OO, single inheritance, multiple interface –Application development language –Not appropriate for scripting tasks. Attributes –Novel mechanism: annotate elements C# 2.0: working with ECMA team. –Iterators, lamba, generic types,

6 Runtime Engine Services: –JIT/AOT compilation. –Garbage Collection. –Thread management. Language independent

7 Runtime Engine C# Cobol JavaScript C++ Eiffel Fortran Java Visual Basic Common Intermediate Language JIT ATC X86 PPC MIPS StrongARM SPARC

8 Mono Today Self hosting –C# written in C# –Second generation compile engine. Components: –Kernel –Xml (xpath,xslt) –asp.net (webforms) –ado.net ++ Mono: –Mozilla# –Gtk# –Vorbis# –OpenGL# –Apache + ASP.NET Other: –#ZipLib –#WT

9 Mono components Mono Runtime Engine Soap Web ServersXslt/XPath ADO.NET WinForms Core classesXml Soap Web Clients Enterprise Svcs. Gtk#Mozilla# OpenGL# Ogg# XmlRpc.NetRelaxNg #Zip MonoPosix/PEA

10 Documentation Project Monkeyguide –Tutorial on.Net, Mono, Gtk#, Glade, etc. Api Docs: –Ecma body. –Gtk# documentation. The Spanish Hackers Integrate all the sources –MonoDoc

11 New VM Second Generation VM: –Pre-compilation –Portability –Optimization platform. Internally: –CIL -> MIR -> LIR –SSA transform (a few today, more tomorrow) –Register Allocation + Instruction scheduling.

12 Mono and Interop Cross Language Interop –Similar in spirit to CORBA interop subset Reusing existing C code: –Platform Invoke –Custom Marshalling. Embedding the Mono Runtime: –Just like embedding Python.

13 Interesting case: Java IKVM: jit compiler from jvm to cil. –Jeroen developed it on.NET in Windows. –Zoltan fixed the Mono issues. Exposes Java.NET object bridge. Very robust. –Runs Eclipse, Jython, others.

14 CLS: Interop subset Java C#JscriptEiffel Common Type SystemLisp C++

15 Platforms JIT: –X86: Linux, xxBSD, Windows. –PPC: RSN. Interpreter: –StrongArm (Hello Malte!) –PPC, Sparc, S390 Hard to balance: –Desire to add more optimizations vs ports.

16 More information Mono: –http://www.go-mono.com Microsoft.NET: –http://msdn.microsoft.com/net Ikvm (http://www.ikvm.net) Team: –mono-devel-list@ximian.com Author: –miguel@ximian.com


Download ppt "Mono Update. Miguel de Icaza"

Similar presentations


Ads by Google