Difference between revisions of "Release Notes (Versions history)"

From Liberty Eiffel Wiki
Jump to navigation Jump to search
Line 17: Line 17:
 
** changed Environment Variable name from SmartEiffel to LibertyEiffel (anyhow, normally it should not be necessary to set this one)
 
** changed Environment Variable name from SmartEiffel to LibertyEiffel (anyhow, normally it should not be necessary to set this one)
 
** removed linebreaks in compiler output
 
** removed linebreaks in compiler output
  +
** many bugfixes
** many bugfixes (including the long lasting weak references bug with the BDW GC)
 
 
** GC call at exit is optional
 
** GC call at exit is optional
** ZMQ library wrapper
 
** new CGI library
 
** new library EDC-new???
 
 
** generic creation
 
** generic creation
 
* Developer changes:
 
* Developer changes:
 
**
 
**
 
* Known bugs:
 
* 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.
** no (hopefully)
 
** see [https://savannah.gnu.org/bugs/?group=liberty-eiffel] for the full list
+
** for the full list see [https://savannah.gnu.org/bugs/?group=liberty-eiffel]
   
 
=== Adler (2013.11, named after [http://en.wikipedia.org/wiki/Charles_Adler,_Jr. Charles Adler, Jr.]) ===
 
=== Adler (2013.11, named after [http://en.wikipedia.org/wiki/Charles_Adler,_Jr. Charles Adler, Jr.]) ===

Revision as of 20:10, 9 April 2016

LibertyEiffel (latest release first)

For upcoming releases see the list of names.

Curtiss (2016.09, named after Glenn Curtiss)

  • not yet released (see next section for current release notes)
  • User-visible changes:
    • C99 conforming C code generation
  • Developer changes:
    • RUN_FEATUREs now have clear names
  • Known bugs:
    • see [1] for the full list

Bell (2016.01, named after Alexander Graham Bell)

  • not yet released (see next section for current release notes)
  • first release since LibertyEiffel is 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)
    • removed linebreaks in compiler output
    • many bugfixes
    • GC call at exit is optional
    • generic creation
  • Developer changes:
  • 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 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

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