EiffelStudio 6.0 Releases
Revision as of 01:49, 9 March 2007 by Alexander Kogtenkov (Talk | contribs) (→New features: Added a note on reattachment under .NET.)
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.0.x Releases
6.0.x
Placeholder for new stuff since last intermediate release.
New features
- studio: Configurable shortcuts
- studio: Auto-completion after bracketed expression. i.e. arr [i].*
- compiler: Supported reattachment of generic derivations with expanded parameters to generic derivations with reference parameters on .NET.
Feature removed
Bug fixes
- studio: Fixed a bug that Ctrl + f4 didn't close debugger tools (call stack, object, watch and thread)
- studio: Fixed bug#12216 that %B from editing text was taken as an instruction.
- studio: Fixed bug#12208 of search report display issue. Improved its mouse/keyboard behaviors and interface a little bit.
- studio: Fixed bug#12202 that linked tools did not update when auto hiding.
User changes
6.0.6.7079 (March 5th 2007)
Bug fixes
- studio: Fixed issues with the way we launched finish_freezing.exe on Windows, we were not protecting the path to the executable against white spaces.
- debugger: Fixed issue which would prevent debugging if ISE_EIFFEL has spaces in it.
- install: Fixed incorrect shortcuts on Windows.
6.0.6.7057 (March 3rd 2007)
New features
- compiler: we are now using FreeELKS as a replacement for EiffelBase
- estudio: Made Window Eiffel Studio splash screen beautiful.
Bug fixes
- install: (Windows) fixed fatal error bug#12146 when attempting to browse for a folder.
- install: (Windows) fixed radio button background color different as best possible given the limitations of MSI.
- install: (Windows) pressing Back on the installed when on the Precompilation Choice page goes to the correct parent page instead of the Configure C/C++ Compiler page.
- compiler: Fix bug in .NET resx => resource generation by the compiler when using resx files with relative paths.
- compiler: Adapted the compiler so that ISE_EIFFEL does not need to be defined with a short path name on Windows, since some file systems can disable support for short path
names.
- studio: various bug fixes with the docking.
- vision2: Fixed issue where hiding a widget in an EV_FIXED and changing its position would not be reflected when showing the widget later.
- base: Fixed issue with LINKED_QUEUE.twin which would violate its invariant.
- base: Revisited contracts of LINEAR_ITERATOR.
- docking: bug#11981: Cannot put window from another application in front of undocked window
- estudio: bug#12076: Refresh issue on Start/Continue button
- docking: bug#12096: Sliding panel tools cause an unsightly redraw when revealed when on the right side on gtk
- docking: bug#12098: Disable text in docking toolbar on linux doesn't look disabled
- docking: bug#12099: Particular docking layout crashes estudio on exit
- docking: bug#12111: Toolbars disappear after running debugger
- docking: bug#12067: Estudio crash in {SD_TAB_STATE}.make called from move_to_zone_internal
- docking: bug#12126: Maximizing tool then closing it closes other tools and makes them unavailable
- docking: bug#12132: Estudio doesn't restore normal/debug layouts within same session
- docking: bug#12138: Sequence of saving, opening and resetting tools layout causes crash
- docking: bug#11984: Text on many buttons in estudio main window cut off at bottom
- vision2: bug#11989: Unintuitive behavior when trying to move an undocked window
- vision2: bug#12071: Auto Hide of window before pick ends hangs estudio, then F7 crashes it
- vision2: bug#12143: Window titles in title bar not visible when window has focus
User changes
- install: (Windows) removed information, on the welcome page, about setting up a C/C++ compiler if a compiler is detected.
- estudio: Improved background color of Linux editor place holder zone.
Developer changes
- docking: Added proprogate accelerator in SD_DOCKING_MANAGER.
- docking: Added SD_CONTENT.update_mini_tool_bar_size.
6.0.6.6895 (February 25th 2007)
New features
- Added the feature requested at bug#12046 that Ctrl+F3 searches current word if no text is selected.
- Internationalized choices in interface.development_window.ctrl_right_click_receiver and tools.search_tool.init_scope.
- debugger: Added "rescue" indicator in call stack tool's grid.
- debugger: Added the possibility to evaluate an instruction with the debugger (i.e: procedure call).
- compiler: Support for FreeELKS as a replacement for EiffelBase.
- studio: Now we can exit directly from debugging mode, no changing to normal mode needed.
- docking: SD_TOOL_BAR_CONTENT has new feature "unique_title" for store data, and using feature "title" for display.
- install: (Windows) Installer detects and configures a resident VC/VC++ compiler and provides/hides options based on what it found.
- install: (Windows) Precompilation is disabled if a VC/VC++ could not be configured to prevent creation of bad precompiled libraries.
- install: (Windows) x64 version no longer displays the option for installing the Borland C compiler because it's for x86 compilations only.
- install: (Windows) In the event of no C/C++ compiler found help is now link-provided to obtain a the free Windows SDK.
- install: (Windows) new installers with compact look and feel and better auto-configuration.
Bug fixes
- studio: Fixed bug#5437 that Shift+End selects too much text.
- studio: Fixed the bug that menu commands like Cut, Copy, Paste and Select All and sub commands of "Search" didn't work consistently as their shortcuts did. i.e. "Select All" always selected texts in main editor, but Ctrl+A did correct thing that was select all texts in the editor where focus was.
- studio: Fixed a bug that when dropping a stone to the editor, confirmation on saving a read only class didn't prevent the stone from loading, which means that the modified class got lost in this case.
- studio: Fixed bug#12050 that EiffelStudio crashed when trying to save a file that you didn't have write access to. Open a Save As dialog if .swp file is not creatable.
- studio: Fixed bug#12053 that Toggle Line Numbers and Go to didn't show correct sensitivity.
- studio: Fixed bug#12029 that es crashed when reopening ES with general.locale changed from English to Chinese.
- studio: Fixed bug#12061 that synchronization button not showing the proper tool. Now we try to synchronize the feature displayed in the combo box. (We only synchronized the stone.)
- studio: Fixed a crash when updating viewpoints.
- studio: Fixed bug#12068 and bug#12069, crashes when there was no editor.
- debugger: fixed issue with native_array unable to be resized with slices tool. (dotnet debugger)
- compiler: Fixed bug#11936 where namespace names included the cluster name when a cluster defined a namespace.
- studio: Fixed bug#11987 that Closing Class tab crashes estudio after move to Clusters
- studio: Fixed bug#12054 that Crash when select Editor window after exiting debugger
- studio: Fixed bug#12000 that Particular docking layout causes estudio to crash at startup
- studio: Fixed bug#11998 that Wrong tooltips on many Project tool bar buttons - say Show/Hide
- studio: Fixed bug#11873 Breakpoint tool content not refreshed when switching to debug mode
- docking: Fixed bug#11960 Alignment issues
- studio: Set docking window title bar height, tool bar height a little bit bigger for Linux specially.
- docking: Make hide tab indicator correct and tool bar drawing style correct for Linux implementation.
- studio: Fixed bug that hidden tab dialog position not correct on Linux.
- studio: Fixed bug that minimum height of docking (not tabbed) editor not correct on Linux.
- docking: Fixed bug that select a tab from hidden item drop down menu, SD_CONTENT.focus_in_actions not been called.
- docking: Fixed bug that close button of editor tab position not correct if not enough space.
- docking: Fixed bug that close button of editor tab state not updated correctly sometimes.
User changes
- debugger: the call stack tool now display a special icon when on feature with rescue cause.
- studio: Changed shortcut for Cluster tool to Ctrl+Alt+U.
- studio: Fixed bug#11998: Wrong tooltips on many Project tool bar buttons - say Show/Hide
- studio: Fixed bug#12048: Please improve the Debug | Tools menu
Developer changes
- studio: Improved the way of saving context session data. We save ids of the feature/class targeted in tools.
6.0.6.6595 (February 11th 2007)
New features
- compiler: (windows) finish_freezing.exe now looks for the installed Windows SDK recently released from Microsoft. If installed, there is no need to perform any manual C-compiler configuration.
- studio: Dependency tool tab receives stones.
- build: Code generation will includes the facility of closing the application when last window is closed.
Bug fixes
- studio: Fixed bug#12016 where EiffelStudio would crash when trying to debug an application after cancelling a finalization.
- debugger: fixed "restart" feature which was broken in last release.
- debugger: fixed "DEBUG_OUTPUT" processing in debugger for dotnet system.
- debugger: fixed issue with "do not close ecdbgd" when the user decides to reuse the same "ecdbgd" process, be sure to reuse it.
- debugger: fixed bug#11928 and more general issue with exception on framework .NET 3
- studio: Fixed bug#11969 that diagram tool did not link to the editor (Neither dependency tool).
- studio: Fixed bug#12003 that Pick and drop of a parent class in the feature tool targeted to class view instead of showing ancestor.
- studio: Fixed bug#12018 that changing shortcut preference of external commands crashed es.
- studio: Improved history behaviors mostly according to History behavior except the preference.
- studio: Fixed a crash that opening ES with a group opened last time closing.
- studio: Fixed the bug#11959 that after refactoring a class with file name changed was not correctly reloaded.
- studio: Fixed bug#12002: Boolean Preferences cannot be edited via the keyboard
- studio: Fixed bug#12006: Shortcut Preferences cannot be edited via the keyboard
- studio: Fixed bug#11827: Extra padding on right for "Customize" toolbar menu
- studio: Fixed bug#12005: Moving tabs around issue with metric
- studio: Fixed bug#11814: Persistent redraw issue
- studio: Fixed the bug that first time tool bar floating, the width is not correct.
- studio: Fixed bug that favorite tool only can show in normal mode or debug mode.
- build: Fixed crash when generating code which included a combo box in read-only mode.
User changes
- studio: Changed shortcut of showing Diagram tool to Ctrl+Alt+I.
- debugger: add possibility to continue on conditional breakpoint evaluation failure
- debugger: Get rid of useless "Attributes" row in debugger's objects grids (This makes display less lighter).
- debugger: now the "Once routines" also show states of "once procedures" and not only "once functions".
Developer changes
- studio: Now we store in session data class/group IDs from EB_SHARED_ID_SOLUTION instead of class 'file_name's or group names which could cause a problem that moving a project lead to class missing and a problem wrong group returned (many groups with the same name).
- studio: Made fake editors for clusters if hidden when opening.
6.0.6.6451 (February 4th 2007)
New features
- debugger: now it is possible to force the environment to stay in debugger mode.
Bug fixes
- runtime: Fixed a memory corruption which could occur when performing a deep_twin on an object whose graph contains a TUPLE object. See test#tuple006.
- runtime: Fixed issue when retrieving 64-bit storables on 32-bit machines. It requires a regeneration of the 64-bit storables if one wants to retrieve them on 32-bit machines. Fixed bug#11744.
- studio: Fixed bug#11848 and bug#11939 related to the `Debugging Options' dialog which could randomly crash (related to test#tuple006 issue).
- studio: Fixed `on_text_fully_loaded' crash (bug#11943, bug#11938 and bug#11937).
- EiffelStore: Fixed ODBC on Linux.
- debugger: SPECIAL[SPECIAL[..]] is fully supported now by the debugger.
- studio: Fixed bug#11761, bug#11865 and bug#11866, general.locale didn't initialize properly. "Unselected" entry was added.
- studio: Corrected current output codepage/charset for command line ES.
6.0.6.6309 (January 27th 2007)
New features
- studio: Finished internationalizing starting dialog, wizards.
- studio: Integrated Smart Docking library.
- studio: Integrated tab editor mechanism.
- studio: Added preference "Maximum processor usage" to dictate the maximum number of processors/cores to use when compile c-code.
- EiffelWizard: Introduced i18n library to make it possible to display in different languages.
- compiler: .NET Enums are can be automatically converted to INTEGERs
- compiler: indexing tags interface_metadata and class_metadata are supported on feature level like this is done on class level and allow to specify custom attributes for associated methods only in interface type or only in implementation type.
- compiler: Static access on external routines is allowed even if not marked frozen (this simply applies a relaxed rule that was adopted by ECMA).
- debugger: dropping feature or class stones on breakpoints tool to add related breakpoint
- debugger: enhanced breakpoint mechanism by adding print message, hit count (condition), and provide "Is True" and "Has Changed" condition.
- studio: Integrated encoding library and internationalized part of batch compiler.
- base: Added facilities to read/write REAL_32 and REAL_64 values in big and little endian format in MANAGED_POINTER
- net: Updated reading routines of EiffelNet so that for all basic types they would read all the required bytes, not just stop after the first reading. This is important as in some very bad network situation or if you have some signals you could mess up the reading by only reading half of the expected bytes.
Bug fixes
- studio: Fixed bug#11760 that replacing on empty result crashed es.
- studio: Auto-complete members for open target agents have been corrected. bug#11767.
- studio: Fixed bug#11772 that a crash occurred while renaming clusters in property tool.
- compiler: Fixed bug causing test#dotnet046 to fail, now functions that are .NET properties can be called and executed from client code.
User changes
- studio: Added new docking feedback indicators.
- compiler: added conversion of TYPED_POINTER to POINTER before reattachment to reference entity so that the behaviour is the same in classic and .NET modes
- compiler: All versioned COM import interfaces now have versioned interface member names based on the trailing version number of the interface name, as this meta information is not available in any other way. This greatly improves the versioned names and makes implementing interfaces much easier.
- compiler: The unique keyword will yield a syntax warning if enabled.
- debugger: improved cosmetic of debugger's exception handling dialog
- base: Changed INTERNAL so that it does not have the `is_pre_ecma_mapping_disabled' attribute. If you were setting it to True, you should instead create an instance of ECMA_INTERNAL (fixes bug#11792).
Developer changes
- debugger: refactored breakpoints and exceptions processing for easier integration of other projects on debugger.
- compiler: updated compiler to compile FreeELKS library, however it cannot yet be executed.
6.0.65740 (December 25th 2006)
New features
- debugger: console based debugger is now working for classic, dotnet, on windows and unices (-debug or via -loop : still experimental)
Feature removed
Bug fixes
- compiler: fixed a bug in .NET consumer that can cause some assemblies to be consume infinitely.
- compiler: fixed a .NET bug that prevents System.Windows.Forms.Panel from being compiled correct and subsequently causing a compilation to fail, due to incorrect an mapped inherit property and assigner. This addresses test#dotnet043.
- compiler: Fixed bug#11758 for eweasel test#incr279, where the compiler would crash when generating the call to Precursor when both the current class and the parent class had their number of formal generics changed.
- compiler: Fixed bug#11766 for eweasel test#term146 and test#incr129 where the compiler would crash at degree 4 when checking the conformance of a feature, and the signature involves a type which have an incorrect parent hierarchy (i.e. one parent does not have the right number of actual generic parameters).
- store: Fixed bug#10523: if you create a DB_REPOSITORY before being connected to the database, some of the queries made on the database are not returning the proper result in ODBC(e.g. odbc_sensitive_mixed will return 0 instead of 3 for an ORACLE database). By adding the precondition we nicely solve the problem by forcing client to connect first before creating an instance of DB_REPOSITORY.
- store: Fixed some issues related to the new implementation of expanded semantics which would break some introspection part of EiffelStore.
- favorites: fixed bug#11745 "feature item" favorites were being lost on restarting EiffelStudio
- gui: fixed bug#11749 with debugger's grid being empty.
- debugger: fixed bug#11755: empty string with huge capacity were slow to be displayed.
- debugger: improved display of objects tool header bar. (minor)
User changes
- base: sped up {SPECIAL}.copy_data which was not inlined.
Developer changes
6.0.65604 (December 17th 2006)
New features
- compiler: improved backup mechanism so that overridden classes are copied in the library where they are defined (they were previously copied in the library where the override cluster was defined).
- studio: Integrated the internationalization library. Added a preference named "general.locale" to switch among languages. English and Chinese are available for the moment
- debugger: added auto expressions on watch tools
- studio: Added metric history support. Calculated metrics with their inputs can be sent into history so they can be recalculated afterwards.
- general: Revision number of EiffelStudio has changed because we reached the limit set by most OS for the revision (65535). So now it is split into revision.build, that is to say rev 65570 will read 6.5570.
- debugger: added an experimental console based debugger.
Bug fixes
- compiler: Fixed issue with inline agents where if you have one and during a compilation from scratch you have a compiler error, then fixing this error and recompiling, it would crash when melting or freezing (test#incr277).
- compiler: Fixed issue with C compilation linking error when a generic class which have an invariant clause has its formal generics changed (test#incr278).
- compiler: Fixed C compilation error on Windows for trying to compile empties Cxxx directories (test#ccomp061).
- compiler: Fixed incorrect code generation of agents on attribute when target is open (test#exec264).
- compiler: Fixed incremental bug when an agent creation based on a feature whose signature changes for less arguments (test#incr276).
- compiler: Fixed a backup creation bug when two classes from the same cluster/library have the same original file name, the backup would only contain one or the other because we use the original file name. Now we use the original class name.
User changes
- base: Sped up HASH_TABLE iteration and lookup by about 8% or more.
- base: TUPLE can now compare items using reference equality (=) or object comparison (is_equal).
- vision2: Changed behavior of {EV_TITLED_WINDOW}.raise to always make sure the window is visible on screen (show if hidden, restore if minimized).
- vision2: Fixed behavior of is_show_requested and is_displayed for EV_GRID and its items so that it conforms to the widget behavior in Vision2.
- wel/vision2: Raised compatibility bar to Windows 2000 or greater. No more support for Windows 98 or NT 4.0
- dotnet: Renamed SYSTEM_ATTRIBUTE into NATIVE_ATTRIBUTE for consistency reasons.
Developer changes
- debugger: deep refactoring (reduce the number of onces, renamed and moved some debugger related data)
- studio: to help track incremental compilation bugs, we build a replay backup window that given a backup directory will go through each compilation and perform them the way it was done by the end user.
6.0.65344 (December 3rd 2006)
New features
- compiler: A root type can now be a generic derivation.
- studio: Project settings such as arguments/working directory/location are now stored in a user specific location that does not depend on the UUID of the project, but on its path.
- compiler: Integers can now also be specified with binary and octal representation
- compiler: Manifest characters can now also be specified with binary, octal and hexadecimal representation. Manifest characters can be specified up to 32 Bit.
- compiler: Possibility for "hidden/implementation" clusters in libraries, clusters that are not accessible if the library is used (like libraries in libraries are not accessible).
- compiler: Added supplier_precondition assertion level that enables to only check preconditions of trusted libraries.
- debugger: New Debugging options dialog (to set the arguments and other)
- compiler: Don't do an expensive degree 6 when we freeze or finalize.
- compiler: Newly added clusters are recursive by default.
- studio: Favorites are now stored in the user settings.
- compiler: Warning if an environment variable has changed and opportunity to (temporarily) use the old, stored value
- compiler: Trigger a full configuration rebuild if environment variables have changed
- compiler: Added configurable (project to class-level) optimization for .NET project that will mark all classes frozen if they are not descended by another.
- studio: Add assemblies dialog shows more assembly information.
- studio: Some diagram generation for assemblies
- studio:Display documentation for .NET Framework assemblies on .NET 2.0
- studio: Display features tree for .NET classes.
- studio: Display uncompiled .NET classes.
- debugger: Now we can pass modified environment variables to the debuggee application.
- compiler: Externals (includes, objects, resources, ...) can now be relative to the ecf file by using the new replacement $ECF_CONFIG_PATH.
- compiler: UUID is not needed for non library systems. If no uuid is specified a random one will be generated. (Startup dialog may not work correct if the config has not been saved with the random generated uuid)
- debugger: New contextual menu on breakpoints tool for multiple action on class (enable first bp on all features ...)
- studio: Only expand the currently used target in the project settings.
- compiler: Changed version of configuration format to 1.1.0
- compiler: Only print warnings for unknown attributes and tags if we detect an unknown version (try to be upward compatible).
- compiler: Speed up consumer cache synchronization so working with large .NET caches or large assembly sets is much faster.
- debugger: now it is possible to restart the debuggee without unraising and raising again the debugger's interface
- debugger: now we keep the layout for each watch tool in preferences.
- compiler: Custom conditions now also take environment variables into account.
- compiler: Display unsubstitued path to cluster/assembly/library if a file/directory open error occurs.
- studio: Added a cancel button in the dialog of the automatic precompilation to cancel the precompilation.
- COM Wizard: EiffelStudio button is enabled also if the Eiffel compilation fails.
- compiler: Generate an error if a configuration file used in a precompile has structurally been changed as the precompile is not usable in this case anymore.
- base: The HASH_TABLE in base has two new possibilities to detect/prevent catcalls, they can be enabled by enabling assertion checking and enabling the debug clauses prevent_hash_table_catcall and detect_hash_table_catcall.
- studio: Added dependency view so supplier/client dependency of a group/folder/class can be investigated. Feature calls are included in dependency view.
- studio: Added syntactical supplier/client support in class view.
Bug fixes
- COM wizard: Time library was not included which lead to problems if a COM component used the DATE_TIME data type.
- compiler: Fixed incrementality bug with agents where finalizing and then freezing would cause some unresolved externals.
- compiler: Don't do an expensive degree 6 if assertion level or similar project settings have changed.
- studio: Decreased amount of created GDI objects on windows in some grids.
- studio: Fixed a problem with externals in the project settings.
- studio: Fixed viewpoint handling for assemblies
- studio: Fixed output to file redirection in the process library on windows.
- studio: Fixed samples that would not compile.
- compiler: Fixed a crash if a library without an UUID is used.
- compiler: Fixed a problem that classes that were not visible before did not get compiled when they were made visible.
- compiler: Fixed CECIL name if there is a renaming specified in the visible clause.
- compiler: Fixed VTCT error was not detected if a prefix/renaming changed on an assembly or library.
- vision2: Fixed bug when setting a pixmap on a menu entry which has a submenu, the submenu would disappear.
- compiler: Fixed a bug in the check if local assemblies are present.
- compiler: Fixed some problems with sub clusters of overrides.
- compiler: Interpolate environment variables also in metadata cache path specified on the command line.
- compiler: Fixed some bugs in the documentation generation related to sub clusters.
- compiler: Option changes always led to an expensive degree 6 even if a fast degree 6 would have been enough.
User changes
- base: EXECUTION_ENVIRONMENT.get will only retrieve environment variable. It won't retrieve a value from the registry key on Windows (from HKLM\Software\ISE\Eiffelxx\app_name). This also means that MELT_PATH on Windows cannot be set in registry; this is not really a problem since now you do not need to set it since the W_code knows where to find it.
Developer changes
- cli_debugger is now under framework, and the corresponding clib has to be compiled.
- New delivery scripts on unix will now compress packages using bzip2 as they are about 30% smaller than the packages build with gzip.
- The eifinit/studio folder has now been moved into studio/eifinit
- build has been renamed into esbuilder
- vision2_tour has been renamed into vision2_demo
- Possibility to build a delivery which fits into the unix directory layout.
- Use the normal HASH_TABLE in the compiler.
- ID_AS does no longer inherit from STRING, instead it has a name_id and the string is stored in NAMES_HEAP
- Added additional applicable inspect-able types to VOMB1 error help text.