[[Property:title|Major changes between ISE Eiffel 5.1 and ISE Eiffel 5.2]]
[[Property:link_title|5.2]]
[[Property:weight|-9]]
[[Property:uuid|f08242d4-d472-142c-7f92-f2c043bc5fa6]]
==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.