Versions history

From Liberty Eiffel Wiki
Jump to navigation Jump to search

LibertyEiffel (latest release first)

For other upcoming releases see the list of names.

Curtiss (, to be named after Glenn Curtiss)

  • not yet released (see next section for current release notes)
  • User-visible changes:
    • addition of a zsh completer for se
    • finally got rid of obsolete classes GEN_RAND, MIN_STAND and STD_RAND
    • removed support for some unused platforms (Amiga, Elate, ...)
    • creation keyword now generates an error
    • C99 conforming C code generation (hopefully)
  • Developer changes:
    • RUN_FEATUREs now have clear names (hopefully)
    • to better support more recent Windows versions, the config file no longer is 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 LibertyEiffel 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 LibertyEiffel
  • 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
  • Developer changes:
    • The web site now belongs to the repository
    • Automatic testing tools (ET on the web, and 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

SmartEiffel (all releases which are predecessors of Liberty)

Release 2.3 [Antoine-Auguste Parmentier] - Wednesday July 11th 2007

Again, a lot of novelties for this release:

  • New typing rules have been revisited and are now crystal clear. See this page for details.
  • Implemented a new class loading algorithm, which takes into account the "distance" between classes, thus reifying the notion of clusters and sub-clusters. Everything is trans