| Online Eiffel Documentation

EiffelStudio

# 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 orINTEGER_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.