Monday, March 20, 2006
The Gobo Eiffel Compiler (alpha)
Eiffel powerhouse Eric Bezault has announced that the Gobo Eiffel compiler is now able to compile all Eiffel code contained in Gobo CVS, and he invites people to try it on different platforms and with different back-end C compilers. It has already been used successfully on Microsoft Windows (XP Pro with msc 7.1 from Visual Studio .NET 2003), Linux (Ubuntu 5.10 with gcc 4.0.2), OpenBSD (3.8 with gcc 3.3.5) and Solaris 9 (64-bit with gcc 3.3.2).
So why yet another Eiffel compiler? Eric explains:
So why yet another Eiffel compiler? Eric explains:
The goal of gec is not to augment the number of incompatible Eiffel compilers but to provide both the open source community and the industry with a compiler fully compatible with ISE Eiffel and compliant with the ECMA Eiffel standard. OK, so what is the benefit of having a clone of ISE Eiffel? First gec is not a clone of ISE Eiffel. It uses different compilation techniques which make the compiler and the compiled applications perform better in some contexts or in some parts of the development cycle. Then, gec also provides an alternative to ISE Eiffel for those who invest a lot in the Eiffel technology and don't want to be tied to a single vendor.
gec is the only open source Eiffel compiler that is released under a less constraining license than GNU GPL. To my knowledge it is also the first and only one whose source code can be compiled by all its major Eiffel compiler competitors, as is the case of all other classes provided in the Gobo Eiffel Project. However, note that although it is already able to compile all Eiffel classes included in the Gobo Eiffel Project, gec is still under development...Here is a list (incomplete) of functionality that has not been implemented at the time of writing:
- Assertions
- Exceptions
- Garbage Collection
- Agents/Tuples
- deep_* features in ANY
- Storable
- User-defined expanded classes
- BIT types
- Unique constants
- Class INTERNAL
- Options and external declarations in the Ace files
- Multithreading
- Debugger
- Profiler
- Cecil (C to Eiffel interface)
- gec is released under the GPL-compatible Eiffel Forum License (version 2)
- gec understands ISE-compatible ace-files
- gec can be compiled with ISE Eiffel 5.6.1218, SmartEiffel 1.2r6 (Daniel Moisset's "transitional vesion" fork), Visual Eiffel 5.0b, and of course with gec itself
- The C-code bootstraps for the Gobo Eiffel tools (gelex, geyacc, gepp, deant and gec itself) are now compiled with gec (previously, SmartEiffel 1.0 was used)
- gec uses the FreeELKS library which has been developed from code donated by ISE