EiffelStudio Wish List

Revision as of 17:58, 17 November 2006 by Misterieking (Talk | contribs) (Other)

Welcome to the Eiffel/EiffelStudio Wish List. This is the place where you, the community, get a chance to tell us what you think is important to include in the future versions of the Eiffel compiler and EiffelStudio IDE.

Please use this list responsibly and try to correctly categorize your wishes. A brief description may help us evaluate your requirements but please be brief.

Our stock pile of genie snared, dusty gold lamps is running low for our next release (EiffelStudio Releases) but we'll be sure to scour the lands for more.

Compiler

General

  • 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".
  • Addition of a decimal type / REAL_128 for 28 digit precision
  • CHARACTER_16 type
  • 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)
  • Make MUTEX recursive on non-windows platforms or at least provide a mutex and separate recursive mutex for all platforms.
  • Ability for multiple precompiles in a system.
  • Ability to compile/debug for both 32/64 bit systems via project settings
  • Ability for for a fully optimal finalization for systems marked as 'client only', so that unused variables will not get generated in the finalized C Code.
  • Ability for studio to work with binutils for cross compilation
  • 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
  • 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
  • Ability for ANY to generate a unique id for each object for referencing and hashability
  • 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)
  • Ability for Studio to work and compile with Cygwin

.NET

  • Consume .NET generics. Not being able to use them is becoming harder.
    We cannot write Atlas (AJAX) based web applications because of it. The Visual Studio SDK, used by EiffelEnvision, is increasing it's use of generics and preventing use from supporting some features. The people who want to use the .NET framework classes instead of the Eiffel ones cannot use generics and have to resort to using the non-generic versions of list, which bulks implementation and leads ambiguity.
  • Emit .NET generics types for Eiffel generic classes.
  • Allow direct access to member of TYPED_POINTER [xxx] item out/ref routine arguments.
  • Allow direct setting of TYPED_POINTER [xxx] item for out/ref routine arguments.
  • Optimized call.do_nothing as a IL pop instruction to removed returned value.

IDE

  • Give the user control over which classes will be compiled over the GUI (say: click on grey class and it becomes yellow and will be compiled always from now on, even though it may not be used at all. This is good for development of classes which are not added over GUI in ES.)
  • While searching for word or after a double click on a word, it would be nice if all words would be highlighted in pastel color style.
  • It's a pain to pick`n`drop huge features source code into the context window for setting break point. What about the following: Pick on the right side of the class text picks the feature as well? (Pick on the left side of the class text picks already the feature call).
  • Make editor and grid more theme compliant in terms of color and font

Other

  • Provide a WEAK_REFERENCE [G] class to abstract away the implementation details currently provided by IDENTIFIED for implementing weak references.
  • Locale support to determine what the default charset is (or whether it is UTF-8 or not)
  • Build an object storing database with built-in record locking so that multiple systems can have access to the same 'objects'