Difference between revisions of "EiffelStudio 6.6 Releases"

m (New features: Added a note on enabling iteration over ARRAYED_SET)
(New maintenance release 6.6.8.3873)
 
(19 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
= EiffelStudio 6.6.x Releases=
 
= EiffelStudio 6.6.x Releases=
  
==6.6.x==
+
==6.6.8.3873 (July 14th 2010, Maintenance Release)==
Placeholder for new stuff since last intermediate release.  
+
===Bug fixes===
 +
* C compiler: Added Windows SDK 7.1 release.
 +
* vision2: Create the menu even without a pebble. This fixes the problem on Linux contextual menu in the editor had gone.
 +
* vision2: Fixed an issue with EV_TREE, EV_LIST, EV_HEADER, EV_TOOL_BAR and EV_MULTI_COLUMN_LIST where setting a pebble on the control (not just the item) would allow pick and drop but the line drawn was restricted to the control. This was because of the new P&D mechanism without the hook, and like our previous fix on item, we have to disable the default processing otherwise the control is grabbing the focus.
 +
* studio/encoding: Fixed endianness issue on big endian machine. Fixed bug#16820. Removed useless locals.
 +
* studio: Call `create_target_menu' even when the pebble is void. This was the behavior before void-safty integration. Release pebbles to be detachable. Fixed bug#16892: Context menu in editor gone since 6.5!!!!
 +
* base: Simplified postcondition of `safe_less_than' to better reflect the contract of `<' as specified in COMPARABLE. It also let you redefine `safe_less_than' to mean something else than `<' in a descendant.
 +
* library: Updated syslog constant definition in process library to fix C compilation errors (bug #16917).
 +
 
 +
* compiler: Fixed bug#16858 and eweasel test#final090 where a check instruction (aka guard) would not record the routines used in the expressions as to be recorded for dead code removal when check assertions are not kept in the code generation.
 +
* studio: Enable `is_pointer_sensitive' in {ES_POPUP_EDITOR_TOKEN_CONTEXT_BUTTON}. Now after editor contract window pop-up, the pop-up window will be closed immediately if user pointer leave the pop-up window area. Fixed bug#16862: Tooltip on feature declaration don't go away
 +
* compiler: Fixed bug#16883 by taking the actual type on evaluated anchor type since the latter can be anchored itself, but we need resolved type instead (see test#anchor034).
 +
* compiler: Redefined `instantiated_in' to make sure the qualifier is also updated (this fixes bug#16893 (test#incr359), bug#16876 (test#anchor031), bug#16884 (test#anchor035), bug#16887 (test#anchor038), bug#16890 (test#anchor040), bug#16897 (test#anchor041)).
 +
* debugger: Fixed bug#16838: User can bring up multiple breakpoint dialogs on same breakpoint
 +
* studio: Fixed bug#16831: Picking and dropping class from Features window into Editor tab clears Features window
 +
* compiler: Fixed bug#16878 returning false when comparing QAT with invalid actual type and avoiding using old actual type when setting the new one (see test#incr356).
 +
 
 +
* compiler: Allowed compiling for 32-bit or 64-bit regardless of the underlying platform default of Mac OS X
 +
* compiler: Moved formal generic constraint checks before delayed type checks as the constraints are used to compute qualified anchored types that reference features renamed for a formal generic (see test#anchor025).
 +
* compiler: Taken into account features removed in a formal generic constraint (see test#anchor025).
 +
* compiler: Redefined features that are used in skeleton evaluation since the types of attributes may depend on formal generics and therefore cannot be evaluated on the actual type (see test#anchor025).
 +
* compiler: Changed code generation for qualified type descriptor to use full type byte code as the type of qualifier is actually nested and should be complete (this fixes bug#16848, test#anchor027).
 +
* runtime: Fixed a double free issue when the loop is entered a second time after freeing `rids', we should also reset `rids' so that it gets reallocated if needed and that we don't try to free it a second time.
 +
* compiler: Fixed eweasel test#exec327 where using the new check .. then .. end instruction would reset the `in_assertion' flag and in some code pattern causing infinite recursion when checking assertion because the reset caused potentially the same assertion to be reexecuted again.
 +
* compiler: Fixed bug#16855 by instantiating feature type in the qualifier type and making selective code generation in `generate_gen_type_conversion' depending on whether evaluation of the qualifier can be optimized or not (see test#final089).
 +
* studio: Display ignore contract violation dialog in application idle actions. Because on Linux platforms (using GTK),  we cannot have an event loop within an event loop and thus cannot show a dialog while responding to the message from the debugger. Fixed bug#16836: Assertion violation in "check Assertion then" construct crashes estudio
 +
 
 +
* C compiler: Added `-pipe' for MinGW on Windows to allow concurrent C compilation. Without it, it exhibits a bug in gcc where two instances will try to use the same temporary file.
 +
* vision2: Fixed an issue where pasting text into EV_TEXT_FIELD under CDE with Click to Type does not fire change_actions (bug#16056)
 +
* vision2: Using EV_PIXEL_BUFFER for `pixel_buffer_from_class_i' instead of converting from EV_PIXMAP. Fixed bug#16711: Wrong background color for icons of parent classes in the features tree
 +
* studio: Fixed bug#16707: New class is created in occupied tab
 +
* compiler: Fixed bug#16791 by avoiding instantiation of a feature type in the case when it is processed in the context of the current type (see test#anchor011).
 +
* compiler: Fixed bug#16797 and bug#16804 by reporting incorrect generic derivations used as a qualifier of a qualified anchored type (see test#anchor012, test#anchor017).
 +
* compiler: Previous commit forgot that `exclude' and `include' could actually be Void.
 +
* debugger/vision2: Implemented pnd drag delta handling to match the windows platform. The fixes the breakpoints bug #16808 that was recently introduced due to the differences in the two platforms.
 +
* studio: Fixed a crash in {EB_DEVELOPMENT_WINDOW}.relative_location_offset
 +
* studio: Remove the forced 6.3 compatible mode. We are now taking that from the ECF version. This prevents to be in 6.3 settings mode when using -compat in 6.6 when it just means take the default from the 6.5 release.
 +
* compiler: Fixed several bugs, related to the processing of qualified anchored types (bug#16798 (test#anchor013), bug#16799 (test#anchor014), bug#16800 (test#anchor015), bug# (test#anchor016), test#anchor018) by changing their
 +
processing.
 +
* compiler: Introduced validity checks for intermediate types in QAT to report errors and stop processing as soon as an invalid type is detected (this fixes test#attach012). However error processing should be reviewed because it relies on attached error_handler that may be void sometimes.
 +
* compiler: Changed same_as to return false since non-evaluated types cannot be compared and this tells the compiler that a feature with such a type in a feature table cannot be used and should be rechecked (this fixes anchor012).
 +
* compiler: Fixed bug#16815: Feature call on void target in {CLASS_C}.inline-agent#1 of has_stable_attribute in EiffelStudio.
 +
* curl: Added CURLOPT_CUSTOMREQUEST
 +
* compiler: Fixed a bug with the backup mechanism when overriding a class from a library which is processed before any classes of that library, in such cases we were skipping the copy of the configuration file of that library to the backup folder, making it hard to reproduce bugs. It was reproduced thanks to bug#16687 backup.
 +
* compiler: Fixed bug#16819 by avoiding processing constant type as soon as its checking fails (see test#anchor019).
 +
* compiler: Avoided asking if other type is NONE when this other type is not valid (this addresses the issue of bug#16821, test#anchor354).
 +
* compiler: Supported processing of type NONE for which no feature is actually found (this fixes bug#16821, test#anchor354).
 +
* compiler: Added detection of the case when qualified supplier is changed to trigger recompilation of its client (this fixes bug#16792 (test#incr352), bug#16793 (test#incr353)).
 +
* compiler: Fixed bug#16824 by tracking the type of the anchor chain in the descendant (see test#anchor022).
 +
* compiler: Fixed bug#16839 by processing types mentioned in the qualifier part of a qualified anchored type so that any class types are in the system (see test#anchor024).
 +
* studio: Using "M" instead of "m". Now it's consistence with other shortcut strings in Eiffel Studio. Fixed bug#16833: Key binding for Maximize Editor Area shown as Ctrl+m instead of Ctrl+M
 +
 
 +
 
 +
 
 +
==6.6.8.3315 (Final Release, May 26th 2010)==
 
===New features===
 
===New features===
* library: Added a feature <e>trim</e> to the class <e>RESIZABLE</e> and its descendants to allow for minimazing the use of allocated storage.
+
* base: Added a feature <e>trim</e> to the class <e>RESIZABLE</e> and its descendants to allow for minimizing the use of allocated storage.
 
* studio: Allows users to double left click on the editor tab ribbon to create a new tab. The tab is created on the right, as that is where users click. Once the tab is opened then the address bar is focused and the contents removed. It's ready for editing.
 
* studio: Allows users to double left click on the editor tab ribbon to create a new tab. The tab is created on the right, as that is where users click. Once the tab is opened then the address bar is focused and the contents removed. It's ready for editing.
* studio: Implemented "Ctrl+ Enter" on address bar to open the class/feature in a new tab editor (if editor with current class/feature not already exists).
+
* studio: Implemented "Ctrl+ Enter" on address bar to open the class/feature in a new tab editor (if an editor with the current class/feature does not already exist).
 
* studio: Handled mouse-middle-click to close pointed editor tab.
 
* studio: Handled mouse-middle-click to close pointed editor tab.
 
* compiler: Supported new once per object.
 
* compiler: Supported new once per object.
 
* debugger: Supported new once per object.
 
* debugger: Supported new once per object.
 
* library: Enabled iteration (using <e>across</e> form of a loop) over <e>ARRAYED_SET</e>.
 
* library: Enabled iteration (using <e>across</e> form of a loop) over <e>ARRAYED_SET</e>.
 +
* debugger: Added the possibility to copy,  to the clipboard, the text representation of selected call stack elements (from the call stack tool) using Ctrl+C or Ctrl+Ins.
 +
* compiler: Supported qualified anchored types that may come in two flavours: <e>like f.g.h</e>, where <e>f</e>, <e>g</e>, <e>h</e> are feature names, and <e>like {T}.a.b</e>, where <e>T</e> is a type and <e>a</e> and <e>b</e> are feature names. (The current implementation has the following limitations: quailified anchored types that involve formal generics with multiple constraints are not supported, creation and object tests with the type depending on qualified anchored types that involve deferred intermediate types are not supported on .NET.)
  
 
===Improvements===
 
===Improvements===
* library: Modified <e>ARRAYED_QUEUE</e> to avoid using an extra slot that did not keep any value and was used only for implementation purposes.
+
* base: Modified <e>ARRAYED_QUEUE</e> to avoid using an extra slot that did not keep any value and was used only for implementation purposes.
 +
* studio: added shortcuts for "Run workbench system" and "Run finalized system"
 +
* studio/debugger: added an option in the "Edit Expression" dialog to show the "full error message" (i.e: include the exception trace) when an exception occurs during expression evaluation. Then now by default, we keep only short description (otherwise this could been too slow), and on request the user can get the full error message.
  
 
===Feature removed===
 
===Feature removed===
Line 21: Line 79:
 
* compiler: Fixed test#incr168 when recompilation did not regenerate the code in some complex cases when features are modified deep in inheritance tree. It also fixes eweasel test#exec283 and addresses a consistency issue with the order of merging inherited assertion clause that would not trigger the same output if recompiled from scratch after some incrementality changes (see eweasel test#incr124).
 
* compiler: Fixed test#incr168 when recompilation did not regenerate the code in some complex cases when features are modified deep in inheritance tree. It also fixes eweasel test#exec283 and addresses a consistency issue with the order of merging inherited assertion clause that would not trigger the same output if recompiled from scratch after some incrementality changes (see eweasel test#incr124).
 
* compiler: Allowed manifest real constants to be assigned to REAL_32 entities without having the need to type the constant, that is to say `r_32 := 4.5' will now be accepted whereas before one had to do `r_32 := {REAL_32} 4.5'.
 
* compiler: Allowed manifest real constants to be assigned to REAL_32 entities without having the need to type the constant, that is to say `r_32 := 4.5' will now be accepted whereas before one had to do `r_32 := {REAL_32} 4.5'.
 +
* {{Red|compiler: Fixed test#runtime016 due to an improper optimization of the call {SPECIAL}.copy_data when inlining is enabled. It could cause a memory corruption.}}
 +
* debugger: fixed void-safe issue in execution record and replay mechanism.
 +
* compiler: Fixed bug#16626 bug that occurred when melted code called frozen code that called a melted agent triggering exception  (see test#incr348).
 +
* studio: Fixed issue with remaining popup window for grid's cell (bug#16646)
 +
* debugger: Fixed issue with execution recording GUI. It should always be disabled for dotnet, since it is not (yet) supported by the debugger (on eiffel/dotnet). (closing bug#16538 , bug#16520)
 +
* studio/debugger: Minor improvement to "unset" environment variable in execution environment (debugging). This add a "Unset" menu entry on RightClick
 +
* studio/debugger: Fixed issue when you have a variable prefixed with "&-" (i.e: marked to be unset at execution).
 +
* studio/debugger: Fixed regression "Keep Assertions Checking" settings for expression evaluation (now it works again)
 +
* debugger: Fixed bug#16598: Melted system execution stops for invariant violation, then resumes by itself
 +
* debugger: Fixed request bug#15991: Object Viewer selector always selects XML Viewer when I want the String Viewer
 +
* debugger: Fixed bug#16776: Debugger hang when evaluating /~ expressions
  
 
===User changes===
 
===User changes===
 +
* studio/breakpoints: now left clicking on breakpoint slot has effect on "button release event", moving breakpoints within the same feature is now possible with drag&drop (not anymore using Ctrl+Right-click)
 +
 
===Developer changes===
 
===Developer changes===
  
Line 60: Line 131:
 
*compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.
 
*compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.
 
*compiler: Fixed in void-safe mode conformance of ''detachable COMPARABLE'' to ''attached ANY''. Fixes updated eweasel test#conform001.
 
*compiler: Fixed in void-safe mode conformance of ''detachable COMPARABLE'' to ''attached ANY''. Fixes updated eweasel test#conform001.
*studio: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)
+
*debugger: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)
 
*debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint
 
*debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint
 
*runtime: Fixed eweasel test#exec323 where comparison using <= or >= in melted mode which involved NaN was not yielding the same result as in workbench mode.
 
*runtime: Fixed eweasel test#exec323 where comparison using <= or >= in melted mode which involved NaN was not yielding the same result as in workbench mode.

Latest revision as of 09:50, 14 July 2010

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 6.6.x Releases

6.6.8.3873 (July 14th 2010, Maintenance Release)

Bug fixes

  • C compiler: Added Windows SDK 7.1 release.
  • vision2: Create the menu even without a pebble. This fixes the problem on Linux contextual menu in the editor had gone.
  • vision2: Fixed an issue with EV_TREE, EV_LIST, EV_HEADER, EV_TOOL_BAR and EV_MULTI_COLUMN_LIST where setting a pebble on the control (not just the item) would allow pick and drop but the line drawn was restricted to the control. This was because of the new P&D mechanism without the hook, and like our previous fix on item, we have to disable the default processing otherwise the control is grabbing the focus.
  • studio/encoding: Fixed endianness issue on big endian machine. Fixed bug#16820. Removed useless locals.
  • studio: Call `create_target_menu' even when the pebble is void. This was the behavior before void-safty integration. Release pebbles to be detachable. Fixed bug#16892: Context menu in editor gone since 6.5!!!!
  • base: Simplified postcondition of `safe_less_than' to better reflect the contract of `<' as specified in COMPARABLE. It also let you redefine `safe_less_than' to mean something else than `<' in a descendant.
  • library: Updated syslog constant definition in process library to fix C compilation errors (bug #16917).
  • compiler: Fixed bug#16858 and eweasel test#final090 where a check instruction (aka guard) would not record the routines used in the expressions as to be recorded for dead code removal when check assertions are not kept in the code generation.
  • studio: Enable `is_pointer_sensitive' in {ES_POPUP_EDITOR_TOKEN_CONTEXT_BUTTON}. Now after editor contract window pop-up, the pop-up window will be closed immediately if user pointer leave the pop-up window area. Fixed bug#16862: Tooltip on feature declaration don't go away
  • compiler: Fixed bug#16883 by taking the actual type on evaluated anchor type since the latter can be anchored itself, but we need resolved type instead (see test#anchor034).
  • compiler: Redefined `instantiated_in' to make sure the qualifier is also updated (this fixes bug#16893 (test#incr359), bug#16876 (test#anchor031), bug#16884 (test#anchor035), bug#16887 (test#anchor038), bug#16890 (test#anchor040), bug#16897 (test#anchor041)).
  • debugger: Fixed bug#16838: User can bring up multiple breakpoint dialogs on same breakpoint
  • studio: Fixed bug#16831: Picking and dropping class from Features window into Editor tab clears Features window
  • compiler: Fixed bug#16878 returning false when comparing QAT with invalid actual type and avoiding using old actual type when setting the new one (see test#incr356).
  • compiler: Allowed compiling for 32-bit or 64-bit regardless of the underlying platform default of Mac OS X
  • compiler: Moved formal generic constraint checks before delayed type checks as the constraints are used to compute qualified anchored types that reference features renamed for a formal generic (see test#anchor025).
  • compiler: Taken into account features removed in a formal generic constraint (see test#anchor025).
  • compiler: Redefined features that are used in skeleton evaluation since the types of attributes may depend on formal generics and therefore cannot be evaluated on the actual type (see test#anchor025).
  • compiler: Changed code generation for qualified type descriptor to use full type byte code as the type of qualifier is actually nested and should be complete (this fixes bug#16848, test#anchor027).
  • runtime: Fixed a double free issue when the loop is entered a second time after freeing `rids', we should also reset `rids' so that it gets reallocated if needed and that we don't try to free it a second time.
  • compiler: Fixed eweasel test#exec327 where using the new check .. then .. end instruction would reset the `in_assertion' flag and in some code pattern causing infinite recursion when checking assertion because the reset caused potentially the same assertion to be reexecuted again.
  • compiler: Fixed bug#16855 by instantiating feature type in the qualifier type and making selective code generation in `generate_gen_type_conversion' depending on whether evaluation of the qualifier can be optimized or not (see test#final089).
  • studio: Display ignore contract violation dialog in application idle actions. Because on Linux platforms (using GTK), we cannot have an event loop within an event loop and thus cannot show a dialog while responding to the message from the debugger. Fixed bug#16836: Assertion violation in "check Assertion then" construct crashes estudio
  • C compiler: Added `-pipe' for MinGW on Windows to allow concurrent C compilation. Without it, it exhibits a bug in gcc where two instances will try to use the same temporary file.
  • vision2: Fixed an issue where pasting text into EV_TEXT_FIELD under CDE with Click to Type does not fire change_actions (bug#16056)
  • vision2: Using EV_PIXEL_BUFFER for `pixel_buffer_from_class_i' instead of converting from EV_PIXMAP. Fixed bug#16711: Wrong background color for icons of parent classes in the features tree
  • studio: Fixed bug#16707: New class is created in occupied tab
  • compiler: Fixed bug#16791 by avoiding instantiation of a feature type in the case when it is processed in the context of the current type (see test#anchor011).
  • compiler: Fixed bug#16797 and bug#16804 by reporting incorrect generic derivations used as a qualifier of a qualified anchored type (see test#anchor012, test#anchor017).
  • compiler: Previous commit forgot that `exclude' and `include' could actually be Void.
  • debugger/vision2: Implemented pnd drag delta handling to match the windows platform. The fixes the breakpoints bug #16808 that was recently introduced due to the differences in the two platforms.
  • studio: Fixed a crash in {EB_DEVELOPMENT_WINDOW}.relative_location_offset
  • studio: Remove the forced 6.3 compatible mode. We are now taking that from the ECF version. This prevents to be in 6.3 settings mode when using -compat in 6.6 when it just means take the default from the 6.5 release.
  • compiler: Fixed several bugs, related to the processing of qualified anchored types (bug#16798 (test#anchor013), bug#16799 (test#anchor014), bug#16800 (test#anchor015), bug# (test#anchor016), test#anchor018) by changing their

processing.

  • compiler: Introduced validity checks for intermediate types in QAT to report errors and stop processing as soon as an invalid type is detected (this fixes test#attach012). However error processing should be reviewed because it relies on attached error_handler that may be void sometimes.
  • compiler: Changed same_as to return false since non-evaluated types cannot be compared and this tells the compiler that a feature with such a type in a feature table cannot be used and should be rechecked (this fixes anchor012).
  • compiler: Fixed bug#16815: Feature call on void target in {CLASS_C}.inline-agent#1 of has_stable_attribute in EiffelStudio.
  • curl: Added CURLOPT_CUSTOMREQUEST
  • compiler: Fixed a bug with the backup mechanism when overriding a class from a library which is processed before any classes of that library, in such cases we were skipping the copy of the configuration file of that library to the backup folder, making it hard to reproduce bugs. It was reproduced thanks to bug#16687 backup.
  • compiler: Fixed bug#16819 by avoiding processing constant type as soon as its checking fails (see test#anchor019).
  • compiler: Avoided asking if other type is NONE when this other type is not valid (this addresses the issue of bug#16821, test#anchor354).
  • compiler: Supported processing of type NONE for which no feature is actually found (this fixes bug#16821, test#anchor354).
  • compiler: Added detection of the case when qualified supplier is changed to trigger recompilation of its client (this fixes bug#16792 (test#incr352), bug#16793 (test#incr353)).
  • compiler: Fixed bug#16824 by tracking the type of the anchor chain in the descendant (see test#anchor022).
  • compiler: Fixed bug#16839 by processing types mentioned in the qualifier part of a qualified anchored type so that any class types are in the system (see test#anchor024).
  • studio: Using "M" instead of "m". Now it's consistence with other shortcut strings in Eiffel Studio. Fixed bug#16833: Key binding for Maximize Editor Area shown as Ctrl+m instead of Ctrl+M


6.6.8.3315 (Final Release, May 26th 2010)

New features

  • base: Added a feature trim to the class RESIZABLE and its descendants to allow for minimizing the use of allocated storage.
  • studio: Allows users to double left click on the editor tab ribbon to create a new tab. The tab is created on the right, as that is where users click. Once the tab is opened then the address bar is focused and the contents removed. It's ready for editing.
  • studio: Implemented "Ctrl+ Enter" on address bar to open the class/feature in a new tab editor (if an editor with the current class/feature does not already exist).
  • studio: Handled mouse-middle-click to close pointed editor tab.
  • compiler: Supported new once per object.
  • debugger: Supported new once per object.
  • library: Enabled iteration (using across form of a loop) over ARRAYED_SET.
  • debugger: Added the possibility to copy, to the clipboard, the text representation of selected call stack elements (from the call stack tool) using Ctrl+C or Ctrl+Ins.
  • compiler: Supported qualified anchored types that may come in two flavours: like f.g.h, where f, g, h are feature names, and like {T}.a.b, where T is a type and a and b are feature names. (The current implementation has the following limitations: quailified anchored types that involve formal generics with multiple constraints are not supported, creation and object tests with the type depending on qualified anchored types that involve deferred intermediate types are not supported on .NET.)

Improvements

  • base: Modified ARRAYED_QUEUE to avoid using an extra slot that did not keep any value and was used only for implementation purposes.
  • studio: added shortcuts for "Run workbench system" and "Run finalized system"
  • studio/debugger: added an option in the "Edit Expression" dialog to show the "full error message" (i.e: include the exception trace) when an exception occurs during expression evaluation. Then now by default, we keep only short description (otherwise this could been too slow), and on request the user can get the full error message.

Feature removed

Bug fixes

  • compiler: Fixed test#incr168 when recompilation did not regenerate the code in some complex cases when features are modified deep in inheritance tree. It also fixes eweasel test#exec283 and addresses a consistency issue with the order of merging inherited assertion clause that would not trigger the same output if recompiled from scratch after some incrementality changes (see eweasel test#incr124).
  • compiler: Allowed manifest real constants to be assigned to REAL_32 entities without having the need to type the constant, that is to say `r_32 := 4.5' will now be accepted whereas before one had to do `r_32 := {REAL_32} 4.5'.
  • compiler: Fixed test#runtime016 due to an improper optimization of the call {SPECIAL}.copy_data when inlining is enabled. It could cause a memory corruption.
  • debugger: fixed void-safe issue in execution record and replay mechanism.
  • compiler: Fixed bug#16626 bug that occurred when melted code called frozen code that called a melted agent triggering exception (see test#incr348).
  • studio: Fixed issue with remaining popup window for grid's cell (bug#16646)
  • debugger: Fixed issue with execution recording GUI. It should always be disabled for dotnet, since it is not (yet) supported by the debugger (on eiffel/dotnet). (closing bug#16538 , bug#16520)
  • studio/debugger: Minor improvement to "unset" environment variable in execution environment (debugging). This add a "Unset" menu entry on RightClick
  • studio/debugger: Fixed issue when you have a variable prefixed with "&-" (i.e: marked to be unset at execution).
  • studio/debugger: Fixed regression "Keep Assertions Checking" settings for expression evaluation (now it works again)
  • debugger: Fixed bug#16598: Melted system execution stops for invariant violation, then resumes by itself
  • debugger: Fixed request bug#15991: Object Viewer selector always selects XML Viewer when I want the String Viewer
  • debugger: Fixed bug#16776: Debugger hang when evaluating /~ expressions

User changes

  • studio/breakpoints: now left clicking on breakpoint slot has effect on "button release event", moving breakpoints within the same feature is now possible with drag&drop (not anymore using Ctrl+Right-click)

Developer changes

6.6.8.2636 (March 22nd 2010)

New features

  • base: Added support for correct mismatch in the SED serialization cluster.

Improvements

  • runtime: When twinning a SPECIAL instance where `capacity' is much higher than its `count' the new copy will have its `capacity' set to `count'.
  • studio: added new Error List tool preference "tools.error_list.show_tooltip", so end users can specify if rich tooltip window should be shown automatically in the Error List tool.

Feature removed

Bug fixes

  • compiler: Fixed bug#16545 when compiler did not detect that a new file does not contain an expected class after referencing it in a system (see test#incr340).
  • compiler: Fixed several recompilation bugs (bug#16546, bug#16547, bug#16553) for cases when a feature with assertions is removed from a parent class while a child class remains unchanged (see test#incr341, test#incr342, test#incr343).
  • studio: Fixed bug#15788 (bug#16209, bug#16278) Error tooltip flashing when mouse outside of EiffelStudio
  • studio: Fixed bug#16543 Searching in feature Implementers or Descendants does not scroll to show match
  • compiler: Fixed recompilation bugs (bug#14525, bug#16052) that caused compiler crash or incorrect error message when checking inherited code of a client that refers to a feature that is (re)moved (see test#incr293, test#incr338).
  • delivery: Ensured that the void-safe versions of precompiled libraries are indeed included.

User changes

  • studio: The experimental mode is now gone, it has become the default. To have access to the default mode of 6.5, one has to use the compatible version.

Developer changes

6.6.8.2484 (March 1st 2010)

New features

  • Compiler: Added a new option Total Order on REALs which let you have NaN equal to NaN and NaN being the smallest number of all. This option is disabled by default as it could break existing code. The rationale for this option is to have contracts work properly when manipulating the NaN value and not getting spurious contract violation.
  • Compiler: Added the ability to version a class for storable. It is done via the note clause of a class, i.e. note storable_version: tag. When the storing and retrieving system have a different version a mismatch is triggered even if they look to have the same content.

Improvements

  • studio: added the inherit clauses in the "Features tool" (to ease navigation in the edited class)
  • compiler: Added support of transient attributes for .NET. Added queries in INTERNAL to find out the transient attributes. Extended the Eiffel serialization SED to support them.

Feature removed

Bug fixes

  • compiler: Fixed eweasel test#exec324 where a recent optimization would optimize away the code generation of the target of a call to `do_nothing'.
  • compiler: Fixed in void-safe mode conformance of detachable COMPARABLE to attached ANY. Fixes updated eweasel test#conform001.
  • debugger: do not open more than one breakpoint dialog on the same breakpoint (avoid conflict)
  • debugger: Fixed bug#16618: Setting conditional breakpoint sometimes sets unconditional breakpoint
  • runtime: Fixed eweasel test#exec323 where comparison using <= or >= in melted mode which involved NaN was not yielding the same result as in workbench mode.

User changes

  • studio: the format for layout has changed so you might end up having to delete the EiffelStudio private files to get the correct layout.

Developer changes

6.6.8.2214 (February 1st 2010)

New features

  • compiler: Supported new variant of a check instruction that is not subject for assertion monitoring settings (in other words the check cannot be turned off) and can be used to introduce a new void safe scope of a read-only or object test local:
check Assertion then
   Compound
end

Improvements

  • runtime: Redone some of the multithreading internals of the Eiffel runtime to make it easier to add platforms and to ensure the same behavior on various platforms.
  • runtime: On Windows, the MUTEX class is now internally using a CRITICAL_SECTION object which is much more efficient especially with multiprocessors.
  • base: Added support for nan, negative_infinity, positive_infinity and their `is_xxx' corresponding queries.
  • base: Allowed {ARRAY}.force to be used with arrays of attached types when index is either `lower - 1' or `upper + 1'. This let you progressively fill an empty array from 1 to the expected count.

Feature removed

Bug fixes

  • compiler: Fixed eweasel test#agent001 and test#agent013 by preventing wrong optimization when call to `{ROUTINE}.call' or `{FUNCTION}.item' are subject to dynamic binding.
  • compiler: Fixed bug#16593 where finalizing twice in the same sessions with many changes in the system could cause the compiler to crash during degree -3.
  • studio: Fixed editor refresh issue when saving modifications in the Contract Tool.
  • studio: Fixed catcalls when building the Contract Tool.
  • studio: Fixed bug#14857 Store the external commands in ISE User files
  • studio: Fixed bug#16410 Error List window comes up blank on error if auto-hidden when estudio started
  • debugger: Fixed a hang in EiffelStudio when inspecting a different threads than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux)
  • runtime: Made sure to use recursive mutexes on all our platforms.
  • runtime: Fixed eweasel test#store029 where retrieving a storable made by 6.3 or older could fail with a mismatch error when there is actually no mismatch.
  • net: Fixed tftp_server_console sample so that it uses a multithreaded precompilation of EiffelBase and fixed a precondition violation when receiving a GET command.
  • net: Fixed precondition violation in {ARRAY}.force when compiling EiffelNet in void-safe mode.
  • net: Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries `read_command_list', `write_command_list' and `exception_command_list' are now obsolete and should not be used.
  • base: Fixed ARRAY2 so that it can be used in void-safe mode too. Improved ARRAY2 resizing efficiency.

User changes

  • thread: Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition `is_launchable' and a status report `is_last_launch_successful' to help finding out if a thread was really launched.
  • base: Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.
  • base: Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.
  • compiler: Now the compiler will report usage of is keyword as obsolete in transitional mode and will reject it in standard mode.

Developer changes