[[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.