EiffelStudio Changelog

What's new in EiffelStudio 22.12 Build 106463

Sep 8, 2023
  • New features:
  • New platform: macosx-armv6 (to support M1, M2)
  • New platform: linux-arm64
  • Improvements:
  • editor: Added support for once classes in feature code completion.
  • runtime and generated C code: updated C code to match clang expectations. Mostly related to clang optimization, and especially on ARM architecture.
  • Fixed code generation for equality tests when the second operand is a call to a function that can allocate memory so that the first operand gets moved by GC (reproducible when compiled with clang as C compiler).
  • wrapc: improved glue C code to support recent version of gcc.
  • dotnet: enabled the use of the emdc.exe md consumer, as an alternative to the COM md consumer.
  • Bug fixes:
  • compiler: fixed crash when a once class lists no creation procedures.
  • studio: allow user to include ecf file that is a redirection (using the Browse button of the "Add Library" dialog)
  • editor: Fixed crash on Windows, when first inserting Unicode symbol using the Symbols dialog.
  • installation: On Windows, fixed issue preventing the EiffelStudio installations of both 32bit and 64bit versions at the same time on the same machine.
  • studio: Fixed "Add cluster" in recursive cluster, and also allow to create a new top level cluster.
  • dotnet: Fixed a bug that caused discarding a .NET namespace when saving an ECF from the project setting dialog.

New in EiffelStudio 22.05 Build 106302 (Jun 6, 2022)

  • Improvements:
  • Source control tool: UI enhancement (zoom support for grid and text, diff from any file in a repo),
  • Estudio(debugger): Updated debugger tools to better support editor zoom factor.
  • Wrapc: Updated wrapc/src/support/wrapc_wizard_function_generator.e class to extract only functions definitions. Added code to extract callbacks in the future.
  • Source control tool: Implemented post commit operations handling via the commit dialog (mostly git push for now)
  • Estudio(unix): fixed potential infinite recursion with modeless dialog
  • source control tool: added "add" and "delete" scm operations
  • Bug fixes:
  • Source control tool: fixed commit with message having double quotes, quotes, backquote for code.
  • Source control tool: Ensure any scm operation has output message. Improved the revert operation for git, by resetting added or deleted files.
  • Library(json): If no serializer has specific handling for strings, use as default JSON_STRING.
  • Iron: make sure temporary (archive) file are removed once it is uploaded.

New in EiffelStudio 15.08.9.7862 (Sep 10, 2015)

  • New features:
  • EiffelStudio: Supported a new inline separate instruction that allows making feature calls on uncontrolled separate targets inline rather than calling dedicated routines
  • EiffelStudio: Supported creation of passive regions in SCOOP that execute all logged calls on caller's processors
  • Improvements:
  • runtime: Improved memory management by performing O(log N) lookups when looking for a large block of memory instead of O(N). This would occur after allocating many large objects whose size is greater than 512 bytes (on 32-bit platform) and 1024 bytes on 64-bit platform and then freeing all those objects. Next time you look for a large object it might have to go through all those large objects without finding one that is large enough.
  • code generation: Made code slightly more compact (2 to 6% size reduction on some platform)
  • Bug fixes:
  • runtime: The SCOOP runtime is now fully written in C to avoid portability issues.
  • compiler: Corrected access to tuple fields in SCOOP mode that now follow the validity rules and the semantics of ordinary attributes of a class.
  • compiler: test#scoop034 - Fixed a code generation bug in finalized mode for a generic derivation with an actual generic of a basic type.
  • compiler: test#term216 - Fixed a crash when processing conversion queries defined as constant attributes.

New in EiffelStudio 15.05.9.7047 (Sep 10, 2015)

  • New features:
  • eiffelstudio: Added ability to control the behavior of dropping a class stone on a tab by either replacing it, always creating a new tab or creating a new tab if the current tab had some edits.
  • Improvements:
  • compiler: Changed agent creation rules for separate targets. This change makes it possible to introduce library features that help users to avoid writing small little wrapper features in SCOOP to control an object. It is now possible to create agents on separate, uncontrolled target. The newly created agent object is placed on the same processor as the target, and it inherits the 'is_controlled' status.
  • library: bug#19045 - cleaned up comments in NATURAL_nn_REF classes.
  • Bug fixes:
  • compiler: Fixed eweasel test#final122 and bug#19028 where we would incorrectly optimize `expr and False' or `expr and then False' into just `expr' which is wrong if `expr' is True (as the whole expression would be True and not False).
  • compiler: Optimized `expr and False' and `expr and then False' to just False if `expr' is a local, a argument, Result, Current, an attribute access or if it is the `and' boolean op.
  • eiffelstudio: Fixed issue introduced in version 7.3 of EiffelStudio where .NET classes would not appear in tree view.
  • eiffelstudio: Improved tooltip of assemblies by separating the assembly name from the namespace with ": ".
  • eiffelstudio: Fixed tooltip of referenced assemblies to show assembly information instead of just the path to the assembly.
  • library: Fixed a bug in {STRING_8}.trim and {STRING_32}.trim that caused a postcondition violation in this procedure.

New in EiffelStudio 14.05.9.5220 (Jun 9, 2014)

  • New features:
  • zeromq: Added some samples
  • compile_all: Made it possible to compile projects for a specific platform or to exclude a platform.
  • Improvements:
  • studio: Improved UI for fixes.
  • studio: Improved error list layout to avoid too many columns. Fixed an issue on Windows when sorting by Description the word `Description' will be mangled.
  • static_analyzer: Made it work with the command line version of the compiler (ecb).
  • Bug fixes:
  • studio: Cannot apply a fix more than once.
  • studio: Improved fixes for unused local by removing the `local' keyword if they are no more locals left, removed comments if it appears on the same line as the unused local.
  • studio: Made sure that the groups content is shown very early on during compilation. Made sure that the `search' mini-toolbar button is always active.
  • studio: Fixed a major slowdown when generating formatted text of classes/features if the associated class text had been recently touched. We were rebuilding the cache each time. (rev#95120).
  • compiler: Fixed a compiler crash when analyzing the following qualified anchored type `like x.f' where f is defined as `f: like y.z.w' (See eweasel test#anchor077).
  • static_analyzer: Fixed a crash when processing a class with a note clause entry that does not have a tag.
  • static_analyzer: Fixed an issue with static code analyzer if launched from a directory without any write permission, it would crash trying to write `last_analysis_result.csv' in that directory. Now we save the file in the EIFGENs/target directory.
  • static_analyzer: Improved reports for CA020 to take into account the rescue compound and thus preventing messages of `retried set but never read'.
  • static_analyzer: Ensured that we do not report an error for l := list; across l as c loop .. end stating that l was set but never read.
  • vision2: Fixed a bug that would allow pick and drop on disabled items because we had made them ok to be dropped on.
  • vision2: Fixed various assertions violations on Windows when closing/destroying a dialog.
  • vision2: Fixed issue when wiping out a notebook (See autotest#TEST_EV_NOTEBOOK.test_wipe_out).
  • vision2: Fixed bug#18716 where if a menu entry is of the form `my_entry' it will remove the `_' and make the `e' an underlined letter. The issue is that on GTK we need to replace _ by __ and the & by _.
  • vision2: Fixed autotest#TEST_EV_STANDARD_DIALOG and bug#18877 where if you call destroy on a dialog after closing it, it will violate its postcondition on Windows.
  • vision2: Avoided a few catcalls in Vision2 by refactoring some code.
  • base: Fixed {FILE_UTILITIES}.files_end_with to respect the depth level specified in argument. This caused EiffelStudio's profiler wizard to take a few seconds to load on large projects.

New in EiffelStudio 13.11.9.3542 (Dec 4, 2013)

  • New features:
  • compiler: Supported parenthesis aliases that allow treating feature calls with arguments on entities that take no arguments to look as regular feature calls. This is mostly useful to make calls on agent objects, e.g. instead of my_agent.call (x) it may be possible to use my_agent (x). Unlike bracket alias, parenthesis alias can be used with both queries and commands, but as with bracket alias, the corresponding feature should have at least one argument.
  • compiler: Supported new rules to handle actual arguments in a feature call that wrap last arguments into a tuple when: the number of actual arguments exceeds the number of formal arguments or when the number of actual arguments is equal to the number of formal arguments, but the last actual argument is not type-compatible with the last formal argument unless wrapped in a tuple. This is mostly useful to make calls on agent objects avoiding explicit manifest tuple notation. For example, my_agent.call ([123, "abc", value]) can be written as my_agent.call (123, "abc", value), or, when combined with parenthesis alias, as my_agent (123, "abc", value).
  • compiler: Supported conditional expressions that allow using different expressions to compute a value depending on some condition: if x < y and x < z then x elseif y < z then y else z end.
  • compiler: ecf redirection support -> provide a way to create redirection from a .ecf to another (similar to link)
  • Improvements:
  • library: Added parenthesis aliases for PROCEDURE.call and FUNCTION.item so that the calls to agents foo.call (1, 2, 3) and x := bar.item ("qux") can be replaced with foo (1, 2, 3) and x := bar ("qux").
  • library: Added void-safe version of Gobo, only arguments, test, tools and XML are not yet void-safe.
  • Bug fixes:
  • compiler: bug#18266 (test#svalid031) - Fixed a bug that caused reporting a non-existent error for a renamed feature with a bracket alias.
  • compiler: bug#18282 (test#multicon062) - Fixed a bug that caused incorrect error report for features with a bracket alias specified in multiple formal generic constraints.
  • compiler: test#attach108 - Corrected computation of scopes of read-only variables used in implicative expressions with conjuctions.

New in EiffelStudio 7.2.9.1284 (Feb 27, 2013)

  • Bug fixes:
  • studio: Made sure that conditions in Project settings are human readable. This fixes bug#18519.
  • studio: Fixed bug#18504 when adding removing libraries to a project.
  • compiler: Fixed a regression where using the compiler option `-safe' will not work anymore if you apply it to ECFs already containing some ECFs without a corresponding -safe ECF.
  • compiler: Fixed a bug where after a finalization, the printed message was always mentioning the workbench version.
  • library: Updated FILE/DIRECTORY classes to recent changes in the compatible version so that gobo descendants can compile.
  • compiler: Fixed bug#18509 and eweasel test#config036 where the library_target of an ECF was not compared in a case insensitive manner with the name of the target thus causing an error if the target name was anything but lower case. Improved error messages by using the name as specified in the ECF (i.e. no lower case conversions).
  • compiler: Improved error message when you cannot find an assembly (as if you specified $ISE_DOTNET_FRAMEWORKmscorlib.dll, missing the / here) the error message would be confusing because it would say that base is not present. Now we print the original path of the assembly and the evaluated path of the ECF containing a reference to that assembly.
  • debugger: Fixed a catcall when debugging a .NET system causing a crash at execution because we were comparing a STRING_32 with a STRING_8.
  • library: Added some renamings so that Gobo tools do not report VSCN errors for classes not in system that could potentially give a conflict if compiled.

New in EiffelStudio 7.2.9.1169 (Feb 6, 2013)

  • New features:
  • library (base): Added support for converting CHARACTER_32 to lower or upper case.
  • installation: Added support for Visual Studio 2012 as a C compiler backend.
  • library (base): Added support to manipulate Unicode path.
  • Added support for installing EiffelStudio in a path with Unicode characters.
  • Improvements:
  • EiffelStudio: Added VWAB to the list of filtered warning messages.
  • EiffelStudio: Slightly improved reading of the error messages for VBAC(3), VBAR(2), VUTA(2).
  • library (base): Added a new class REPEATABLE for the objects that can iterate over they own state.
  • example (scoop): Simplified dining philosophers example and used the class REPEATABLE for a philosopher's life cycle.
  • Bug fixes
  • library (WEL): Fixed a bug in {WEL_FONT}.string_size_extended that could cause access on an invalid index if the string contained characters that are mapped to the surrogate pairs in UTF-16.
  • EiffelStudio: Corrected a pretty printer to remove a temporary file after prettifying source code.
  • EiffelStudio: bug#17588 - Supported prettyfing of source code containing Unicode characters.
  • library (base): Fixed a bug in SED where if your retrieval fails while retrieving data, you would get a partial object.
  • library (base): Fixed a bug in recoverable version of SED where if attributes are missing in the retrieval system, it would fail to retrieve the serialized object even though you have some correct_mismatch or have allowed for attribute removal.
  • User changes:
  • compiler: banned the following syntax for types in object creation using the old syntax of object creation: ! attached like ... ! ! detachable like .... ! ! attached separate like ... ! ! detachable separate like .... !
  • compiler: banned the following syntax for using the old attachment marks with the new `separate' keywords: ! separate ... ? separate ...
  • c-compiler: On Windows when using the Microsoft C/C++ compiler we have removed the generation of PDB files in workbench mode. If you need this, please define the environment variable ISE_CFLAGS to include the -Zi flag.
  • library (kmp_matcher): Supported wildcard patterns and source texts in Unicode.

New in EiffelStudio 7.1.8.8986 (Jul 23, 2012)

  • Improvements:
  • compiler: bug#17591, bug#17662 (test#pretty028) - Improved formatting of comments delimited with blank lines.
  • vision2: one can now provide a hint of the size of the dropdown list of the combobox. The hint is currently only effective on Windows.
  • vision2: Improved the default size of the dropdown list of a combobox so that all the text can be visible.
  • compiler: test#valid275 - Reduced the number of cases when VWEQ warning is reported, in particular by limiting it to the immediate code only.
  • compiler: test#tilde002 - Optimized code generation for the equality test that involves two values of different expanded types.
  • compiler: bug#15145 (test#exec296) - Supported detection and warning report with code VWAB for useless bodies of attributes that are never executed because the types of the attributes are self-initialized (expanded or detachable).
  • library: test#array009 - Relaxed a precondition of {ARRAY}.force that was too restrictive for elements of an attached type.
  • library, example: Removed assignment attempt from the most part of the source code because this instruction is now obsolete.
  • compiler: Relaxed the rule VD88 to report void-safety mismatch between client and supplier as a warning rather than an error when complete void safety is not requested.
  • Feature removed:
  • compiler: test#vwmq001 - Disabled type qualifier in the manifest constant used to declare a constant attribute because the type is already specified in the feature header.
  • Bug fixes:
  • compiler: bug#15147 (test#term168) - Fixed compiler crash caused by inline agents with the body in the form of an attribute.
  • compiler: bug#15450, bug#18098 (test#melt088) - Corrected error in melted byte code generation for constant attributes of type CHARACTER_32 that could lead to a wrong value at run-time.
  • compiler: bug#17590 - Added type conversion to avoid C compiler warnings in some SCOOP macros.
  • compiler: bug#17987 (test#incr421) - Applied application options to library classes during recompilation when required.
  • compiler: bug#18045 (test#vwmq001) - Added detection and error report of VWMQ violation for manifest string constants with type qualifiers other STRING_8 and STRING_32.
  • compiler: bug#18047 (test#valid274) - Avoided duplication of VFAC(1) error report.
  • compiler: bug#18067 (test#attach096) - Reported VEVI error if an unqualified agent is created when not all the attributes are properly set.
  • compiler: test#replication008 - Ensured that replication information is preserved when feature is undefined in a descendant class so that inherited assertions are generated correctly.
  • compiler: test#replication009 - Avoided a crash when processing inherited preconditions of a replicated feature.
  • compiler: test#exec338 - Fixed code generation for equality tests that involve different basic types resulted from formal generic parameter substitutions.
  • compiler: test#scoop024 - Fixed processing of multi-dot call chain that involves separate target, so that subsequent calls are generated as separate rather than normal ones even in the case when return type is not separate.
  • compiler: test#syntax045 - Fixed a bug that leaved '%R' when parsing a verbatim string with an empty first line.
  • base: bug#18153 (test#string001) - Corrected the implementation of {STRING_32}.left_adjust that did not work properly when the string contained only white spaces.
  • base: Fixed improper definition of `copy' in UNIX_FILE_INFO and BOOL_STRING which caused `twin' to not actually duplicate the object since the internal storage SPECIAL was shared between the old and new object obtained via `twin'.
  • compiler: test#dotnet113 - Corrected code generation for object tests when the target type is a basic one and the expression gives a boxed value of the primitive type.
  • User changes:
  • compiler: review#7289252 (test#replication009) - Enabled system freeze for precompiled library when all classes are requested to be compiled.
  • thread: made the EiffelThread library compliant with SCOOP. This required adding a creation procedure `make' to the THREAD class to initialize some internal changes to avoid a thread object from being launched in various threads. If your code inherit from THREAD, you now have to call `make' otherwise you will either get a compilation error in void-safe mode, or a call on void-target in non-void-safe mode when trying to launch a thread.
  • compiler: Marked assignment attempt symbol ?= as obsolete for all syntax variants except for the obsolete one.
  • vision2: Made sure on Windows that pressing the return key in a text field or spin button does not change the caret position.

New in EiffelStudio 7.0.8.8046 (Nov 30, 2011)

  • Bug fixes:
  • vision2: Fixed some descendants of EV_GRID_LABEL_ITEM to properly take into account the vertical alignment and the horizontal alignment of the text for the various activation.
  • curl: Ensured that the C compilation is done for the cURL C clibrary.
  • compiler: Made custom conditions in ECF case-insensitive to be in line with the processing of custom variables.
  • compiler: bug#17952 (test#assert005) - Disabled inlining for features that are known to fail because they always raise an exception and it's easier to raise and to track it without inlining given that the exception overhead is high enough anyway.
  • compiler: bug#17897 (test#anchor063), bug#17901 (test#anchor064) - Changed context of inherited assertion evaluation to use the one of the inherited assertion so that the types are evaluated correctly (this in particular affects qualified anchored types that involve formal generics that are no longer present in a descendant class).
  • User changes:
  • library: Marked class BIT_REF as obsolete (this also makes type BIT obsolete).
  • library: Excluded class BIT_REF from the default setup of EiffelBase. In order to use type BIT one has to define a variable "USE_BIT".

New in EiffelStudio 7.0.8.7451 (Oct 15, 2011)

  • Improvements:
  • compiler: Avoided reporting errors related to variable initialization when the right-hand part of assignment to this variable causes an error.
  • compiler: Promoted keywords across and some from provisional syntax to the standard one.
  • compiler: Made class BIT_REF optional as soon as a BIT type is not used in a system.
  • studio: Replaced keyword completion for indexing with keyword completion for note.
  • Feature removed
  • Bug fixes:
  • compiler: bug#16974 (test#term187) - Fixed a bug that caused a compiler crash on a particular kind of formal generic constraints.
  • compiler: bug#17057 (test#term190) - Fixed processing of invalid formal generic constraints that could potentially lead to a crash.
  • compiler: test#attach094 - Considered the case of reverse assignment to a target of a non-detached formal generic type as VJRV(3) violation because actual generic may be attached and reverse assignment to an attached target is not allowed.
  • compiler: test#term205 - Fixed a crash that might happen for anchored types involving inherited features.
  • User changes:
  • compiler: Changed default options: default syntax is set to standard, attached-by-default is set to true unless specified otherwise.
  • studio: Moved attached-by-default option to Advanced section.

New in EiffelStudio 6.8.8.6454 (May 25, 2011)

  • Bug fixes:
  • studio: Fixed regression where one could not either create a new editor tab, nor could you close any tools.
  • studio: Fixed the incorrect pick and drop line.
  • compiler: Fixed various inlining bugs, see eweasel test#final102, test#final103, test#final105 and test#final106.
  • compiler: Fixed a bug in the finalization of an agent call with a tuple involving the third or greater formal generic parameter of the class (eweasel test#agent014).

New in EiffelStudio 6.8.8.6405 (May 25, 2011)

  • Bug fixes:
  • studio: Fixed regression where one could not either create a new editor tab, nor could you close any tools.
  • studio: Fixed the incorrect pick and drop line.
  • compiler: Fixed various inlining bugs, see eweasel test#final102, test#final103, test#final105 and test#final106.
  • compiler: Fixed a bug in the finalization of an agent call with a tuple involving the third or greater formal generic parameter of the class (eweasel test#agent014).

New in EiffelStudio 6.8.8.6328 (May 25, 2011)

  • Bug fixes:
  • compiler: Fixed various inlining bugs: test#final078, test#final087, test#final091, test#final094, test#final098 and test#final099.
  • compiler: Fixed eweasel test#term182 and test#term183 where an expanded class with an agent that has an open target whose type is `like value' where `value: like Current' crashes the compiler.
  • studio: Fixed an issue with recent version of Windows 7 which prevented compilation with MinGW.

New in EiffelStudio 6.8.8.6274 (May 25, 2011)

  • New features:
  • delivery: Added po_generation_tool to help users internationalize their applications.
  • Bug fixes:
  • vision2: Fixed some issues with the drawing of tree connector in EV_GRID.
  • User changes:
  • base: UNIX_FILE_INFO.update won't raise an exception if the underlying call to `stat' or `lstat' fails (most likely when the file does not exist). Instead we make the new query `exists' False and added a precondition that it must `exists' on all the other queries.

New in EiffelStudio 6.8.8.6162 (May 25, 2011)

  • New features:
  • studio: Added ability to pretty print a class from the command line.
  • Improvements
  • vision2: Improved some resizing policy on Windows where contents of boxes when it grows in size would not be properly refreshed.
  • studio: Completion has been improved to support remote anchored types.
  • studio: Improved addition of parents in EiffelStudio when creating a new class.
  • process: Updated process handling to be more efficient in terms of concurrency, buffer size and polling for all platforms.
  • store: Made stored procedure Unicode supported. Fixed the example st_proc_unicode.
  • wel: various speed improvements by reusing objects.
  • Bug fixes:
  • scoop: Fixed some issues with scheduler.
  • studio: Fixed some issues with contextual menu and pick and drop in the error/warning tools.
  • build: Fixed bug#17427 where now it was proposing for text controls both the `text_change_actions' and the `change_actions' which is incorrect, since it should always be `change_actions' except for spin button where it should be `text_change_actions'.
  • ribbon: Improved ribbon code to get notified when ribbon is maximized/minimized. Added new controls.
  • vision2: Fixed delay between the end of a pick and drop (right click) and the actual end of pick and drop (end of drawing the dotted line). This also solves the issue is that the right click location stored by the internal mechanism was incorrect (it took the one from where the line stops drawing).
  • vision2: Stopped processing of mouse actions when terminating a pick and drop.
  • vision2: Added recently removed border in EV_GRID_CHOICE_ITEM

New in EiffelStudio 6.8.8.6023 (May 25, 2011)

  • New features:
  • Debugger: now it is possible to detach the debugger from the application (without killing the application)
  • Debugger: add a way to attach the debugger to an associated Eiffel application launched outside EiffelStudio. (The application has to be launched in a specific way to wait for the debugger.)
  • Bug fixes:
  • studio: fixed bug#17316 System Info does not show system information
  • studio: fixed bug#17317: ES_GRID scrolling not working properly
  • library: fixed issue with XML parser, when single quoted attribute value has a space
  • studio: added support for editor completion on across (and also fixed completion on specific case involving object test local variables)
  • vision2: fixed some refreshing issues under Windows when making vertical/horizontal boxes larger.

New in EiffelStudio 6.8.8.5940 (May 25, 2011)

  • New features
  • studio: Added support for OpenBSD 64-bit.
  • compiler: Added SCOOP support for Windows and Linux. Not yet supported on other OSes.
  • Improvements
  • build: Improved EiffelBuild support for void-safe Eiffel. Fixed code generation to use new syntax.
  • compiler: Avoided triggering errors for unknown elements and attributes when parsing an ECF project file with an unknown namespace by reporting them as warnings instead.
  • vision2: Improved a few refresh and resizing issues on Windows.
  • Feature removed
  • Bug fixes
  • compiler: Fixed eweasel test#exec301 to properly handle the TYPE [NONE] instance.
  • compiler: Fixed eweasel test#incr370 which would cause the compiler to crash during code generation if the last melt operation was done on the invariant of a class involving an object test local.
  • compiler: Fixed eweasel test#attach079 where we would report a VEVI error for an attribute with an empty body even though it was properly set in the creation procedure.
  • compiler: Fixed test#attach080 where the generated code always assumed the success of an object test when it should not since sometime it can fail.
  • runtime: Fixed eweasel test#exec339 where the behavior of {ANY}.standard_twin was incorrect, resetting the source rather than copying the source to the newly created object. This fix a regression introduced in 6.3
  • autotest: Fixed a bug with the testing library which prevented tests to be re-run if one chose to keep the testing directory in EiffelStudio
  • studio: Fixed an issue with the project settings dialog where some combo boxes would remain on the screen even after closing the dialog.
  • studio: Fixed some navigation error when compilation from scratch a system with errors, fixing the error in one class would prevent navigation in that class.
  • compiler: Fixed eweasel test#incr413 where changing the transient property of an attribute had no effect at runtime.
  • studio: Fixed bug#17320 where transient property of an attribute was not shown in the flat view.
  • compiler: Fixed test#incr405 and test#ccomp086 which were regressions from the 6.6 release.
  • compiler: Fixed test#attach084 where a manifest string could be wrongly interpreted as being a STRING_32 (instead of STRING_8) when compiling against the non-void-safe version of EiffelBase and specifying that you are compiling your project with on-demand void-safety.
  • studio: Fixed a crash when performing a class renaming and selecting all the classes as scope.
  • User changes
  • libraries: Changed routines whose arguments were of type STRING_GENERAL to now be READABLE_STRING_GENERAL. This lets you use IMMUTABLE_STRING instances in your code with EiffelVision2 and other Unicode ready libraries.
  • compiler: Replaced ECF condition multithreaded with the condition concurrency that is processed according to the current concurrency setting.

New in EiffelStudio 6.7.8 Build 4178 (Aug 17, 2010)

  • Improvements:
  • Compiler: 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).
  • Bug fixes
  • Compiler: Fixed eweasel test#incr366 when an expanded generic type is being used and its expandness status is removed. It completes the fix for test#incr315.
  • Compiler: Fixed test#attach077 when VEVI was not properly reported in some cases for uninitialized attributes passed as arguments.
  • Compiler: Fixed eweasel test#incr378 for a bug added at the previous intermediate release which would break execution of code when touching/modifying some generic classes used in the system.
  • User changes

New in EiffelStudio 6.4 Build 79263 (Jun 15, 2009)

  • For backward compatibility issue we are including 2 versions of the libraries.
  • By default it will use the backward compatible version.
  • To use the new library, you have to use the `-experiment' switch.
  • It is possible to create code that compiles against both versions as long as some little changes are brought to the code

New in EiffelStudio 6.4 Build 78984 (Jun 2, 2009)

  • Development of iPhone applications in Eiffel has been added. Currently it only supports command line applications but graphical application support should be coming soon. The following libraries have been added to the delivery: the dynamic library API wrapper, the encoding library and the internationalization library. Some issues on GTK were fixed. Some runtime bugs related to thread or serialization have been fixed. The precompilation bug on Mac OS X has been fixed.

New in EiffelStudio 6.4 Build 78600 (May 11, 2009)

  • Some incrementality problems were fixed when you have a syntax error during a clean compilation of a project. An issue with anchors to argument causing a crash of the compiler was fixed (note that anchors to arguments are obsolete since not part of the ECMA specification). A code generation bug involving object test and creation expression was fixed. A new way to override settings from a library was put in place.

New in EiffelStudio 6.4 Build 78493 (May 6, 2009)

  • A few regression in the debugger from last revision has been fixed. A memory corruption in generated code in frozen/finalized mode when an expanded objects contains references to young objects has been fixed. Wrong shortcut installation was fixed in the Windows installer. A crash in EiffelBuild was prevented when opening or sving a project. The process library will now append the output redirection to the end of a file rather than recreating when it already exists.

New in EiffelStudio 6.4 Build 78212 (Apr 15, 2009)

  • A few issues with thread creations/exits have been fixed. Some issues with runtime queries not working properly in multithreaded mode were fixed. On Windows, a typo was fixed in the template for creation of a shared library. {INTERNAL}.set_reference_field now accepts detachable values. The EiffelStudio editor now supports highlighting of the ~ and /~ operators. The formatter for handling object tests has been fixed since it would crash if no type was provided. Some bugs with exception handling in the interpreter were fixed. An incorrect type computation of entities using Precursor was fixed.

New in EiffelStudio 6.4 Build 78090 (Apr 7, 2009)

  • Some issues with the interpreter crashing were fixed. A buffer overflow when displaying the content of an object using {ANY}.out was fixed when the object had a long class name or a long attribute name (i.e. greater than 512 characters). NATURAL_32 values of attributes are now properly displayed in {ANY}.out when the value is greater than 0x7FFFFFFF. A crash when storing or duplicating an expanded objects (via deep_twin) was fixed. EiffelParse is now void-safe. An issue with the formatting of certain classes has been fixed. Handling of object-test locals in the debugger has been improved.

New in EiffelStudio 6.4 Build 77646 (Mar 11, 2009)

  • Some invariant violations were fixed in EiffelBase.
  • Some internal HASH_TABLE lookups which failed when the implementation of HASH_TABLE started to use ~ instead of is_equal were fixed in EiffelStore.
  • Other minor small bug fixes.
  • Internally more of the compiler's code is now using void-safe libraries.
  • The syntax_updater tool is now included in the Unix deliveries.

New in EiffelStudio 6.4 Build 77252 (Feb 23, 2009)

  • Added support for new syntax of object test, i.e. "attached {T} expression as x" rather than the criptic "{x: T} expression".
  • Allowed two or more object tests to reuse the same local name as specified in ECMA.
  • Minor compiler speed up of about 3%.
  • Fixed an issue with debugger not saving the breakpoints from one session to the next.
  • Fixed some issues with non-conforming inheritance.

New in EiffelStudio 6.4 Build 76930 (Feb 3, 2009)

  • Added a 6.3 backward compatibility through the -compat option. This will preserve the default settings which will change in the final 6.4 release.
  • Fixed a memory corruption that occurs when duplicating SPECIAL/TUPLE objects.
  • Fixed an issue where compiler did not report a wrong usage of Precursor.
  • Fixed incorrect typing of agents in void-safe mode.

New in EiffelStudio 6.1.7.1477 (Dec 17, 2007)

  • Package size was reduced by about 10MB (except for the windows MSI).
  • [edit]Bug fixes
  • gcc: EiffelStudio will display the C compiler output.
  • gcc: Fixed an issue with using a vision2 precompile and freezing which would result in a C compilation error.
  • gcc: Made it work on Windows Vista where there was a C compilation error when trying to compile the .rc file.
  • compiler: Fixed bug#13660 by avoiding reporting a VEVI error for Result in a deferred function.
  • compiler: Fixed bug#13642 and eweasel test#noncon008 where removing a non-conforming parent would crash the compiler.
  • compiler: Added support for object test local scope for elseif part of a conditional instruction (Fixed test#attach002).
  • compiler: Fixed the POINTER display on Solaris should be lX as otherwise only the lower parts is kept on 64-bit. This also fixes bug#13598 where debugger would crash at the first step because of the truncated data.
  • compiler: Fixed bug#13068 where setting `use_application_options' in an incremental compilation would not have any effects if the content of the library did not change.
  • compiler: Fixed a crash in the full class checking for .NET systems.
  • compiler: Fixed the eweasel tests on multi-constraint genericity that were failing in .NET mode.
  • debugger: Fixed bug#13639: Activating/deactivating execution recording and replay mode leads to crash.
  • debugger: Fixed bug#13584 where no dialog was being shown when using File/Exit when the debugger is active.
  • debugger: Fixed failure in expression evaluation when an expression has a syntax error.
  • debugger: Made sure the newly created watch tool are shown, and that when created from a watch tool they are tabbed to this one.
  • debugger: Fixed some potential memory corruption when cleaning the debugger data or removing all breakpoints.
  • documentation: Fixed various typos and inconsistencies.
  • studio: Fixed some text clipping on Unix with some of the dialog boxes.
  • studio: Fixed bug#13589 where opening a new development window and closing it would either hang or crash EiffelStudio.
  • studio: Fixed bug#13651 where windows would lose their title after auto-hiding
  • studio: Fixed bug#13585 when EiffelStudio would crash when undocking a tool bar.
  • studio: Fixed bug#13645: where undocking the Feature tool and restarting would cause the Feature tool to disappear.
  • studio: Fixed bug#13648 where minimizing and then maximizing the editors leaves the Editor displayed but contents is not visible.
  • studio: Fixed bug#13604 and bug#13650 with the dialog for reporting bugs which would not allow people to login and therefore to submit bugs.
  • studio: Fixed issue with `Reset Tools Layout' where it would show toolbars that were previously hidden.
  • studio: Fixed bug#13300 and bug#13692 where showing the flat form of a feature with a VEEN error would cause EiffelStudio to use more and more memory until exhaustion.
  • studio: Fixed bug#12773 where EiffelStudio would crash when generating the flat format of feature with VUAR error on a multi-constraint formal generic.
  • studio: Fixed bug#13687 where saving the layout in debug mode and restoring makes debug mode indicator wrong.
  • studio: Fixed bug#13478 where there was an inconsistency in the project conversion dialog.
  • studio: Fixed bug#13719 where it would crash when trying to process a bracket expression if the type of expression could not be processed (e.g. a local whose type is not in system).
  • studio: Fixed bug#13685 where undocking the Feature tool would cause it to become tiny.
  • studio: Fixed bug#13045 where the customization of undocked toolbars was not preserved over sessions.
  • studio: Fixed bug#13309 where some additional output was displayed when printing our internationalized text due to some internal calls to perror whenever there is an error during a call to `iconv'.
  • vision2: Fixed bug#13084 where key string action were being called even though an accelerator was fired.
  • vision2: Fixed bug#13676 where the redraw of an EV_FRAME would leave some trace on screen.
  • vision2: Removed now invalid post-condition 'tree_not_enabled_implies_visible_rows_contiguous' which no longer holds due to the ability to hide and show rows.
  • vision2: Fixed bug#12618 where a scrollable area would have an extra shadow on Unix causing some difference with the Windows version.
  • vision2: Fixed a crash when accessing `idle_actions' very early in the live of a multithreaded Vision2 application.

New in EiffelStudio 6.0.6.8703 (May 28, 2007)

  • Implemented bug#12380 by adding the platform value as part of the version info of the compiler. This will prevent trying to load a project compiled for a different platform instead of failing with a retrieval error.
  • Fixed bug#12822 where the size of EIFGENs had multiply by 3 or more for large projects. Bug was introduced at the 6.0.6.7358 release.
  • Fixed bug#12823 where specifying a target in a different case than the lower case version of the actual target name would fail to find the target in your configuration file.
  • Fixed bug#12788: Compilation without configuration crashes if .ecf file exists.
  • Fixed a memory corruption which would occur once an invariant has been violated.
  • Fixed issue where if you have a .NET class called Object, the compiler will confuse it with SYSTEM_OBJECT.
  • Fixed bug#12843 with incorrect implementation of ARRAY.do_all_with_index and ARRAY.do_if_with_index.
  • Fixed bug#12837 by removing duplicated postconditions in STRING_XX.substring (XX is either 8 or 32).
  • Fixed bug#12838 where on Linux you could not create more than 2^15 threads even if they all exited. Now we force creation of threads in a detached mode to allow more than 2^15 thread creations.
  • Fixed bug#12837 where closing the wizard window from the cross on the window title bar would render EiffelStudio unresponsive.
  • Fixed bug#12727 Unprotected agent in idle_actions in {SD_WINDOW}.initialize
  • Fixed bug#12757 Customizing Standard buttons tool bar causes crash
  • Fixed bug#12758 Seg fault in {SD_HUFFMAN_ALGORITHM}.next_best_grouping
  • Fixed bug#12759 Saved layout has toolbar restored with wrong shape after docked vertically
  • Fixed bug#12795 "Close All" on mulitple tabs crashes
  • Fixed bug#12807 Seg fault in {SD_TAB_ZONE}.prune
  • Fixed bug#12806 Docking tab context menu shown after action has been performed
  • Fixed bug#12759: Saved layout has toolbar restored with wrong shape after docked vertically
  • Fixed bug#12840: right-clicking on debug button to open execution settings violates a precondition
  • Fixed bug#12754 Nonexistent pixmap file for custom formatter makes original pixmap overlap neighbor
  • Fixed bug#12805 Clicking in Editor tab while Address bar completion list displayed causes crash
  • Fixed bug#12819 address manager crash when losing focus
  • Fixed bug#12779: Preferences are ordered according to their English names.
  • Fixed bug#12447: Dialog for task condition is too small after translation.
  • Fixed bug#12809: Changing environment variable to empty in Debugging Options causes crash
  • Fixed bug#12803: Unable to evaluate .NET function call
  • Fixed bug#12750: Stack overflow not working on Linux
  • Fixed bug#12531: Froce debugger session is enabled for .NET dlls
  • Fixed bug#12829: Multiple problems with command line debugger
  • Fixed bug#12814: Configuration: trying to add a new variable leads to crash (or assertion violation)
  • Changed the diagram default color from light yellow to white for consistency with the other tools background color.