Difference between revisions of "Versions history"

From Liberty Eiffel Wiki
Jump to navigation Jump to search
m
 
(35 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Category: Releases]]
 
[[Category: Releases]]
== LibertyEiffel (latest release first) ==
+
== Liberty Eiffel (latest release first) ==
For upcoming releases see the [[upcoming releases|list of names]].
+
For other upcoming releases see the [[upcoming releases|list of names]].
=== Curtiss (2016.dev, to be named after [https://en.wikipedia.org/wiki/Glenn_Curtiss Glenn Curtiss]) ===
+
=== Curtiss (2022.dev, to be named after [https://en.wikipedia.org/wiki/Glenn_Curtiss Glenn Curtiss]) ===
 
* not yet released (see next section for current release notes)
 
* not yet released (see next section for current release notes)
 
* User-visible changes:
 
* User-visible changes:
  +
** 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
 
** addition of a zsh completer for se
  +
** updated dependency of BDW GC to version 8.x
** finally get rid of obsolete classes GEN_RAND, MIN_STAND and STD_RAND
 
  +
** installation script (install.sh) now supports the latest libgc-dev library (external garbage collector)
** removed support for some unused platforms (Amiga, elate, ...)
 
  +
** finally removed the obsolete classes GEN_RAND, MIN_STAND and STD_RAND
** creation keyword generates now an error
 
  +
** 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)
** C99 conforming C code generation (hopefully)
 
  +
** removed obsolete feature "is_basic_expanded_type" from class ANY
* Developer changes:
 
  +
** 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)
 
** 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:
 
* Known bugs:
 
** see [https://savannah.gnu.org/bugs/?group=liberty-eiffel] for the full list
 
** see [https://savannah.gnu.org/bugs/?group=liberty-eiffel] for the full list
Line 18: Line 29:
 
=== Bell (2016.05, named after [https://en.wikipedia.org/wiki/Alexander_Graham_Bell Alexander Graham Bell]) ===
 
=== Bell (2016.05, named after [https://en.wikipedia.org/wiki/Alexander_Graham_Bell Alexander Graham Bell]) ===
 
* released in May 2016
 
* released in May 2016
* first release since LibertyEiffel has become the official GNU Eiffel compiler
+
* first release since Liberty Eiffel has become the official GNU Eiffel compiler
 
* User-visible changes:
 
* User-visible changes:
 
** 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)
Line 36: Line 47:
   
 
=== 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.]) ===
* First release as LibertyEiffel
+
* First release as Liberty Eiffel
 
* User-visible changes:
 
* User-visible changes:
 
** Added [[library_class:NATURAL_8|<tt>NATURAL_8</tt>]], [[library_class:NATURAL_16|<tt>NATURAL_16</tt>]], [[library_class:NATURAL_32|<tt>NATURAL_32</tt>]], and [[library_class:NATURAL_64|<tt>NATURAL_64</tt>]] classes. See <tt>tutorial/natural.e</tt> for examples.
 
** Added [[library_class:NATURAL_8|<tt>NATURAL_8</tt>]], [[library_class:NATURAL_16|<tt>NATURAL_16</tt>]], [[library_class:NATURAL_32|<tt>NATURAL_32</tt>]], and [[library_class:NATURAL_64|<tt>NATURAL_64</tt>]] classes. See <tt>tutorial/natural.e</tt> for examples.
Line 47: Line 58:
 
** A new tool that can generate mocks to help unit testing
 
** A new tool that can generate mocks to help unit testing
 
** [http://hboehm.info/gc/ BDW] GC support
 
** [http://hboehm.info/gc/ 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:
 
* Developer changes:
 
** The web site now belongs to the repository
 
** The web site now belongs to the repository
Line 56: Line 68:
 
** Some of the newer core libraries do not work very well when there is no GC
 
** Some of the newer core libraries do not work very well when there is no GC
 
** See the [https://savannah.gnu.org/bugs/?group=liberty-eiffel bugs page]
 
** See the [https://savannah.gnu.org/bugs/?group=liberty-eiffel 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 policy|typing rules]] have been revisited and are now crystal clear. See [[Typing policy|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
 

Latest revision as of 07:13, 5 July 2022

Liberty Eiffel (latest release first)

For other upcoming releases see the list of names.

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

  • not yet released (see next section for current release notes)
  • User-visible changes:
    • 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%
  • 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