Future Work | ![]() ![]() |
The Gobo Eiffel Compiler can be extended in many ways. Here is a non-exhaustive list of possible enhancements and future developments.
The names of the generated C functions should not depend on type and feature ids in order to make it possible to play with DLLs and other shared libraries. It will also make the incrementality of C compilation easier to implement (taking advantage of the Zig toolchain caching mechanism). The class ET_C_GENERATOR has been written in such a way that it should not be that difficult to change the naming convention. You can have a look at the callers of feature short_names as a starting point.
One way to improve C compilation time could be to try to use distcc. It seems to work well when applied to the C code generated by ISE.
Note that no effort has been made yet to optimize the generated C code.
Add debugging facilities.
Add profiling facilities.
Some effort should be spent on finding ways to make the Eiffel to C compilation incremental. Currently the code allows some incrementality if the subsequent recompilations are performed within the same compiler execution. The data needed for incrementality are lost as soon as the program exists.
Several kinds of validation test suite are needed. One to test interoperability with ISE Eiffel. Another one to test compliance with the ECMA Eiffel standard. It would also be useful to have a test suite for FreeELKS kernel library. This effort has already been started with gecop and its validation test suite.
gec currently generates C code. This is done through the class ET_C_GENERATOR. gec could be extended to generate Java Virtual Machine (JVM) code, Microsoft .NET code (MSIL), Rust, Zig, Wasm, C--, or even native code.
A graphical development environment for gec should be provided. One solution could be to implement a plugin for VSCode.
Copyright © 2006-2025, Eric Bezault mailto:ericb@gobosoft.com https://www.gobosoft.com Last Updated: 31 August 2025 |
![]() ![]() ![]() ![]() |