EiffelStudio 6.4 Releases

Revision as of 07:48, 9 March 2009 by Manus (Talk | contribs) (Bug fixes)

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

6.4.x

Placeholder for new stuff since last intermediate release.

New features

Improvements

Feature removed

Bug fixes

  • base: Fixed eweasel test#list003 where calling copy on a non-empty LINKED_LIST and providing the same list as argument would wipe out the content of the LINKED_LIST instead of preserving the elements.
  • base: Fixed eweasel test#list014 where calling `merge_left' and `merge_right' on a TWO_WAY_LIST was violating the invariant.
  • base: Fixed eweasel test#array005 where calling `wipe_out' on an ARRAY2 was violating the invariant.

User changes

Developer changes

6.4.7.7440 (March 2nd 2009)

New features

  • libraries: Have been updated to the new object test syntax.

Improvements

  • compiler: speed up C compilation of E1/eskelet.c in workbench mode when using VS 2005 C++ in 64-bit. We went from a benchmark of 3 minutes down to 1 minute. It is definitely a bug in VS since their 32-bit version compiles the same code in just a matter of a few seconds.
  • compiler: Improved speed of error generation by caching certain disk access operations.
  • studio: Vastly improved population of the error list tool when thousands or errors/warnings are generated.
  • studio: Error list now shows a synchronization message (Windows only) when displaying the tool for the first time after a compilation.
  • studio: Errors are now shown first in the error list tool, for better visibility.
  • compiler: Taken into account attachment status of formal generic constraints when checking conformance and detecting VUTA errors when target type is a formal generic.
Important: default attachment status of the constraints follows the "attached-by-default" setting, so the code might need to be updated by adding a detachable mark in front of the formal generic constraints if the actual generic parameters can be detachable types.
  • compiler: we now check that `is_equal' exists in ANY.
  • compiler: Fixed bug#15343 when backups where very large if you referenced many .NET assemblies even when not compiling for .NET.

Feature removed

Bug fixes

  • runtime: Fixed eweasel test#conform008 where creating an attached formal generic parameter of a generic type whose actual generic parameter is a TUPLE type would not create the proper TUPLE type.
  • debugger: fixed bug#15218: ~ not supported in the watch window.
  • debugger: improved/fixed expression evaluation related to `a = b' and `a ~ b'. As well conditional breakpoint of type `Has Changed'
  • compiler: Supported detection of VUTA(2) errors for unary and binary operators.
  • compiler: Fixed multiple issues with validity checks involving multi-constraint formal generics and "like Current" types.
  • compiler: Fixed system validity errors which were not previously detected or on the other hand rejected when it was correct. Fixes eweasel tests test#svalid019, test#svalid020 and test#multicon051.
  • compiler: Fixed incorrect C code generation when calling routine of a generic class under some circumstances (see eweasel test#ccomp040 and test#ccomp083, it fixes bug#15375).
  • compiler: Fixed bug with {SPECIAL}.put_default which did not insert the correct object for expanded generic derivations of SPECIAL. It fixes eweasel test#exec283 and test#catcall007.
  • compiler: Fixed improper precedence of the new object test syntax. It fixes eweasel test#syntax056 and test#attach053.
  • runtime: Fixed various memory corruption when manipulation large SPECIAL (i.e. whose actual size is greater than 4GB).

User changes

  • general: Updated all our libraries to use the new object test syntax.
  • favorites: Data is now kept in project's session data; favorites are kept even after a recompilation from scratch.

Developer changes

6.4.7.7252 (February 23rd 2009)

New features

  • compiler: Added support for the new syntax for object test, i.e. attached {T} exp as u instead of {u: T} expr
  • syntax_updater: Syntax updater will convert the old syntax for object test to the new one, and will also perform some optimizations, such as transforming {t: like x} x into just attached x as t.

Improvements

  • compiler: Supported object tests using the same object test local name in a single feature provided that their scopes do not conflict.
  • compiler: speed up parsing time in compiler that can provide about 3% speed up.

Feature removed

Bug fixes

  • runtime: Fixed bug#15280 and eweasel test#except034 that {EXCEPTION_MANAGER}.last_exception not cleared after successful retry if melted.
  • compiler: Correctly reported VEVI error for attributes initialized from a creation procedure by calling a once routine because the latter is not guaranteed to be executed on subsequent calls.
  • debugger: Fixed bug#15384: Debugger does not step at correct position (related to require else...)
  • debugger: now the debugger remembers correctly the breakpoint, even when recompiling from scratch.
  • compiler: Fixed some issues with non-conforming inheritance (bug#15224)

User changes

Developer changes

6.4.7.7062 (February 9th 2009)

New features

  • Eiffel2Java: void-safe, added void-safe example.
  • EiffelWeb: void-safe.

Improvements

  • compiler: attached attribute initialization in creation procedures is now detected not only by inspecting the top-level instructions, but also the nested complex instructions with several possible execution paths, like conditional instruction, multi-branch, etc.

Feature removed

Bug fixes

  • testing: Fixed a bug where minimization of test was not done resulting in very large regression tests.
  • compiler: Fixed eweasel test#attach047 where type of array of string passed as argument to the creation procedure of the root class should have an attached actual argument type.
  • compiler: Fixed eweasel test#svalid018 where a crash occurred in `process_converted_expr_as' because we failed to verify that the expression still compiles fine even if inherited, because although it might compile fine in the ancestor, in the descendant it might not if they use a different set of options (e.g. non-void-safe in parent and void-safe in descendant).
  • eiffelweb: Fixed issue with `hexa_to_ascii' to make sure we process correctly even incorrectly encoded URL. Added `insert_pair_without_encoding' and `parse_urlencoded_input'. Fixed input_data to return an empty string and not to report an error and the content_length is empty as it is permitted to do so.
  • eiffelweb: Fixed issue bug#15267 by inheriting from SHARED_STDIN and SHARED_STDOUT to provide `stdin' and `output' in CGI_IN_AND_OUT.

User changes

  • base: Made several changes in EiffelBase so that the same version can be compiled in void-safe mode as well as in non-void safe mode. The code that might not be compile anymore is `create {CELL [SOME]}' because default_create is not a creation procedure anymore.

Developer changes

  • studio: The Groups tool and Favorites tool are now based on ESF.
  • studio: Significant changes made in ESF tool foundations to further optimize startup and memory performance. Panels are no longer created unless the panel UI is actually needed.

6.4.7.6930 (February 2nd 2009)

New features

  • compiler: for enhanced backward compatibility with 6.3, estudio and ec/ecb have a new command line option `-compat' to launch EiffelStudio or the command line compiler with compilation settings compatible with those of 6.3. On Windows, you also have a new shortcut entry in the start menu for launching EiffelStudio in this compatibility mode.

Improvements

  • compiler: Better explanation for VDPR(3) errors when two or more precursor are available by listing all the precursors.
  • compiler: Non-void arguments are now detected not only when they are specified in the voidness tests in immediate preconditions, but also in inherited ones.

Feature removed

Bug fixes

  • compiler: Fixed eweasel test#attach042 and test#attach043 where type of agent was incorrect when target was of type `like Current' or when the routine had no open arguments, in both cases the compiler generated detachable types when attached were expected.
  • compiler: Fixed some regressions eweasel test#fixed119 and test#incr318.
  • compiler: Fixed invalid precursor missed detection thus fixing eweasel test#valid117.
  • runtime: Fixed eweasel test#runtime011 were a memory corruption could occur when twining a SPECIAL or a TUPLE object under certain circumstances.
  • studio: Fixed a bug where editor will disappear when debugging.

User changes

  • compiler: renamed VUPR errors to their ECMA name VDPR.

Developer changes

6.4.7.6833 (January 26th 2009)

New features

Improvements

  • wel: now void-safe
  • lex: now void-safe
  • encoding: now void-safe
  • process: now void-safe
  • time: added void-safe sample

Feature removed

Bug fixes

  • studio: Fixed bug#15253 where editor is missing from docking layout.
  • base: Fixed bug#15266 where we incorrectly merged the code value for {IO_EXCEPTION} and {RUNTIME_IO_EXCEPTION} thus breaking existing code not based on Eiffel exception object. (eweasel test#except035)
  • base: Fixed bug#15273 and eweasel test#except033 that an exception thrown through rescues caused infinite loop.
  • studio: Fixed the bug "Show disambiguated names" and "Show obsolete items" button on completion window did not function correctly and made tooltips on option buttons translatable.

User changes

Developer changes

6.4.7.6747 (January 19th 2009)

New features

Improvements

  • base: Updated the IMMUTABLE_STRING classes to have an efficient string extraction query `shared_substring' which will let you create a substring of an existing immutable string without actually duplicating the data.
  • studio: Added option in the new library dialog to show only void-safe libraries, for void-safe projects.

Feature removed

Bug fixes

  • compiler: Fixed a bug with pre/post actions which were always executed regardless of the specified condition.
  • runtime: Fixed eweasel test#store020 where our recoverable store mechanism could not retrieve an object if it was generic and using a formal as actual generic parameter in a generic derivation using an expanded type. This is because in 6.2, we decided not to perform the instantiation of the attribute as it was not working properly when generic derivation is a generic expanded type. For the time being, if there is a mismatch where expected type is a FORMAL_TYPE, we try to instantiate it in the current processed type and if there is a match then we know it is ok, otherwise we reject the code. This also fixes bug#15256.
  • runtime: Fixed eweasel test#store019 where using the SED facilities to store/retrieve attributes which are attached would fail.

User changes

Developer changes

6.4.7.6645 (January 12th 2009)

New features

  • studio: Added compile_all, syntax_updater and Eiffel image embedder tool to the EiffelStudio delivery. They are located under $ISE_EIFFEL/tools/spec/$ISE_PLATFORM/bin.
  • editor: Added `flush' to force a full load of texts.

Improvements

Feature removed

Bug fixes

  • compiler: Fixed bug#15235 where some C compilers do not like that we generate a C array of size 0.
  • compiler: Fixed correctly location reporting of error classes, using the location where the code is written which differs from the current class being analyzed.
  • compiler: Fixed bug#15139 by checking when parts of a multi-branch conditional instruction even when the inspect expression does not type check (see test#valid228).
  • compiler: Fixed test#attach039 by using written class when evaluating precursor features as the current feature may be inherited.
  • compiler: Fixed bug#15144 by checking that a self-initializing attribute is not processed recursively (see test#term169).
  • compiler: Fixed bug#15129 by using a mixed routine-attribute table for attributes that may be self-initializing (see test#final072).
  • studio: Fixed issue bug#15222 to respected existing note clause tags and values.
  • finish_freezing: Fixed typo reported in bug#15239.
  • net: Move definition of FD_SETSIZE before using the Windows header files so that we can really listen on 256 descriptors (breaking change introduced in the IPv6 version which is now the official).

User changes

Developer changes

6.4.7.6592 (January 5th 2009)

New features

Improvements

  • studio: Automatic class licenser now preserves all other note clause terms when replacing a license in the class text.

Feature removed

Bug fixes

  • studio: Fixed reporting of feature errors to report the correct class name when referring to parent class errors.
  • studio: Fixed EIS tool broken by either compiler changes or improper attachment usage.
  • studio: Fixed a library target compiled as an application target was not editable by EIS.
  • studio: Fixed a bug that note elements were not properly setup when recomputing configuration, which caused missing of some EIS entries.

User changes

  • net: The IPv6 version of the EiffelNet library is now the official one. The old one has been moved in the obsolete cluster.
  • compiler: The compiler now accepts attribute and note as keyword by default.
  • argument parser: The argument parser library introduces some breaking changes in deferred feature signatures due to the conversion to Void-Safe.
  • studio: Added built-in EIS variable "ISE_DOC" with value of "http://doc.eiffel.com".

Developer changes

6.4.7.6402 (December 27th 2008)

New features

Improvements

  • compiler: speed up degree 6 by not looking at the content of all .e files to figure out the associated class name. We now assume on the first pass that the file name is the class name. On EiffelStudio, if none of the file were buffered, we went from about 1 minute spent to just less than 3 seconds. The improvement should be even more when classes are on a remote drive.
  • studio: Set current line number as initial line number of the Go to line dialog. This fixed bug#15193.

Feature removed

Bug fixes

  • compiler: Fixed missing detection of VRFT errors in cases like "a: TUPLE [a: TUPLE [out: INTEGER]]". Fixes eweasel test#exec293.
  • compiler: Fixed catcall checker crashing when enabled. Fixes eweasel test#term166.
  • runtime: Fixed eweasel test#exec293 where accessing labels of a Void tuple would not cause a call on Void target exception.
  • studio: Fixed a bug that shortcut preferences with `+'/`Numpad +' could not be modified.

User changes

  • compiler: now the compiler does not produce the class progress output in batch mode. If you want the old behavior, you have to use -verbose option.

Developer changes

6.4.7.6313 (December 22nd 2008)

New features

  • base: Added `same_keys' to HASH_TABLE. You can redefine this feature to use a different comparison criterion for the keys.

Improvements

  • compiler: Improved implementation of ~ and expanded comparison to use `is_equal' directly rather than using `equal'.

Feature removed

Bug fixes

  • compiler: Fixed eweasel test#exec292 where type of inherited formals where incorrectly interpreted in descendants.
  • base: Fixed a bug that would not recognize a class name A_SOMETHING as a valid identifier for INTERNAL.
  • studio: New library dialog now correctly sorts the contents base on the library name and not the path.
  • studio: Fixed bug#15173: EiffelStudio crash when selecting library
  • runtime: Fixed eweasel test#runtime010 where certain allocation patterns could cause a major slow down during a garbage collection cycle.

User changes

  • base: We do not use is_equal in EiffelBase, but instead the ~ operator. This could break some of your code, especially with HASH_TABLE.

Developer changes

6.4.76164 (December 15th 2008)

New features

  • studio: In-grid-item selection in Error List tool.
  • editor: Customizing some editor attributes, fonts, line height and etc., per instance.

Improvements

  • studio: Tabulated format of copied selection from the Error List tool.

Feature removed

Bug fixes

  • studio: Fixed bug#14237 where some manipulations on the UI could corrupt the EiffelStudio docking layout.
  • studio: Fixed bug#12453 where VYCQ error would print the feature name in blue rather than in green.
  • studio: Added a protection for bug#15116 where we could still try to access `content' while EiffelStudio has already destroyed the panel.
  • studio: Fixed bug#15073 that Pick and drop from output window didn't work when no class tool was available.
  • compiler: Fixed eweasel test#multicon050 where compiler did not handle renaming of a routine with an alias into a routine without one as it still thought the alias was available.
  • compiler: Added printing of referenced configuration file in which there is a conflict. This fixes bug#15099.
  • compiler: Fixed an incorrect VUTA(2) error being reported when compiling a static access call in void-safe mode. This fixes eweasel test#valid223.
  • compiler: Fixed an incrementality corruption (bug#15061 and eweasel test#incr296) which would occur a feature has an invalid signature for one failed compilation before it is fixed again.
  • compiler: Fixed bug#15027 where if you have a class which was originally only in an override cluster and then keep it in the override cluster but also now in a normal cluster, then we would not remove the compiled information from the override cluster which would cause in a later compilation the class to be forcibly removed from the system even though it is still in use.

User changes

  • base: it is now using the new alias syntax for operators instead of obsolete syntax based on `infix/prefix' keywords. As a result some of your code may not compile.

Developer changes