X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=web%2Ffaq;h=9a45337118c2e089c7e98e171087c1c6bb50946f;hb=e9d9e938eaba9b500cc322334aa2688bac01f6a9;hp=152808db9928e495b5feaa15d9ee85c1362c8276;hpb=9d8b1f4b72009a9bc4295189994f410fb80bb0a7;p=mono.git diff --git a/web/faq b/web/faq index 152808db992..9a45337118c 100644 --- a/web/faq +++ b/web/faq @@ -207,7 +207,7 @@ A: Of course not. Novell is a supporter of the Mono project, but the only way community to get involved. Visit the contributing page if you'd like to help out. -Q: What pieces Novell be working on? +Q: What pieces is Novell working on? A: We will devote most of our resources to work on the pieces which are on the critical path to release a development and execution @@ -533,12 +533,12 @@ fi Q: What architectures does Mono support? -A: Mono today ships with a Just-in-Time compiler for x86-based - systems. It is tested regularly on Linux, FreeBSD and Windows - (with the XP/NT core). +A: Mono today ships with a Just-in-Time compiler for x86, PowerPC and + SPARC-based systems. It is tested regularly on Linux, FreeBSD and + Windows (with the XP/NT core). There is also an interpreter, which is slower that runs on the - s390, SPARC and PowerPC architectures. + s390, SPARC, HPPA, StrongARM and PowerPC architectures. Q: Can Mono run on Windows 9x, or ME editions? @@ -722,13 +722,14 @@ A: Most of Mono is being written using C#, with only will be most familiar with.
  • A multi-platform runtime engine: both a JIT engine and an - interpreter exist. The JIT engine runs currently on x86 - systems, while the interpreter works on SPARC, StrongARM, - s390 and PowerPC systems. + interpreter exist. The JIT engine runs currently on x86, + PowerPC Sparc and S390 systems, while the interpreter works on + x86, SPARC, StrongARM, s390 and PowerPC systems. - Our new compilation engine is being ported to the PowerPC. + The JIT engine is being ported to amd64 systems as of this + time. -
  • Supports Linux, BSD, Windows and Solaris at this point. +
  • Supports Linux, BSD, MacOS, Windows and Solaris at this point.
  • The JIT engine is written using a portable instruction selector which not only generates good code but @@ -746,6 +747,65 @@ A: Most of Mono is being written using C#, with only tools, we bug fix problems rapidly, and the system is overall more robust and tested than if we did not. +
  • Our class libraries are licensed under the terms of the MIT + X11 license which is a very liberal license as opposed to + the GNU GPL with exceptions, this means that Mono can be + used in places where the GPL with exceptions is not + permissible. + +
  • Mono has a complete Web Services stack: we implement ASP.NET + web servers and web clients as well as implementing the + Remoting-based SOAP infrastructure. + +
  • Remoting implementation: Mono has a complete remoting + infrastructure that is used in our own codebase to provide + added functionality and performance to our ASP.NET engine + and more. + +
  • Mono has a complete C# 1.0 + implementation and has been stress tested a lot more than + Portable.NET's compiler. + +
  • Mono's C# compiler has strong error handling and has closer + adherence to the specification with support for definite + assignment (required to generate verifiable IL code) and + CLS conformance checking. + +
  • Mono's C# compiler is written in C# which is easier for new + developers to come in and improve, fix and tune. The Mono + C# compiler in C# is faster than their C-based compiler. + +
  • Preview of C# 2.0: a work in progress for a 2.0 + implementation of our compiler is available (iterators, + generics and anonymous methods are available in our + "preview" compiler). + +
  • Mono has a complete Reflection and Reflection.Emit: these + are important for advanced applications, compilers and + dynamic code generation. + +
  • Mono has a complete managed XML + stack: XML, XPath, XML Serializer, XML Schema handling + are fully functional, feature complete and tuned for + performance. + +
  • Mono has a complete cryptography stack + : we implement the 1.0 and 1.1 APIs as well as using our + fully managed stack to implement the SSL/TLS transports. + +
  • Extensive database support: Mono + ships with database provides for Firebird, IBM + DB2, Oracle, Sybase, Microsoft SQL Server, SQL Lite, MySQL, PostgresSQL, Ole + DB and ODBC. + +
  • Mono includes full LDAP support. +
  • We have a great community of developers, without which Mono would not be possible. @@ -866,12 +926,11 @@ A: To upgrade your class libraries and compiler, see the 3.- Then checkout or update your mcs CVS copy. Then follow the steps described in mcs/INSTALL.txt. -Q: Will it be possible to use the CLI features without using byte codes - or the JIT? +Q: Will it be possible to use the CLI features without using byte codes or the JIT? A: Yes. The CLI engine will be made available as a shared library. The garbage collection engine, the threading abstraction, the - object system, the dynamic type code system and the JIT will be + object system, the dynamic type code system and the JIT are available for C developers to integrate with their applications if they wish to do so. @@ -1238,9 +1297,7 @@ A: Eto Demerzal has started a Rhino port to C#. Q: Has anyone succeeded in building a Mac version of the C# environment. If so can you explain how? -A: You could try to check with the Darwin people, or the Fink people. - Mono/C# is self hosting on Linux/PPC which is the hard part, so it - should be relatively simple to get it to work on MacOS +A: Yes, Mono works on Linux/PPC and MacOS X (10.2 and 10.3) ** Reusing Existing Code @@ -1290,11 +1347,30 @@ A: This has been done. ** Mono and GCC -Q: Are you working on a GCC front-end to C#? A GCC back-end that will - generate CIL images? +Q: Are you working on a GCC front-end to C#? + +A: We are not working on a GCC front-end for C# + +Q: Will you support C/C++ on the Mono VM? + +A:The open64 compiler effort from SGI helps a lot in this direction. + + The Open64 compiler is a modified version of GCC that + generates a new intermediate language instead of RTL. This could be + the foundation to generate CIL code, and to implement the upcoming + Managed extensions to C++ from ECMA. + + Open64 (and other derivative forks of GCC) split the gcc front-ends + from the backends by using the WHIRL intermediate representation. + Kris has begun the implementation of a translator from WHIRL to CIL. -A: We would love to see a GCC modification that would generate CIL - images, but there is nothing at this point. + So it will be possible to use the GCC compilers to target the CIL. + +Q: What about Managed C++? + +A: Once a full translator for WHIRL exists, we are interested in + looking at expanding the GCC frontends to include extensions for + Managed C++. Q: What about making a front-end to GCC that takes CIL images and generates native code? @@ -1302,11 +1378,6 @@ Q: What about making a front-end to GCC that takes CIL images and A: There is no active work on this area, but Mono already provides pre-compilation services (Ahead-of-Time compilation). -Q: But would this work around the GPL in the GCC compiler and allow - people to work on non-free front-ends? - -A: People can already do this by targeting the JVM byte codes (there - are about 130 compilers for various languages that target the JVM). ** Performance @@ -1320,10 +1391,19 @@ A: We can not predict the future, but a conservative estimate is that many new features, and layers suitable for optimization. It is relatively easy to add new optimizations to Mono. - The CIL has some advantages over the Java byte code: it is really - an intermediate representation and there are a number of - restrictions on how you can emit CIL code that simplify creating - better JIT engines. + The CIL has some advantages over the Java byte code: The existance + of structs in addition to classes helps a lot the performance and + minimizes the memory footprint of applications. + + Generics in the CLI world are first-class citizens, they are not + just a strong-typing addition to the language. The generic + specifications are embedded into the instruction stream, the JIT + uses this information to JIT a unique instances of a method that is + optimized for the type arguments. + + The CIL is really an intermediate representation and there are a + number of restrictions on how you can emit CIL code that simplify + creating better JIT engines. For example, on the CIL, the stack is not really an abstraction available for the code generator to use at will. Rather, it is a @@ -1399,7 +1479,7 @@ A: First some background information. Microsoft falls under the ECMA/ISO submission. Jim Miller at Microsoft has made a statement on the patents covering ISO/ECMA, (he is one of the inventors listed in the patent): here. + href="http://web.archive.org/web/20030609164123/http://mailserver.di.unipi.it/pipermail/dotnet-sscli/msg00218.html">here. Basically a grant is given to anyone who want to implement those components for free and for any purpose. @@ -1571,8 +1651,12 @@ A: It's possible to run VC++ generated apps under Mono, but we do not Q: Does Mono support generics?. -A: Mono doesn't support generics currently but a lot of work is being - done towards it. +A: Yes, the Mono runtime now supports the new Generics extensions, and + there is also support for generics in our new compiler: `gmcs'. + + The Mono C# 1.0 compiler (mcs) will ship with various C# 2.0 + features, but generics will remain on the separate compiler (gmcs) + as this code is not as tested as the main compiler. ** Mono Common Problems