[[Property:title|Major changes between ISE Eiffel 13.11 and ISE Eiffel 14.05]] [[Property:link_title|14.05]] [[Property:weight|8]] [[Property:uuid|a901f880-4f88-f889-4880-d3687b6939b1]] ==What's new== * Syntax warnings are now reported for unsupported empty lists such as (), or [], or {}, as well as an empty export clause `export {NONE} end'. * Added ability to extract the file location of a class in interactive mode. ==Improvements== * Made workbench code more compact and faster by about 5 to 9% on average. * Improved memory tool to list all fields of an object. * Better command line usage that will report why the command line is incorrect instead of displaying the whole help. * Compiler is now more robust if some required routines/classes are not found as expected by the compiler. It will now report a Library_error error instead of failing. * Now the compiler reports all VWEQ warnings as before it was only doing it if you were comparing an expanded with a reference. ==Changes== * In circa 2000, we allowed $x and $(expr) as expression instead of just argument passing. But while this was good for just $x, $(expr) is actually not supported properly in the code generation. In 14.05, we have disallowed $(expr) outside argument passing. * In workbench mode, if the melted file cannot be found, instead of exiting the application, the application will run as if it had never been melted and will instead print a warning in the console. ==Bug fixes== ===Language issues=== ===Compiler issues=== * test#anchor071 - Fixed computation of a qualified anchored type that involves a formal generic parameter and feature redeclaration in a descendant of the formal generic constraint. * test#anchor077 - Fixed a compiler crash when analyzing the following qualified anchored type '''like x.f''' where f is defined as '''f: like y.z.w'''. * bug#16991 (test#anchor056) - Fixed a bug that might cause the compiler to report an unknown feature in a qualified anchored type with a formal generic qualifier constrained only by formal generic types. * test#anchor070 - Fixed a bug that might cause a compiler crash when nested qualified anchored types with a longer feature chain were involved in qualifiers of other qualified anchored types. * bug#16983 (test#anchor055), bug#17034 (test#anchor057) - Fixed a bug that caused a crash when compiling code with a creation of an object of a qualified anchored type with a formal generic. * bug#17239 (test#term198) - Fixed a bug that caused a crash when compiling the code that used an inline agent as an iteration expression. * bug#17233 (test#term196) - Supported iteration on an expression of a formal generic type. * bug#18759 (test#iteration004) - Changed processing of {ITERABLE}.new_cursor to use a renamed version of the feature in a descendant class rather than the feature having this name. * test#config028, test#config029 and test#config038 - Fixed a crash when using a cluster/library with an invalid path. * Fixed a long standing bug where descriptions in external nodes were lost. * Fixed an issue with interactive mode where displaying all classes was actually not display classes which are part of a recursive cluster. * bug#18758 (test#anchor073, test#anchor074, and test#anchor059) - Fixed some improper handling of qualified anchors. * test#anchor050 - Fixed an issue on .NET where the compiler would not properly handle '''like {X}.f'''. * test#anchor065 - Fixed a compiler crash when processing '''like {G}.value'''. * Fixed a bug in the interactive mode of the compiler that was preventing the display of classes that belong to a folder of a cluster. * test#valid265 - Fixed a bogus compilation error when the type of a variant expression is of an anchored type when it should have accepted it. * bug#18824 (test#anchor075) - Fixed a compiler crash in .NET code generation where '''like {X}.dotnet_query''' would crash the compiler at degree 3. * text#catcall013 - Fixed an issue with catcall checking which would crash the compiler in the specific case where a type used as argument has some conversion routines. * Fixed bug#18855 where we used the wrong constant to display the command switch for the `-debug' option. ===SCOOP issues=== ===Runtime/code generation issues=== * test#exec341 - Fixed a crash at runtime when performing an assignment using an object-less call, e.g. '''{EXT}.fea := bar'''. * Fixed a regression that caused a C compilation error after removing a type from the system. * bug#18758 (test#anchor072) - Fixed crash which only affected .NET code generation of qualified anchor types. * test#anchor018, test#anchor050, test#anchor054, test#anchor056, test#anchor059, test#anchor063 and other tests - Fixed a code generation issue on .NET where some incorrect casts where generated causing an exception at runtime when the code is actually ok. * test#freez022 - Fixed a missing conversion at runtime when formal argument type is an anchor. * Fixed CECIL library creation to take into account the new memory_analyzer.o and offset.o modules of the runtime. * bug#18785 (test#ccomp089) - Fixed a code generation issue for Linux 32-bit for the generation of the value of NaN, +Infinity and -Infinity for floating numbers. ===Store/Retrieve issues=== * Fixed an issue where retrieving a large amount of objects on a x86 platform, we would crash where restoring one of the store/retrieve stack using ''epop''. * bug#18835 - Fixed a potential overflow issue with store/retrieve when you have more than 2^31 objects.