Release Notes (Versions history)
Revision as of 10:15, 31 March 2022 by Hzwakenberg (talk | contribs)
Liberty Eiffel (latest release first)
For other upcoming releases see the list of names.
Curtiss (2018.dev, to be named after Glenn Curtiss)
- not yet released (see next section for current release notes)
- User-visible changes:
- redesign of eiffeldoc generated HTML to reduce its size dramatically
- addition of a zsh completer for se
- installation script (install.sh) now supports the latest libgc-dev library (external garbage collector)
- finally removed the obsolete classes GEN_RAND, MIN_STAND and STD_RAND
- removed support for some unused legacy platforms (Amiga, Elate, BeOS, OS/2, Macintosh, HP RISC, IBM370, NS32000, MIPS, Pyramid 9810, SPARC, VAX, Motorola 68000) - in case you have a real use case for those we are happy to readd it
- removed support for some unused backend C-compilers (i.e. Watcom-C)
- removed obsolete feature "is_basic_expanded_type" from class ANY
- obsolete keyword 'creation' now generates an error
- obsolete class READY_DESCRIPTION removed from sequencer cluster
- 'is_prime' feature added to class INTEGER_GENERAL
- 'is_fibonacci' feature added to class INTEGER_GENERAL
- constants 'Tau', 'Sqr_tau' and 'Inv_tau' added to math_constants.e
- C99 conforming C code generation (hopefully)
- Developer changes:
- RUN_FEATUREs now have clear names (hopefully)
- to better support the user access rights model of the current Windows versions, the config file is no longer written to a root directory but rather to %ALLUSERSPROFILE% or %USERPROFILE%
- Known bugs:
- see [1] for the full list
Bell (2016.05, named after Alexander Graham Bell)
- released in May 2016
- first release since Liberty Eiffel has become the official GNU Eiffel compiler
- User-visible changes:
- changed Environment Variable name from SmartEiffel to LibertyEiffel (anyhow, normally it should not be necessary to set this one)
- new tool Mock
- removed linebreaks in compiler output
- many bugfixes
- GC call at exit is optional
- generic creation
- agents are now closures
- finder now finds all classes in the universe with the given name, not only the first one
- keyword is at the beginning of a feature is now deprecated
- Added support for alias "[]" and alias "()"
- constants are now visible in the eiffeldoc generated documentation
- Known bugs:
- there is still an issue in both GC implementations (classical SEGC and BDW), if it shows up, it often yields a "Bad target type" runtime error.
- for the full list see [2]
Adler (2013.11, named after Charles Adler, Jr.)
- First release as Liberty Eiffel
- User-visible changes:
- Added NATURAL_8, NATURAL_16, NATURAL_32, and NATURAL_64 classes. See tutorial/natural.e for examples.
- Even low-level features (i.e. external "built_in") are now checking their assertions. As an example, division by zero is now checked by assertions.
- Inlined dynamic dispatch for better performance
- A missing export clause is deprecated. Use {ANY} instead.
- New core libraries: cli, json, log, parse (beware, these libraries are not yet tuned to be used without GC)
- Improved libraries: string (with notably a new FIXED_STRING class)
- Wrapper libraries: gtk, gdk, readline, ffi...
- A new tool that can generate mocks to help unit testing
- BDW GC support
- Collections implementation of is_equal changed to compare the contained objects using their is_equal functions instead of = (which was formerly the functionality of is_equal_map). The old functionality of is_equal is available by fast_is_equal.
- Developer changes:
- The web site now belongs to the repository
- Automatic testing tools (ET on the web, and watch_eiffeltest.sh in the shell)
- Automatic Debian packages generation
- Known bugs:
- BDW GC is not well tested; currently weak references seem not to work properly; and the GC is not run at program exit (it should run all finalizers)
- Sometimes SmartEiffel's native GC behaves wrongly, analysis is welcome
- Some of the newer core libraries do not work very well when there is no GC
- See the bugs page