Eiffel Wish List
by Administrator (modified: 2015 Aug 20)
Wish | Short Description |
---|---|
Source & Generated Files in an RDBMS and (optionally) Compile directly from database | Use an RDBMS to store all sources,libraries and generated files instead of a filesystem. Optionally directly compile from the database. Repository can be shared amongst multiple users |
Shared EIFGEN | Allow sharing of EIFGENs (in read-only mode) |
On-demand tab loading | Allow creation of an EV_NOTEBOOK tab with an agent to be called to fill the tab when it is first loaded |
Enum | A way to author Enum-like class for typed options or flags. Currently using INTEGER and a bag of analogous constants doesn't make Eiffel "elegant". |
Decimal | Addition of a decimal type / REAL_128 for 28 digit precision - |
User types | I want to be able to define types .e.g. a decimal type as mentioned above. I know all built in types can be defined from scratch, except I a way to initialise from literals. So we need a way to define them as well. Suggest a new defered class with create methods from_literal( s:STRING), and queries is_interger_ok:BOOLIAN, is_real_ok:BOOLIAN, is_arbitary_string_ok:BOOLIAN, is_type_string_ok:BOOLIAN (we would define a new type of string just for this). The compiler when generating optimised code will have to compile the new types and dynamicaly bind to them to create an object that can be embeded into the code. I beleave this would let us write code like: x:DECIMAL; x=1.23 (without a conversion from REAL (float base2)) |
CHARACTER_16 | CHARACTER_16 type |
7-bit ASCII | ASCII 7-bit (US) ASCII_CHARACTER and ASCII_STRING which extends upon an ARRAY [ASCII_CHARACTER] with values of 0-127, removing the need for UTF8 conversion/checking when passing basic char values to C (gtk interfacing for example when connecting to signals) |
MUTEX | Make MUTEX recursive on non-windows platforms or at least provide a mutex and separate recursive mutex for all platforms. |
Multiple Precompiled | Ability for multiple precompiles in a system. |
XXX | Ability to compile/debug for both 32/64 bit systems via project settings. |
XXX | Ability for a fully optimal finalization for systems marked as 'client only', so that unused variables will not get generated in the finalized C Code. |
XXX | Ability for Eiffel Studio to cross compile. |
XXX | Ability to be able to control all user settable options in studio without having to resort to manually editing files, this is mainly for C compilation options. |
XXX | Have a smarter C code generation system that can launch a C compilation of any module as soon as the C code is generated, this way we can also be smarter when monitoring C compilation progress. |
XXX | Ability for ANY to generate a unique id for each object for referencing and hashability. |
XXX | With hashable ability of ANY, change object graph traversal for serialization so that multiple threads can serialize at the same time without having to wait linearly (lock_marking/unlock_marking). This may also require a reworking of the mismatch corrector facility as this does not appear to be thread-safe when magically called by the run-time. |
XXX | Ability for Studio to work and compile with Cygwin |
XXX | Ability to get a list of file dependencies in the form of a file listing to stdout. This list would contain a) all .e files used in the system, b) all .lib/.so files explicitly listed in the ECF/Ace file and c) all .h files referenced in external features (ideally that have not been subjected to dead code removal). Preferably, this feature should be able to be used without performing a full compilation (level 4?). |
XXX | Ability for ANY to generate a unique id for each object for referencing and hashability. |
XXX | Ability for ANY to generate a unique id for each object for referencing and hashability. |
Make `redefine' ECMA conform |
According ECMA 367 8.10.7 (Effect, effecting),
The `redefine' clause cannot be used to effect a inherited deferred feature. This code should be rejected:
deferred class A feature do_something deferred end end class B inherit A redefine do_something end feature do_something deferred end end |