Major changes between ISE Eiffel 6.6 and ISE Eiffel 6.7

Contents

What's new

See Also: Differences between standard ECMA-367 and Eiffel Software implementation

  • EiffelStudio can use GCC on Windows for both 32-bit and 64-bit edition. We are using version 4.4.5 of gcc.
  • EiffelStudio can now parse UTF-8 source code. Unicode characters can be used in strings, comments and operators.
  • New tracing facility for Eiffel code. Until now tracing was done at the runtime level by writing to the standard output. The new tracing facility lets you execute some user defined Eiffel code at entry and exit of all routine calls. It can be used for logging purposes, or for test coverage.

Improvements

  • Allowed for a qualified anchored type that has a standalone type qualifier to be used as a type of a once function *bug#16947, test#anchor050).

Changes

Bug fixes

Language issues

Compiler issues

  • Fixed various issues related to qualified anchored types: bug#16791 (test#anchor011), bug#16792 (test#incr352), bug#16793 (test#incr353), bug#16797 (test#anchor012), bug#16798 (test#anchor013), bug#16799 (test#anchor014), bug#16800 (test#anchor015), bug#16803 (test#anchor016), bug#16804 (test#anchor017), test#anchor018, bug#16819 (test#anchor019), bug#16821 (test#incr354), test#anchor020, test#anchor021, bug#16824 (test#anchor022), test#anchor023, bug#16839 (test#anchor024), test#anchor026, bug#16848 (test#anchor027), bug#16849, bug#16850 (test#attach030), bug#16855 (test#final089), bug#16849, bug#16867 (test#anchor028), bug#16868 (test#anchor029), bug#16876 (test#anchor031), bug#16878 (test#incr356), bug#16879 (test#anchor033), bug#16883 (test#anchor034), bug#16884 (test#anchor035), bug#16885 (test#anchor036), bug#16886 (test#anchor037), bug#16887 (test#anchor038), bug#16889 (test#incr358), bug#16890 (test#anchor040), bug#16893 (test#incr359), bug#16897 (test#anchor041), bug#16899 (test#incr362), bug#16900 (test#incr363), bug#16901 (test#incr364), bug#16902 (test#anchor043), bug#16943 (test#anchor047), bug#16944 (test#anchor048), bug#16945 (test#anchor049), bug#16959 (test#anchor052).
  • Fixed various issues related to once per object: test#once001, test#once002, test#once003, test#once004, test#once005, test#once006, test#once007, test#once008, test#once009, test#once010, test#once011, test#incr366, test#incr376, test#incr384.
  • Fixed various incrementality bugs: test#incr295 test#incr302 test#incr307 test#incr309 test#incr324 test#incr331 test#incr332 test#incr346 test#incr372 test#incr373 test#incr374.
  • Fixed eweasel test#exec327 where evaluation an assertion the code being executed encounter the new check ... then ... end instruction it would reset some internal flags causing assertion within assertions to be checked when they should not.
  • Fixed eweasel test#valid243, test#svalid028, test#svalid029, test#tuple004, test#freez032 and test#multicon058. The issue was that when we performed the type checking of inherited routines using prefix/infix we were not using the new name of the prefix/infix operator but still the old one. Thus if it was renamed it would cause a spurious compilation error instead of accepting the code.

Runtime/code generation issues

  • When running an Eiffel system on Windows without assertion monitoring and you try to write a file that is not yet open, it will trigger an exception instead of silently exiting.
  • Fixed eweasel test#thread016 where we forget to protect arguments used for catcall checking.
  • Fixed building of shared libraries of CECIL system which failed on Windows.
  • Fixed eweasel test#ccomp085 where compiler ensures that the order of includes of an Eiffel external is respected at compile time.
  • Fixed eweasel test#exec326 by properly generating the REAL_32 values for {REAL_32}.min_value and {REAL_32}.max_value.

Store/Retrieve issues

  • Prevented the C storable from blocking all threads while waiting from data to be read in retrieved. Now control waits for the storable type first before blocking all the other runtime threads. This fixes bug#16859.
  • Fixed bug#16946 and eweasel test#store032 where corruption could occur if an object is stored in a different thread than the main thread.