Major changes between ISE Eiffel 5.1 and ISE Eiffel 5.2

What's new

  • .NET generation now includes support for the following language features:
    • Support for multiple inheritance.
    • Support for generics.
    • Partial implementation of generic conformance
    • Support for tuples and agents.
    • Support for any existing Eiffel code that does not use C externals.
    • Support for compiling Eiffel libraries using C externals that are not related to the Eiffel Software C runtime.

And the following limitations:

    • Eiffel classes cannot inherit from non-Eiffel .NET classes (but they can be clients).
    • No support for expanded keyword.
  • .NET generation now supports assembly signing in enterprise edition.
  • .NET generation now supports precompiled libraries.
  • Supports for manifest integer constants of different sizes, i.e. you can now assign for example the value 8 to a location of type INTEGER_8, INTEGER_16, INTEGER or INTEGER_64, however you can only assign the value 254 to a location of type INTEGER_16, INTEGER or INTEGER_64.

Improvements

  • Compiler that is about 20% faster than 5.1.
  • Runtime is about 10-20% faster than 5.1

Changes

  • One cannot create an instance of a basic expanded class ( BOOLEAN, CHARACTER, INTEGER_8, INTEGER_16, INTEGER, INTEGER_64, POINTER, REAL, DOUBLE), you will now get a VGCC(6) error. Instead directly assign to it, or create an instance of its corresponding _REF class.

Bug fixes

  • Fixed memory corruption issue when trying to access an INTEGER_64 value.
  • Fixed a problem with manifest INTEGER_64 constants whose values were incorrectly interpreted.
  • Fixed VAPE errors that were not previously reported in 5.1. Now VAPE errors are checked against call to infix and prefix features.