Release Notes (Versions history)

From Liberty Eiffel Wiki
Jump to navigation Jump to search

Liberty Eiffel (latest release first)

For other upcoming releases see the list of names.

Curtiss (2024.dev, to be named after Glenn Curtiss)

  • not yet released (see next section for current release notes)
  • User-visible changes:
    • added installation script: Installing on Windows using the Tiny-C compiler
    • added support for assign (note: it applies to the setter, while ISE version applies to the getter)
    • redesign of eiffeldoc generated HTML to reduce its size dramatically
    • addition of a zsh completer for se
    • updated dependency of BDW GC to version 8.x
    • 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 (OpenVMS, 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
    • C-runtime now C99 compliant
    • C-runtime now thread-safe
    • C-code generator does not yet generate C99 compliant C-code, currently being worked on (likely for the Dennis-release).
    • 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%
    • support for NetBSD, FreeBSD and OpenBSD added (Thanks to KOIZUMI Satoru)
  • 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