EiffelStudio 14.05 Releases

Revision as of 15:30, 20 March 2014 by Manus (Talk | contribs) (Improvements)

Below are not the release notes of EiffelStudio. It is the change log of EiffelStudio intermediate releases and the most important changes are highlighted in green or in red (for breaking changes). The release notes of EiffelStudio can be found at the following URL. You can also download the latest revision here. Information about other version can be found under Category:Releases.

EiffelStudio 14.05.x Releases

Beta download: ftp://beta:beta57@ftp.eiffel.com/14.05/

14.05.x.x (...)

New features

Improvements

  • store: Added support for handling NULL values in a database using ODBC when using a mapping in DB_SELECTION, DB_DYN_SELECTION, DB_CHANGE or DB_DYN_CHANGE.

Feature removed

Bug fixes

  • store: Fixed an issue where large ASCII data would have their first byte missing when using ODBC (Fixed in rev#94661)

User changes

Developer changes

14.05.9.4570 (March 3rd 2014)

New features

Improvements

Bug fixes

  • xml: Fixed XML parser when the input file is exactly the same size as the xml file input stream chunk size (default 4096 bytes). Improved parser to catch earlier issue related with end of input. This fixed an issue in the compiler not being able to retrieve ECFs with such a size.
  • compiler: Fixed eweasel test#valid265 where if the variant expression is of an anchored type, it would fail to accept it, even if the anchor resolves to an integer type.
  • compiler: Fixed test#anchor075 for bug#18824 where `like {X}.dotnet_query' would crash the compiler at degree 3 because we do not fill the {SYSTEM_I}.rout_info_table for .NET routines.
  • compiler: Fixed eweasel test#freez022 by recording the converted type of an argument to later properly evaluate like arguments.
  • compiler: Fixed an issue with catcall checking which would crash when enabled in the specific case where a type used as argument has some conversion routines. See test#catcall013.

14.05.9.4490 (February 21st 2014)

New features

  • compiler: Added ability to extract file location of a class in interactive mode.
  • compiler: Made it possible to compile a project for Windows on Unix, and vice-versa by using the -platform xxx command line, where xxx can be unix, windows, macintosh or vxworks.
  • compile_all: Improved compile_all tool to return a non-zero exit code when there is a failure. Made it possible to target a specific platform. Also if an ECF has a platform setting set, and we are not compiling for that platform, the ECF will be ignored.
  • compiler: The interactive mode of the compiler can now show the path of a class using the w menu in the class menu.
  • base: Added is_whitespace and is_substring_whitespace.
  • compiler: improved support for type inference.

Improvements

  • studio: Reduced size of project.epr and time it takes to save/retrieve a project by only saving what is needed. Some large projects went from 250MB down to 100MB on disk, and from 800MB to 300MB in memory usage.
  • store: All sublibraries compile in complete void-safety mode.
  • compiler: Made compiler more robust if some routines/classes are not found as expected by the compiler. It will now report a Library_error error instead of crashing at various stages of the compilation process.
  • libraries: All libraries/examples/tools and other ECFs are now checked daily to ensure nothing breaks. As a result fixed a few issues for code that did not compile.
  • compiler: Improved command line usage which will report why the command line is incorrect instead of displaying the whole help which is not very useful.
  • compiler: Fixed an issue when you provide a directory instead of a file, it would report an internal error instead of just stating it could not open the file.

Feature removed

Bug fixes

  • vision2: Fixed by one error when mapping a caret position to the actual caret position of the underlying Windows implementation that has %R%N and not just %N. This fixes vision2 test {TEST_EV_TEXT}.test_test_caret_positioning.
  • compiler: Fixed an issue with interactive mode where displaying all classes was actually not display classes which are part of a recursive cluster.
  • compiler: Fixed eweasel test#anchor073 and test#anchor074 for bug#18758, and test#anchor059. Code now compiles, but it shows that there is still some work to be done. It improves the behavior of test#anchor005 and test#anchor042.
  • compiler: Fixed test#anchor050. This addresses an issue where on .NET it would fail because for a query whose type is `like {X}.val' we would record what the type of `{X}.val' was, and not record that we needed the routine `val' of {X} for generating the type information for .NET code.
  • compiler: Fixed eweasel test#anchor065 where if you have `like {G}.value' it would crash the compiler.
  • compiler: Remove a code generation cast that caused a failure. The drawback is that the code does not verify any more (even though the code is safe). This fixes test#anchor018, test#anchor050, test#anchor054, test#anchor056, test#anchor059, test#anchor063 and potentially other tests.
  • compiler: 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.

User changes

  • studio: Now EiffelStudio will never propose to save tests in the hidden EIFGENs/project/Testing subdirectory.

Developer changes

  • compiler: Fixed test#term194.
  • compiler: Improved memory tool to list all fields of an object.

14.05.9.4243 (February 10th 2014)

New features

  • net: EiffelNet with SSL support.
  • zlib: New Zlib compression library
  • ribbon: Added support for assigning hot keys to ribbon elements.

Bug fixes

  • compiler: Fixed bug#18758 and test#anchor072 which only affected .NET code generation of qualified anchor types.
  • compiler: Fixed a long standing bug where descriptions in external nodes were lost.
  • compiler: Fixed eweasel test#config028, test#config029 and test#config038 where compiler would crash when using a cluster/library with an invalid path.
  • compiler: Fixed a regression that caused a C compilation error after removing a type from the system.
  • studio: Fixed improper display of conditions in task and external nodes.
  • vision2: Fixed a regression in EV_DRAWABLE_IMP on Unix platforms that causes a crash on some Unix platforms.
  • other: Fixed various regression from rev#94113.

14.05.9.4113 (January 29th 2014)

New features

  • base: Added epsilon and machine_epsilon queries as requested by users in REAL_32 and REAL_64. Added missing min_value and max_value from the .NET version of REAL_32 and REAL_64.
  • espec: Added latest version of ESPEC.
  • compiler: The compiler will now report syntax warnings for non-supported empty lists such as {}, () and []. And it will report an error in an export clause if after the type nothing is specified.

Improvements

  • argument: we allow the nologo command line option on Unix to ensure that programs have pretty much the exact same command line interface.
  • compiler: we now provide syntax warnings for unsupported empty lists such as (), or [], or {}, as well as an empty export clause `export {NONE} end'. It is not ECMA compliant to accept those.
  • compiler: made workbench code more compact and faster by about 5 to 9% average.
  • Made most libraries compile in the highest level of void-safety except the following ones:
    • docking
    • editor
    • edk
    • graph
    • memory_analyzer
  • testing: Made possible to run AutoTest test cases outside of the AutoTest framework by simply calling them from a normal class.
  • vision2: Created a set of classes to make it easier to develop AutoTest tests for code based on vision2.
  • runtime: 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 print a warning in the console.

Feature removed

  • library: Removed obsolete feature {TUPLE}.make.

Bug fixes

  • compiler: 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.
  • compiler: bug#17233 (test#term196) - Supported iteration on an expression of a formal generic type.
  • compiler: bug#17239 (test#term198) - Fixed a bug that caused a crash when compiling the code that used an inline agent as an iteration expression.
  • compiler: bug#16983 (test#anchor055), bug#17034 (test#anchor057) - Fixed a bug that caused a crash when compiling the code with the creation of an object of a qualified anchored type with a formal generic.
  • compiler: test#anchor070 - Fixed a bug that might cause compiler crash when nested qualified anchored types with a longer feature chain were involved in qualifiers of other qualified anchored types.
  • compiler: bug#16991 (test#anchor056) - Fixed a bug that might cause a compiler to report an unknown feature in a qualified anchored type with a formal generic qualifier constrained only by formal generic types.
  • compiler: bug#18795 (test#melt104) - Fixed an issue with address expression (not part of the Eiffel specification, only supported for backward compatibility) when melting code would crash the compiler.
  • compiler: fixed test#exec341 where performing an assignment via "{EXT}.fea := bar" would fail at runtime.
  • dotnet: Fixed a code generation bug when using across where the .NET code generation would perform a cast on the target type of the expression instead of on the type of the cursor.
  • studio: Fixed an issue where if you open EiffelStudio on screen 1 of a multiple screen setup, then maximize EiffelStudio on screen 2. Next time you open EiffelStudio it would open maximized on screen 1 rather than on screen 2.
  • wel: Fixed a bug with `set_string_with_newline_conversion' where if the input string had only one character after the last %N, that character would be discarded. That is to say "%Na" would yield "%R%N" instead of "%R%Na". This fixes bug#18783.
  • studio: Fixed an issue on Windows where once you set a preference to True, you could never go back to its default value. For example, force debug mode would always be active once set, same for linking the editor and the context tool and many others.
  • studio: Fixed a saving issue where each time you saved a document, it will blink instead of not changing anything.
  • studio: Fixed a copy and paste texts with multiple lines with some leading tabs into the editor. The cursor in the end is positioned N characters before the place it used to be. (N is the number of lines of the pasted text)
  • base_extension: Fixed a crash in ENVIRONMENT_ARGUMENTS when arguments are removed after first access to ENVIRONMENT_ARGUMENTS. This is the case when using `--sync' option in a Vision2 application on Unix.
  • process: Fixed redirection of standard error to a file which was redirecting to standard output instead.
  • runtime: Fixed bug#18785 and eweasel test#ccomp089 for Linux 32-bit, but the fix will also affect any platform where the C compiler was not doing what we expected to compute the value of NaN, +Infinity and -Infinity for floating numbers.
  • compiler: 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.
  • studio: Fixed bug#18792, bug#18501 and bug#17626 when searching for a feature while the editor hasn't finished loading.
  • studio: Fixed a long standing issue where the new class template had the wrong newline on Windows.
  • store: Fixed Autotest test#test_numeric_types and test#test_numeric_types_use_decimal_mode by ensuring that a decimal read from the database (almost like a string representation) is converted to a REAL_64 the same way it is done in class {STRING}.to_real_64, otherwise we get different rounding.

User changes

  • EiffelStudio: Moved project setting option Full class checking to Advanced section.
  • EiffelStudio: Changed project settings defaults to complete void safety.
  • compiler: 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. As a consequence we have disallowed $(expr) outside argument passing.
  • wel: Fixed incorrect signatures of wrapping for PostMessage, GetCurrentProcessId and GetWindowThreadProcessID which do not return a pointer but an integer type.

Developer changes