[Top][All Lists]
[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-----
- [DotGNU]"What has been achieved so far" draft document,
Norbert Bollow <=