dotgnu-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[DotGNU]"What has been achieved so far" draft document


From: Norbert Bollow
Subject: [DotGNU]"What has been achieved so far" draft document
Date: Thu, 25 Sep 2003 16:11:23 +0200 (CEST)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Here is a draft "What has been achieved so far" document which I
intend to use (after omissions, errors etc have been corrected,
please do let me know about them) both for the docs that will be
part of the DotGNU 0.1 release, as well as also in my efforts to
obtain some real funding for DotGNU development.

All comments are welcome please :-)

Greetings,
Norbert.

Overview of the DotGNU project
==============================
- From a business perspective, the objective of the DotGNU project is to
solve the vendor lock-in problem of Microsoft's .NET by creating a
competing Free Software (open source) platform which is compatible
enough to .NET so that migration is reasonably easy.

What has been achieved so far
=============================

1. Compilers

   cscc is a modular compiler system with good support for C#, C and BF.
   Work on support for some other languages (Java, VB.Net, PHP) has
   been started.  Implementing additional languages is aided significantly
   by the innovative "Tree Compiler Compiler" (treecc) utility program,
   which allows using the "Aspect-Oriented Programming" technique for
   managing the complexity of compiler construction.

   The C# front-end implements the C# Language Specification of
   ECMA standard 334

   The C front-end implements ANSI C.

   cscc is designed to support bytecode generation for multiple bytecode
   systems such as CLR (the Common Language Runtime of Microsoft's .NET,
   as specified in ECMA standard 335), JVM (Java Virtual Machine) and
   Parrot (the bytecode system of Perl 6).  Of these, only the bytecode
   generation back-end for the CLR is already mature enough to be useful
   in practice.

2. Assembler and disassembler

3. A runtime engine for executing the bytecode generated by our compiler
   and assembler, or by Microsoft's .NET tools.  The runtime engine has
   been tested on the x86, PowerPC, ARM, Sparc, PARISC, s309, Alpha, and
   IA-64 processors.

   This runtime engine does not yet include a full JIT (that is work in
   progress), but it already uses some JIT techniques to achieve a much
   better performance than what would be possible with a mere interpreter.

4. Portability

   While the initial target platform was GNU/Linux, our compiler,
   assembler, disassembler, and runtime engine are also known to run
   under MS Windows, Solaris, NetBSD, FreeBSD, OpenBSD and MacOS X.

5. Foundational C# class libs

   Most of the foundational C# class libraries as described in ECMA
   standard 335 have been implemented.

6. Higher-level C# class libs

   Microsoft's .NET SDK contains many C# library classes beyond what is
   described in ECMA standard 335.  Implementing as many as possible
   of these is a work in progress; we may reach full compatibility
   with Microsoft's .NET SDK for embedded systems in a couple of months.

7. System.Windows.Forms

   The DotGNU project puts special emphasis on implementing the
   System.Windows.Forms GUI toolkit directly on top of X11 (and not
   indirectly via some other toolkit).  This is a work in progress.

8. DGEE webservice server

   DGEE, the DotGNU Execution Environment provides the core webservice
   component of DotGNU and provides the functionality of accepting,
   validating and satisfying web service requests.

   In its basic form the DGEE allows the installation and removal of web
   services within the repository, accepts XML-RPC requests for these web
   services, and generates browsable documentation for these web services
   in HTML and XML form.

   DGEE is designed to support multiple bytecode systems besides that of
   .NET; currently bytecode for the CLR, we also have the beginnings of
   support for Python bytecode.

9. A Free Software philosophy compatible vision for webservices

   The basic principle of Free Software philosophy is that the user of
   a computer program should have the right to read the program's source
   code, modify it, and share it.  For software which is distributed in
   traditional ways, users will have these rights when the program is
   licensed under a Free software / open source license such as e.g. the
   GNU General Public License (GNU GPL).  For webservices, these licensing
   principles help only when the company which buys the right to use the
   webservice program is not only able to use the program on the provider's
   webservice server, but is also able to download the webservice program
   itself in executable form if/when that is desired.  This is the
   principle of "DotGNU webservices", and it is supported by the DGEE
   webservice server.

10. Groupware system with XMLRPC support

   phpGroupWare (formerly known as webdistro) is a multi-user groupware
   suite written in PHP, which can be accessed via a web browser or
   programmatically via XMLRPC.

   phpGroupWare provides a Web-based calendar, todo-list, addressbook,
   email, news headlines, and a file manager. The calendar supports
   repeating events.  The email system supports inline graphics and file 
   attachments. 

   The system as a whole supports user preferences, themes, user
   permissions, multi-language support, an advanced API, and user groups.

   It is a plan to support (via XMLRPC) the integration of programs that
   are written in any programming language.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/cvb5oYIVvXUl7DIRAp4hAJwNjshKrt0TkSWFKKOuKfeVAuwfdgCdH7jS
reWe4DelllOfYv7rS8/Q6FA=
=xLL3
-----END PGP SIGNATURE-----


reply via email to

[Prev in Thread] Current Thread [Next in Thread]