Difference between revisions of "EiffelStudio 6.2 Releases"

(Improvements)
(New features)
Line 6: Line 6:
 
Placeholder for new stuff since last intermediate release.
 
Placeholder for new stuff since last intermediate release.
 
===New features===
 
===New features===
 +
studio: Integrated Eiffel Information System (incoming).
 +
 
===Improvements===
 
===Improvements===
 
*base: improved speed of `read_stream' in FILE so that it used underlying `fread' once rather than calling `getc' for each requested character. Our benchmarks show that you can save up to 2s for 1000 calls.
 
*base: improved speed of `read_stream' in FILE so that it used underlying `fread' once rather than calling `getc' for each requested character. Our benchmarks show that you can save up to 2s for 1000 calls.

Revision as of 01:43, 6 April 2008

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

6.2.x

Placeholder for new stuff since last intermediate release.

New features

studio: Integrated Eiffel Information System (incoming).

Improvements

  • base: improved speed of `read_stream' in FILE so that it used underlying `fread' once rather than calling `getc' for each requested character. Our benchmarks show that you can save up to 2s for 1000 calls.

Feature removed

Bug fixes

User changes

Developer changes

6.2.7.2906 (March 30th 2008)

New features

  • Added new light batch compiler `ecb'. It provides the same features as `ec' when using the batch mode. Currently projects compiled with `ec' are not compatible with those compiled with `ecb'. The main difference between the two is that `ec' is compiled with exception trace and multithreading support which could slow down the compiler by a factor of 20 to 40% depending on your platform.

Bug fixes

  • compiler: fixed eweasel test#final046 by avoiding useless creation of temporary objects during dynamic dispatch. It can also dramatically speed up certain kind of code; on the compiler itself, the speed up is about 8-10%. In the worst case scenario it is 400% or more. Note this bug was introduced in version 6.0. Compared to 5.7, in 6.2 the worst case scenario is still about 10% slower.
  • debugger: Added support for object test local variables in expression evaluation.
  • debugger: Fixed issue bug#14133: Run Finalized actually runs W_Code

6.2.7.2842 (March 24th 2008)

Improvements

  • studio: Restructures layout of user files to support unification and user-override files of Eiffel compiler installation files.
  • studio: Relocated default Eiffel projects location into the user files folder (windows and mac only)
  • debugger: catcall detection at runtime are now handled by the Eiffel debugger in the UI.
  • compiler: reduced size of generated executable by about 2%.

Bug fixes

  • finish_freezing: Now supports latest 6.1 version of the Windows SDK.
  • compiler: fixed an issue with catcall detection at runtime where one kind of harmful catcalls where not reported at runtime (when routine's arguments involve `like Current' and there is some reattachment to an attribute). This fixes eweasel test#catcall006.
  • compiler: ensured that catcall detection also works with melted code.
  • compiler: fixed eweasel test#final043 where inlining of a feature on a target which is the label of a named tuple would crash the compiler.
  • compiler: various bug fixes with respect to inlining (fixes eweasel test#final042 and test#final047)
  • compiler: fixed performance issue with {SPECIAL}.clear_all when handling a special of reference. It caused eweasel test#exec040 to take a long time instead of just a few seconds.
  • runtime: fixed a catcall when comparing using `=' an expanded with something else of a different type, instead of reporting False (this addresses eweasel test#exec255 which was broken due to the new catcall detection).

6.2.7.2684 (March 11th 2008)

New features

  • base: Added `deep_physical_size' in INTERNAL to compute the size of an object and all its dependencies.
  • compiler: Added detection of harmful catcall at runtime (harmless one are currently ignored).
  • debugger: display the `deep_physical_size' of an object.

Improvements

  • studio: Optimized adding of items to the Error List by circumventing an expensive search when adding single items.
  • studio: Error list items context now shows the full group name but after CLASS.feature because it is of lesser importance.
  • studio: Enhanced some errors to report better context information.
  • studio: Enhanced obsolete warnings to report the obsolete message.
  • compiler: Improved number of dynamic to static bindings in finalized code. Improved quality of inlined code for reducing even more of the dynamic calls.

Feature removed

Bug fixes

User changes

  • debugger: added a toggle tool bar button to "Ignore (or not) breakpoints" (no need to interrupt anymore for that).

Developer changes

  • ESS: Event list service items can now be invalidated, for future use.
  • ESS: Added code template catalog service and code template model.

6.2.7.2567 (March 3rd 2008)

New features

  • ESS: Added logger service for logging internal messages.
  • studio: Added logger tool to debug menu for viewing logged messages.
  • debugger: Now you can disable/enable selected breakpoints by using key [Space], and delete using key [Del] in the breakpoints tool.
  • debugger: Added "Object internals" to object viewers list to view some INTERNAL data.

Improvements

  • compiler: reduced the size of the AST stored in memory during a compilation by 20/25% which results in a memory usage reduction for EiffelStudio of about 15%. For example when compiling EiffelStudio on Windows 64-bit, it was taking 920MB with the previous version, and now it would be 800MB.
  • Removed the generation of .x files in finalized mode to make it easier to debug the C code of finalized application. It will also save some disk space in the EIFGENs since we do not need to concatene the .x files in large big .x files.

Bug fixes

  • Debugger: Fixed part of bug#14013: Ctrl-RightClick is not supported in some tools that allow PnD for debugging tools based on ES_OBJECTS_GRID

User changes

  • base: Changed `physical_size' in INTERNAL to return the real allocated size of an object along with its header size.

Developer changes

  • ESS: The event list service now supports non-persistent items for bulky item pushers.

6.2.7.2437 (February 25th 2008)

New features

  • studio: Integrated the contract viewer into the editor.
  • studio: Implemented a inherited/original feature comment specification so there is no need to replicate comments.
  • studio: All formatter tools show feature inherited/original comments

Improvements

Feature removed

Bug fixes

  • compiler: various bug fixes with respect of handling of expanded generic classes used in generic classes.
  • compiler: fixed eweasel test#melt081 (bug#13900) where having a redefined routine involving an anchor to a non-existing feature would crash the compiler instead of reporting a VEEN error.

User changes

  • base: Changed signature of {SPECIAL}.same_items and {SPECIAL}.all_default to take an extra argument. Our analysis shows that it was only used by ARRAY and that it should be harmless. If you have a compilation error, simply add `0' as first argument of your call.

Developer changes

  • compiler: Changed the internals of the compiler to remove TYPE_I and descendants (however kept TYPE_C and descendants) to merge them with TYPE_A. This avoids code duplications and provide more features at code generation time such as cheap conformance check.
  • compiler: Changed the code generation so that encoded names are consistent as: Xyyy[_zzz] where `X' stands for the kind of name (feature, polymorphic table, address table), `yyy' and `zzz' are some IDs to identify the construct (for routine is is type ID followed by body index). This change enables in finalized mode to describe names more than 32767 alive types and 131071 generated features. However the number of types is still limited to 32767, possibly we will increase this to 65535 in 6.2 after reviewing the runtime code for proper typing. Once this is done, we can configure it to either 2^16 ot 2^32 during the compilation of the runtime.
  • debugger: Added breakpoint when hits action to disable/restore assertion checking.
  • debugger: fixed issue related to execution recording: bug#13951: Operating system signal in [DEBUG_EXT.send_rqst_3_integer] in EiffelStudio.

6.2.7.2277 (February 12th 2008)

New features

Improvements

  • base: PLATFORM has a new query `is_mac' for detection of Darwin-base platforms.
  • studio: The exception submit dialog now retains remembered login between EiffelStudio sessions.
  • studio: Rendered the debug/editor transition window better, using ESF popup windows.
  • studio: disabled menu entries have a nice disabled icon.

Feature removed

Bug fixes

  • studio: Error list tool tips now disappear when the row is removed.
  • studio: Fixed ESF dialog ENTER key handling for buttons.
  • cURL: Library now supports the MacOSX's use of .dylib instead of Unix .so files.
  • compiler: Fixed eweasel test#time001 where built_in `infix/prefix' routines were not processed. In the above eweasel test, `BOOLEAN.infix "or"' was always returning False regardless of the value of Current or its argument.

User changes

  • debugger: data (breakpoints, profiles, ..) are now save on a per project basis
  • debugger: the breakpoints tool offers now sorting and filtering on tags
  • debugger: execution option dialog had been improved, discardable dialog when closing, no need to save when you keep the dialog open.

Developer changes

  • ESF: Event List service tool foundations can now make use of partially dynamic lists for speed optimizations, just by enabling it on the event_grid.
  • ESF: Added *temporary* widget propagation routines to the tool panel foundations copied from core tool foundations. The tool panel foundations will be switches to inherit one of the tool foundation classes in the future.
  • studio: Feature relation tool view modes can now be switches through the tool proxy, as well as setting a stone + view mode.
  • studio: Added file modification notifier service.
  • compiler: One can use the AST_COMPILER_FACTORY alone to compile Eiffel code (no reliance on AST_ROUNDTRIP_COMPILER_LIGHT_FACTORY.
  • debugger: data is now saved at the same location as the project location, rather than in a file in the EIFGENs directory.
  • debugger: redesigned the way we launch execution.

6.2.7.2075 (January 28th 2008)

New features

Improvements

  • debugger: support Exception As Object (i.e: show the exception object, updated the exception handling mechanism)

Feature removed

Bug fixes

  • studio: Fixed issue with displaying the address bar on the metric tool.
  • studio: Added new intelligent popup editor tokens for usability/annoyance feedback.

User changes

Developer changes

6.2.7.2001 (January 22nd 2008)

New features

Improvements

  • compiler: Speed up compilation time at degree 3 (and degree 4 to some extend) by a significant factor for large systems. The more classes you have, better is the improvement. Speed up code generation (degree -1 and -3) as well by a smaller factor.
  • studio: Pop up address bar and completion window respects maximized IDE window borders, when using multiple screens.

Feature removed

Bug fixes

  • compiler: Fixed compiler crash when compiling a class where a type used in a signature of a feature has the wrong number of generic parameters. Fixed eweasel test#incr285.
  • compiler: Fixed an incorrect code generation for the dynamic binding of routines defined in generic classes (eweasel test#exec272 and test#final039) and attribute access in general (eweasel test#final039).
  • compiler: Fixed an incorrect code generation for `is_equal' in ANY when exception trace is off which could cause a memory corruption.
  • library: Made EiffelCOM compilable (it was missing from the previous 6.2 releases due to an incompatibility with Exceptions as objects).
  • base: Made STORABLE inherit from EXCEPTIONS again to avoid breaking existing code.
  • vision2: Added hide actions to EiffelVision 2 windows.

User changes

  • runtime: Changed the usage of `eif_adopt', `eif_protect', `eif_wean', `eif_freeze' and `eif_unfreeze' so that they can be used in concurrent thread. Meaning that it is safe to use them as long as the argument is different in various threads.

Developer changes

  • Debugger: Added hidden breakpoints.
  • ESF: Popup window foundations now respect screens and widgets. The popup automatically repositions itself when a popup widget is displayed/hidden.
  • studio: Integrated handler for displaying smart token context buttons based on editor tokens.

6.2.7.1786 (January 7th 2008)

New features

  • studio: Error list tool now supports multiple selection, for better copy to clipboard usage.
  • compiler: Exceptions as objects are now implemented.
  • compiler: Generated code is about 3-4% faster and generated executable about 2-3% smaller.
  • debugger: new breakpoint editor dialog, and new when hits actions, including filter using tags

Feature removed

Bug fixes

  • runtime: Fixed some issues with storing and retrieving of expanded generic types.

User changes

Developer changes

  • studio: Added new session manager service for data persistence between running instances of EiffelStudio.
  • studio: Improved selection handling in some tools and in common implementation.
  • studio: Debug-memory tool is now hooked into the session manager service to retain selected buttons and filter information.
  • studio: Integrated new help providers service. No help providers implemented yet.
  • studio: Switched over features tool to use ESF and new optimizations.