Added new version 17.05 .

git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1849 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
eiffel-org
2017-05-29 12:46:02 +00:00
parent dfd3fa4eb3
commit 0990b04ad7
2912 changed files with 60035 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
[[Property:uuid|05AF3CEC-7026-498F-9177-79D2BA4469A0]]
[[Property:weight|5]]
[[Property:title|Release notes for EiffelStudio 15.12]]
[[Property:link_title|15.12]]
==Graphical environment==
===What's new===
* EiffelStudio has been updated to support the new agent's type notation which removes the first actual generic parameter, this change impacts the various wizards and all the Eiffel code included in the EiffelStudio delivery. To help users migrating their code, the syntax_updater command line tool has been updated to allow an easy update of both the Eiffel classes and their corresponding ECFs.
* EiffelStudio is now integrated with the new support site entirely rewritten using EWF and in beta until now.
===Improvements===
* When displaying the flat of code involving conversions of manifest constants such as assigning 1 to an INTEGER_8 variable, we will simply show 1 and not `1.to_integer_8` which is not valid Eiffel code.
===Bug fixes===
* Fixed display of flat form involving a procedure agent.
* Improved preferences hanlding for the Eiffel Inspector tool.
==Compiler==
* Click [[Major changes between ISE Eiffel 15.08 and ISE Eiffel 15.12|here]] for the compiler release notes.
==Libraries==
===General===
All libraries have been updated to the latest syntax for the agent's type.
===Base===
* Exported `read_to_string` from FILE to allow user side buffering.
===Preferences===
* Added a precondition to `add_parent_structure_preference_row` and `formatted_name` that a preference name cannot be empty (this might be the case when preference names get erroneously converted from non-ASCII strings, e.g. as it was with incorrect implementation of code analysis preferences).
* Avoided automatic formatting of a preference name if it has whitespace to allow for preference names with underscore characters or those that are pre-formatted.
* Added a creation procedure to pass a preference grid control explicitly in case some fine-tuning is needed.
* Changed type of preference values to READABLE_STRING_32 to avoid conversion when the values are loaded from XML where values are returned as READABLE_STRING_32.
===XML===
* Fixed issue with xml source file having the %R character for the custom parser which would be ignored.
* Fixed xml parsing issue with CDATA endings with ]]]. For instance <![CDATA[Foo bar ref [1]]]>
* Provided a basic implementation to output character data as <[!CDATA[ ... ]]> for xml printer.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,40 @@
[[Property:uuid|7AE5F7D4-DA75-4866-A4AE-2A18872032AE]]
[[Property:weight|4]]
[[Property:title|Release notes for EiffelStudio 16.05]]
[[Property:link_title|16.05]]
==Graphical environment==
===What's new===
* Ability to target more than one Microsoft C compiler. We now support VS 2015 and above. <br/>A known issue with VS 2015 is that using the console in a graphical application will cause a crash. A separate runtime update will be available shortly.
===Improvements===
* Update wizards to allow setting the SCOOP concurrency setting
* Flat short involving conversions on numeric constants will not show the conversion calls.
* Add checks for validity of regular expressions used in include and exclude file rules in ECF specified in EiffelStudio dialog and rejecting invalid regular expression with the corresponding error dialog to avoid a possibility to store ECF that cannot be retrieved.
* The '''Add Library''' dialog was revisited to enhance the search which now looks into name, description, tags, ... . In addition, it is also possible to search for a library including a class name.
* The '''Execution Parameters''' are now saved as xml file. It is also possible to export/import such execution parameters xml file from the ''Execution Parameters'' dialog, using the drop-down menu.
===Bug fixes===
* Fix crash in bug report submission dialog when a network problem occurs
* Fix crash when trying to save an empty editor tab (see bug#19178)
* Fix metric tool that stopped working due to a change in the interface of the <code>ROUTINE</code> class in 15.12 (see bug#19212).
==Compiler==
* Click [[Major changes between ISE Eiffel 15.12 and ISE Eiffel 16.05|here]] for the '''compiler release notes'''.
==Libraries==
===General===
* Update to the latest version of the Eiffel Gobo library
* New library ''etar'' located at <code>$ISE_LIBRARY/contrib/library/utility/archive/etar</code>.
===Vision2===
* <code>upper_bar</code> and <code>lower_bar</code> are now obsolete. Use instead a vertical box where the first item is the upper_bar and the last item the lower_bar.
* Vision will now keep windows open even if not referenced. This address a long standing gotcha for beginners. As a consequence, it is critical that code close or destroy windows when they are not needed anymore, otherwise they will be displayed until the application termination.
* Fix issue preventing Vision applications to work correctly in SCOOP mode
* For proper SCOOP handling, the last instruction in a creation procedure that initializes GUI objects should be <code>{EV_APPLICATION}.launch</code>.
* Use a passive region for an application cell to avoid creating a new thread for no reason.
* Fix minimum size computation of windows with Aero Glass. When compiling code using the latest versions of Visual Studio, the minimum size of a window was slightly smaller than what it should have been.
===WEL===
* Fix invalid computation of <code>null_terminated_strings</code>.
* Fix improper wrapping of <code>WEL_HD_NOTIFY</code> we used an <code>INTEGER_32</code> when a <code>POINTER</code> should have been used (causing some possible loss of data and some memory access violation).

View File

@@ -0,0 +1,37 @@
[[Property:uuid|925835D5-E5F1-4FE2-BF6A-5F350C4083CC]]
[[Property:title|Release notes for EiffelStudio 17.01]]
[[Property:link_title|17.01]]
[[Property:weight|3]]
==Graphical environment==
===What's new===
* Added support for '''code templates''' via completion dialog. Code templates provide predefined but customizable program schemes for frequently encountered situations. Potentially applicable code templates come up automatically, as part of the completion mechanism; you can select any relevant one and then update the details that correspond to the specific situation (variable names etc.). The mechanism also includes an easy way to add your own code templates, to complement those included as part of the delivery (only a few at the moment). Code templates are a major new addition to EiffelStudios extensive existing mechanism to support software reuse.[https://www.eiffel.org/doc/eiffelstudio/Code%20Templates learn more].
* Added new solution to '''import settings''' from previous installation. A dialog is popuped when a new version of EiffelStudio is first launched, and available at any time from the `Tools > Import Settings` menu. This functionality addresses a frequently expressed request.
===Improvements===
* Changed how the debugger objects tool displays the `Result` value, now it does not have any parent row.
* Added `ISE_COMPILE_ALL_FLAGS` environment variable support to the `compile_all` tool (its value is added to compile_all command line arguments).
* Modified `compile_all` tool, to exclude ecf redirection file from its scope.
==Compiler==
* Added notion of '''capability''' for specifying what settings a particular '''library supports'''. The key advantage is that even if you compile in different settings and use libraries with different properties (for void safety, SCOOP concurrency etc.) you can now use a '''single ECF''' (Eiffel Configuration File) rather than maintaining different ECFs for different configurations. This mechanism fulfills a wish often expressed by Eiffel developers, particularly those in charge of large applications. At the moment the settings include cat-call detection, concurrency and void safety. A project or a library with a specific setting cannot rely on a library with insufficient capabilities.
* Configuration option "Are types attached by default?" defaults to True when reading non-void-safe projects so that if the project is changed to be void-safe, the recommended default for attachment status of class types without marks is used.
* Removed a possibility to set void safety level for a specific class or cluster, it can be done only for a whole library or project.
==Libraries==
===General===
* Added new JSON serialization solution under `contrib/library/text/parser/json/library/serialization`.
===EiffelNet===
* Added receive and send timeout.
* Added C functions to use socket functions without raising exception on I/O networking error.
===EiffelWeb===
* Changed the standalone connector implementation to avoid raising exception for any networking error (it brings better debugger experience).
* Added new websocket standalone connector to be able to build within the same processor a web service and a websocket service.
* Change the networking programing in EiffelWeb components, to benefit from recent improvements on EiffelNet.
* Added finer control on standalone connector. It is now possible to fine tune the standalone connector (concurrent settings, timeout values, ...)
----
See [https://dev.eiffel.com/EiffelStudio_17.01_Releases change log]. for more details.

View File

@@ -0,0 +1,54 @@
[[Property:uuid|A8615DC3-B389-44AA-9BCB-7E9B793A1599]]
[[Property:weight|2]]
[[Property:title|Release notes for EiffelStudio 17.05]]
[[Property:link_title|17.05]]
==Graphical environment==
===What's new===
* The EiffelStudio Inspector was extended to check '''obsolete features''' and '''obsolete calls''' and make the users aware of coming removal. For that, the inspector checks for presence of well formatted '''date in obsolete message''' (following the `[yyyy-mm-dd]` format). Reports '''severity of obsolete calls''', depending on the associated date (`suggestion` when date is in the future, `warning` for less than 1 year old, and `error` for more than 1 year old). Reports '''obsolete features''' when associated date is more than 1.5 year old.
* Added shortcuts and contextual menu to '''restore recently closed tabs'''.
* Using Pick&Drop functionality, users can now '''pick token for local variables and arguments''' from the EiffelStudio editor and formatters. Drop it into editor, and cursor will be moved to related declaration. Note that for now only normal feature locals and arguments are supported (this excludes inline agent, inline separate, object tests, and across variables).
===Improvements===
* Improved the '''completion mechanism''' within the editor (especially when inline agent, or inline separate are before the cursor).
==Compiler==
* Added '''Visual Studio 2017''' support for C compilation on Windows.
* Improved performance of object initialization checks in complete void safe mode when a class has hundreds of attributes and features (including inherited ones).
* On Windows, you may experience a '''breaking change''' with respect to the compilation of Eiffel libraries wrapping the Win32 API.
** Indeed, to allow users to use in the same system libraries such as cURL, SSL, zeroMQ, ... ; the C generated code is now compiled using `WIN32_LEAN_AND_MEAN`.
** As a result, it is not sufficient anymore to just include `<Windows.h>` to use a Windows API, you should look at the MSDN documentation and include the header they say you should be using.
** The unfortunate result of this change is that you have to go through your externals and fix them according to the MSDN documentation. On the other hand, the positive aspect is that the change will be backward compatible with all the versions of EiffelStudio.
==Libraries==
===Breaking changes===
* To have a '''fully void-safe docking library''', some creation procedures were updated and '''now require a docking manager object''' as argument.
===General===
*Updated libraries and examples included with EiffelStudio installation to '''avoid obsolete feature calls'''.
* Added a new creation procedure to `STRING_8` and `IMMUTABLE_STRING_8`: `make_from_c_substring (c_string: POINTER; start_pos, end_pos: INTEGER)` to initialize from a substring between two position of a `c_string`.
===C_library===
* Updated `libpng` library to version 1.6.28
* Updated `zlib` library to version 1.2.11
===JSON===
* Added `is_string`, `is_number`, ... query to `JSON_VALUE`.
* Fixed parsing of Integer 64 values when they are greater than maximum value of Integer 32.
===EiffelWeb ===
* Improved and fixed various issues in the libcurl and EiffelNet '''http_client''': fixed query, and form data encoding; better support for port number in net implementation, follow redirection only for 3** status code, allow forcing the encoding for the form data (`multipart/form-data` or `application/x-www-form-urlencoded`).
* Fixed computation of `path info` in WSF_REQUEST for extreme cases.
===ROC CMS===
* The ROC CMS solution (used for eiffel.org) got many '''improvements''':
** better control on '''published''' state, added notion of '''author and editor''' for content.
** User can set a human friendly '''profile name''' (for security, it is better that usernames do not appear in pages).
** Extracted '''administration''' pages from normal website (improved performance, and allow to use specific admin theme).
** Improved '''configuration of content formats''' by selecting various available filters.
** New '''modules''' (sitemap, messaging, wikitext, embedded feed aggregation, google search v2, ... )
----
See [https://dev.eiffel.com/EiffelStudio_17.05_Releases change log]. for more details.

View File

@@ -0,0 +1,6 @@
[[Property:title|EiffelStudio 5 release notes]]
[[Property:link_title|5.x]]
[[Property:weight|15]]
[[Property:uuid|f4a705a2-86ac-013e-21f2-a99affd7b450]]

View File

@@ -0,0 +1,63 @@
[[Property:title|Release notes for EiffelStudio 5.0]]
[[Property:link_title|5.0]]
[[Property:weight|-8]]
[[Property:uuid|943526cc-28e6-748d-a790-502c05c723f6]]
==Graphical environment==
* New Look and feel.
* New way of starting EiffelStudio and simplified the process of compiling an existing project.
* New editor with:
** smart syntax highlighting
** feature completion (by pressing Ctrl+Space after an identifier).
** syntax completion of major control statement (if, from, is,...)and of symbols such as `{`, `[`, `(`, `"`,...
** smart auto indenting
** block indent and exdent.
** infinite level of Undo/Redo
* When edition of a class text which has been successfully compiled, the class will be fully `pick-and-droppable`.
* Faster rendering for Clickable, Flat, Contract (previously known as Short) and Flat Contract views.
* System tool has been replaced by a `project settings` window. The underlying mechanism of the configuration file is kept, but all changes are done through a nice GUI making it simpler for beginners to create their first configuration file.
* Toolbars are now customizable
* EiffelCase has been merged within EiffelStudio to provide a true reverse engineering using the BON notation.
==Compiler==
The compiler has been improved in many ways and some functionality have been added. [[Major changes between ISE Eiffel 4.5 and ISE Eiffel 5.0|Check it out]] .
==Debugger==
* New debugger functionalities:
** one can step-in, step-out, step-by-step when they want to.
** one can put a breakpoint on the fly (Windows Only)
** one can see all local variables and arguments.
** one can set breakpoints in all kind of assertion clauses except in invariants.
* Debugging is faster.
==Documentation==
* New documentation generation (limited now to HTML) which is completely clickable as if within EiffelStudio. It also includes an EiffelCase-like documentation generation.
* Generation of XMI which can be used in tools such as Rational Rose.
==Libraries==
===EiffelBase:===
* No more <code>GENERAL </code>class as proposed by the NICE committee. It has been replaced by ANY which does not inherit any more from <code>PLATFORM</code>.
* Adaptation of the <code>ARRAY</code> class to the ELKS 2000 standard.
* This implies a change in our <code>CONTAINER</code> class where we renamed <code>empty</code> into <code>is_empty</code> and made <code>empty</code> obsolete. If you were inheriting from <code>CONTAINER</code> and redefining <code>empty</code>, make sure to update your code so that you redefine <code>is_empty</code> instead. That way your polymorphic calls will still work as expected without having to change all call to <code>empty</code> into calls to <code>is_empty</code>.
* New implementation of <code>is_equal</code> on <code>LIST</code> which will now check that two lists are identical if their items are identical.
* New implementation of <code>copy</code> on <code>LIST</code>.
* New implementation of an iterative <code>is_equal</code> on <code>TREE</code> which will now check that two trees are identical if their items are identical.
* New implementation of an iterative <code>copy</code> on <code>TREE</code>, which recursively copies the tree.
* New <code>ROUTINE</code> classes which perform better type checking on argument passing.
* Introduction of binary operations on <code>INTEGER</code> types: <code>infix "&"</code>,<code>infix "|"</code>, <code>bit_xor</code>, <code>bit_not</code>, <code>bit_shift</code>, <code>infix "|>>"</code>, <code>infix "|<<"</code>and <code>bit_text</code>.
* Removed <code>infix "^"</code> from <code>NUMERIC</code>. It does not break any inheritance, but break clients that were using this operator on an entity declared of type NUMERIC. This is due to the different return type of this operator depending the NUMERIC type you are handling.
* Changed the signature of <code>pruned</code> in <code>BINARY_SEARCH_TREE</code> to take an extra argument. This was necessary to fix a problem that caused the `parent` attributes to become inconsistent under certain conditions when calling <code>pruned</code>.
* Re-implemented the features <code>disjoint</code> and <code>symdif</code> of <code>SUBSET</code>. These features caused problems under certain conditions and were also quite inefficient. The new implementation of these features uses the strategy pattern to choose among different versions of these calculations depending on the properties of the elements contained in the set.
* All features on <code>SUBSET</code> that take another subset as an argument(e.g. <code>intersect</code>) now accept any other subset type as an argument, independent of its underlying implementation, and not only subsets of type `like Current`.
* Many smaller bug fixes for bugs that were reported by our customers or that have been discovered during our development andtesting.
===WEL:===
Modified classes relative to the use of registry keys to be written only using Eiffel and externals to Win32 API (no more C intermediates). In the process <code>close_key</code> and <code>delete_key</code> are now commands and not queries. To find out if it their call was successful, you can query <code>last_call_successful</code>.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,36 @@
[[Property:title|Release notes for EiffelStudio 5.1]]
[[Property:link_title|5.1]]
[[Property:weight|-9]]
[[Property:uuid|cab7da39-416f-3330-0f67-b41cb425b537]]
==Graphical environment==
* Numerous improvements in usability and bug fixes.
* Richer class and cluster creation dialogs.
* Class name completion in the editor (by pressing Ctrl+Shift+Space half-way through the class name).
* Editor now supports drag-and-drop of the selection.
* When debugging a project from EiffelStudio, the current directory will be your project directory. It is a change from previous version where:
** on Windows, it used to be launched in the W_code subdirectory of your project directory
** on Unix, it used to be launched from the same directory where `estudio` (or `ebench`) was launched.
* EiffelStudio GUI now also available on Unix platforms and Windows 9x/Me
==Compiler and .NET==
* Click [[Major changes between ISE Eiffel 5.0 and ISE Eiffel 5.1|here]] for more details on compiler improvements and full Eiffel support on .NET
==Libraries==
===EiffelBase===
* It is now forbidden to create a <code> BIT_REF </code> or a <code> BIT X </code> object using its creation procedure (before it was accepted but did not work)
* Added <code> make_temporary_name </code> in <code> FILE_NAME </code>
* Made <code> to_c </code> obsolete from class <code> INTEGER_INTERVAL </code>
* Changed semantic of <code> split </code> from class <code> STRING </code>
* Fixed a bug in <code> clear_all </code> from <code> HASH_TABLE </code> that kept a reference to the last found item. Now it does not keep the reference after a call to <code> clear_all </code>.
===Vision2===
* Support for Vision2 applications on GTK platforms.
* Some changes in the Vision2 library have been made, [[Revisions and Bug Fixes|check here on how to update your code]] .
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,110 @@
[[Property:title|Release notes for EiffelStudio 5.2]]
[[Property:link_title|5.2]]
[[Property:weight|-10]]
[[Property:uuid|4e54c64b-d9a3-8683-d266-1972217a7a1a]]
==Graphical environment==
* Added a status bar, which gives a lot of information, such as the state of the compilation or the name of the current project.
* Clicking feature clauses in the feature tree now centers the editor on the selected feature clause.
* More specific icons in the feature and cluster trees, so that identifying deferred classes and the nature of features is now straightforward.
* Up to 10 [[External commands editor dialog|external commands]] can now be defined and called from the '''Tools''' menu.
* The new '''Quick compile''' command lets you recompile only the classes that have been edited in EiffelStudio, skipping the sometimes tedious degree 6, that looks for modified classes.
* Control picking now has a configurable effect.
* More improvements in usability and bug fixes.
==Compiler==
* Click [[Major changes between ISE Eiffel 5.1 and ISE Eiffel 5.2|here]] for more details on compiler improvements and full Eiffel support on .NET
==Debugger==
* Right-clicking on one of the run buttons will pop up a dialog enabling you to choose the command line argument (it is a shortcut for `Project Settings`-> Debug tab).
* Expressions can now be dynamically evaluated in the debugger. ( [[Expression evaluation|info]] )
* Conditional breakpoints. ( [[Breakpoints|info]] )
* Classes can now define <code> debug_output </code>, a feature inherited from <code> DEBUG_OUTPUT </code>, whose string result is automatically displayed in the debugger for all objects of that type. ( [[Debug output|info]] )
* Possible stack overflows can now be detected in the debugger before they occur. ( [[Stack overflow prevention|info]] )
==Libraries==
===EiffelBase===
* Improved speed of search operations in <code> ARRAYED_LIST </code> and <code> HASH_TABLE </code>.
* Reduced number of exported features in <code> TUPLE </code>.
* Updated <code> INTERNAL </code> and <code> TUPLE </code> to accept <code> INTEGER_XX </code> based queries/commands.
* <code> STRING </code> changes:
** Fixed <code> is_integer </code> to return False for strings of the form "(-|+)[a-zA-Z]+[0-9]*)"
** Improved speed of <code> to_lower </code> and <code> to_upper </code>.
** Updated for ELKS 2001 conformance:
*** Changed signature of <code> out </code> and <code> replace_substring </code> to use <code> STRING </code> instead of `like Current`.
*** Added <code> keep_tail </code>, <code> keep_head </code>, <code> remove_tail </code>, <code> remove_head </code> and make <code> head </code> and <code> tail </code> obsolete.
*** Added <code> string </code>, <code> same_string </code>, <code> has_substring </code>, <code> fill_with </code>, <code> insert_string </code>, <code> insert_character </code>, <code> as_lower </code>, <code> as_upper </code>.
*** Modified <code> make_from_string </code> so that no sharing of internal string is done.
*** Made <code> remake </code>, <code> replace_character </code> and <code> insert </code> obsolete.
===EiffelThread===
* Fixed crashes when using <code> join </code> or <code> terminated </code> from <code> THREAD_CONTROL </code>.
===EiffelTime===
* Rewritten so that no additional C libraries is needed. Therefore you have to update your project configuration files to reflect this change, i.e. removing the include directory and the object file of the old EiffelTime library.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here to see list of update and modification to Eiffel Vision2]] .
===WEL===
* Changed type of non-exported feature <code> internal_data </code> of <code> WEL_WINDOW </code> from <code> INTEGER </code> to <code> POINTER </code>.
* Fixed a GDI memory leak when creating/releasing instances of descendant of <code> WEL_CONTROL </code>.
==Patch releases==
===Version 5.2.1402:===
* Put Windows and Unix version to the same version number.
* Fixed EiffelWeb documentation and example.
* Fixed minor issues found with EiffelVision2 on Unix and Windows which were affecting EiffelBuild.
* Fixed incorrect configuration file specification for EiffelVision2 examples and wizards on Unix platforms where application could be linked dynamically with `libpng` but should not.
* Fixed EiffelStore handle for Oracle so that it works fine when compiled with the Borland C compiler.
* Fixed incorrect version number in VERSION file on Unix platforms.
===Version 5.2.1313:===
* Fixed resource leak on Windows 98 and Windows Me.
* Fixed incorrect implementation of <code> area </code> and <code> substring </code> for <code> STRING </code> in dotnet mode.
* Fixed issue with setting of arguments. After restarting EiffelStudio the command line argument contains an extra `]` character.
* Fixed issue with working directories where only the first one ever set was used even if new ones have been set afterwards.
* Fixed issue in IL code generation where having a class that inherits from a non-Eiffel .NET class. And the class has the following features: <br/>
<code>
a: ARRAY [like f]
f: STRING is
do
end</code>
Then you could neither load nor execute the generated code.
* Fixed issue with incorrect C code generation of inspect instruction based on character values above 128.
* Fixed bug in <code> copy </code> from <code> STRING </code> where following code was violating <code>valid_count</code> invariant from <code> STRING </code>:
<code>
local
s, t: STRING
do
create s.make (9)
create t.make (10)
t.append ("1234567890")
s.copy (t)
end</code>
* Fixed incorrect C file naming when generating a .NET system that uses a C++ external (it should be .cpp, not just .c).
* Enabled support for Borland C compiler in .NET.
* Fixed issue where generating documentation for all/library cluster would stop during generation without completing.
* Fixed crash in diagram tool when moving label on client/supplier link between two classes.
===Version 5.2.1123:===
* Fixed issue when inheriting a .NET class that has some static constants defined.
===Version 5.2.1122:===
* Fixed issue when opening the about dialog of EiffelStudio.
* Enabled EiffelStudio for all users on a machine, not just for the one installing EiffelStudio.
===Version 5.2.1118:===
* First initial release of EiffelStudio 5.2
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,98 @@
[[Property:title|Release notes for EiffelStudio 5.3]]
[[Property:link_title|5.3]]
[[Property:weight|-11]]
[[Property:uuid|dd116cc7-40cf-b317-b9c0-b05d4fe0edf7]]
==Graphical environment==
===Changes===
* In project settings, we now accept a root class without creation procedure.
* In .NET code generation, we do not force the C compilation at each compilation. It is only done when necessary (for example when a C external has been added).
* Incremental .NET code generation (See [[Major changes between ISE Eiffel 5.2 and ISE Eiffel 5.3|compiler release notes]] for more info).
* Recoverable storable (See [[Major changes between ISE Eiffel 5.2 and ISE Eiffel 5.3|compiler release notes]] for more info).
===Bug fixes===
* Fixed issue with setting of arguments. After restarting EiffelStudio the command line argument contains an extra `]` character.
* Fixed issue with working directories where only the first one ever set was used even if new ones have been set afterwards.
* Fixed issue where generating documentation for all/library cluster would stop during generation without completing.
* Fixed crash in diagram tool when moving label on client/supplier link between two classes.
* Fixed resource leak on Windows 98 and Windows Me.
* Fixed issue in projects where clusters are specified with relative path would not compile after adding a local assembly.
* Fixed problem with cluster tool management where moving classes around or looking up a class will generate an error box instead of performing the requested operation.
* Fixed incorrect configuration file specification for EiffelVision2 examples and wizards on Unix platforms where application could be linked dynamically with `libpng` but should not.
* Fixed disappearance of EiffelStudio when debugging a routine `infix` or `prefix` in which an exception was raised. This issue was only occurring with melted code (usually noticeable when using a precompiled library).
* Changing the project specific command line arguments will not touch the project settings configuration file (ace file).
==Compiler==
* Click [[Major changes between ISE Eiffel 5.2 and ISE Eiffel 5.3|here]] for the compiler release notes.
==Libraries==
===CECIL===
* Enforced definition of EIF_OBJECT so that it is different from EIF_REFERENCE to better catch errors when passing a protected reference to a feature accepting an unprotected reference and vice versa. Because of this change some C code might not compile anymore which is good as it points out that code was doing something wrong that could corrupt the Eiffel memory.
===EiffelBase===
* Added in <code> INTERNAL </code> the following new features: <code> field_static_type_of_type </code>, <code> class_name_of_type </code>, <code> type_name </code> and <code> type_name_of_type </code>.
* Added <code> truncated_to_integer_64 </code> in <code> REAL </code> and <code> DOUBLE </code>.
* Added <code> to_integer_64 </code> in <code> STRING </code>.
* Added new classes <code> MEMORY_STRUCTURE </code>, <code> MANAGED_POINTER </code> and <code> C_STRING </code> to better manage access to C and C++ memory structure.
* Fixed incorrect implementation of <code> area </code> and <code> substring </code> for <code> STRING </code> in dotnet mode.
* Fixed bug in <code> copy </code> from <code> STRING </code> where following code was violating <code>valid_count</code> invariant from <code> STRING </code>:
<code>
local
s, t: STRING
do
create s.make (9)
create t.make (10)
t.append ("1234567890")
s.copy (t)
end</code>
* Added support for storable in .NET. However .NET and classic implementation are completely different and <code> independent_store </code> will not be able to retrieve a storable file if not made using the same code generation.
* Fixed a bug in <code> is_equal </code> from <code> LIST </code> where comparing two lists of different counts could break the comparison: <br/>
<code>
make is
local
a, b: LIST [INTEGER]
do
create {ARRAYED_LIST [INTEGER]} a.make (2)
a.extend (10)
create {ARRAYED_LIST [INTEGER]} b.make (2)
b.extend (10)
b.extend (11)
print (equal (b, a))
end</code>
* Fixed .NET implementation of <code> open_write </code> and <code> create_read_write </code> in <code> FILE </code>. They were not resetting the file size to zero if file already existed.
* Added <code>correct_mismatch</code> on <code>ANY</code> used for `recoverable storable`.
* Added <code>correct_mismatch</code> on <code>HASH_TABLE</code> to enable retrieval of the 5.1 and older version of <code>HASH_TABLE</code>.
* Fixed bug in implementation of <code>copy</code> and <code>is_equal</code> for <code>TREE</code> and descendant classes. Now descendants of <code>TREE</code> that would like to compare additional attributes of their class needs to redefine <code>node_is_equal</code> whose default implementation will always result in a true value.
* Changed default semantic of <code>make</code> and <code>put_child</code> from <code>FIXED_TREE</code>, to preserve existing semantic, you should use <code>make_filled</code> and <code>replace_child</code> instead.
===Eiffel2Java===
* Updated library so that it works both in classic and dotnet mode.
===EiffelCOM===
* Fixed crash in <code>ccom_set_name</code> from <code>FONT_IMPL_PROXY</code>.
===EiffelNet===
* Fixed assertion violation of call to <code> to_integer </code> in feature <code> get_content_length </code> from <code> HTTP_PROTOCOL </code> if assertions are enabled on EiffelBase.
===EiffelStore===
* Updated library so that it works both in classic and dotnet mode.
* Fixed issue with oracle handle which did not work with the included Borland C compiler.
* Removed <code> nb_classes </code> from <code> EXT_INTERNAL </code>.
* Removed need for additional object file (`support.lib' on Windows and `libsupport.a` on Unix platforms), so make sure to remove it from your project configurations.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here to see list of update and modification to Eiffel Vision2]] .
===WEL===
* Removed inheritance to <code>WEL_STRUCTURE</code> in <code>WEL_STRING</code>, it now inherits from new <code>C_STRING</code> class. In the process removed the following features which were inherited from <code>WEL_STRUCTURE</code> and did not make sense to <code>WEL_STRING</code> <code>memory_copy</code>, <code>structure_size</code>, <code>dispose</code>, <code>set_item</code>, <code>set_shared</code>, <code>set_unshared</code>, <code>shared</code>, <code>to_integer</code>. No replacements have been provided for those features. Made <code>initialize</code> and <code>initialize_with_character</code> obsolete, instead we now provide two features inherited from <code>C_STRING</code> <code>fill_blank</code> and <code>fill_value</code>.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,96 @@
[[Property:title|Release notes for EiffelStudio 5.4]]
[[Property:link_title|5.4]]
[[Property:weight|-12]]
[[Property:uuid|185d86b7-8ddc-20ad-6343-eeb86f413739]]
==Graphical environment==
===Improvements===
* Added support for mouse wheel in editor and associated parameterization in preferences.
* Cluster tree is not collapsed anymore between compilation.
* All callers will not show empty entries.
===Bug fixes===
* Fixed issue where setting the string background color to `auto` in the preferences will set it to a black color next time your relaunch EiffelStudio.
* Fixed issue where typing in an empty features tree will close down EiffelStudio.
* Fixed issue with BON diagram where expanded client links were not properly displayed (the expanded bar was drawn on top of classes instead of on the link itself).
==Debugger==
===Improvements===
* Ability to debug .NET applications from EiffelStudio. It behaves like the traditional debugger except with the current limitations:
** no conditional breakpoints
** no expression evaluation
** no expansion to see attributes of non-Eiffel objects
===Bug fixes===
* Fixed issue on Unix platforms where passing more than 5 arguments will disable debugging and ultimately crash the environment.
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Compiler==
* Click [[Major changes between ISE Eiffel 5.3 and ISE Eiffel 5.4|here]] for the compiler release notes.
==Libraries==
===Eiffel2Java===
* Fixed incorrect memory freeing in <code>get_string</code> in <code>JNI_ENVIRONMENT</code> that could cause some memory corruption.
* Fixed <code>VDRD</code> error in method_id from <code>JAVA_OBJECT</code>.
===EiffelBase===
* Optimized <code>i_th</code> from <code>PRIMES</code> for the first 200 prime numbers.
* Fixed bug in <code>generic_typecode</code> from <code>TUPLE</code> in .NET implementation which fixed an issue with <code>is_reference_item</code>.
* Made <code>TUPLE</code> a descendant of <code>HASHABLE</code> and defined <code>hash_code</code> (based on the hash_codes of the elements of a <code>TUPLE</code>).
* Added <code>default_create</code> as creation procedure of <code>TUPLE</code> and made <code>make</code> obsolete.
* Added convenience features to <code>TUPLE</code>: <code>put_XX_item</code> where `XX` can be replaced by `character, boolean, integer, double,...`.
* Optimized <code>ROUTINE</code>, <code>PROCEDURE</code> and <code>FUNCTION</code> implementation to speed up agent calls by a factor of 2 to 3. Removed <code>open_operand_type</code> from <code>ROUTINE</code> as its specification was only used internally and specification was not precise enough to be used by clients of <code>ROUTINE</code>.
* Fixed <code>append</code> from <code>SEQUENCE</code> to not perform a <code>deep_clone</code> when passed argument is the same reference as Current. This was a problem when the base class of the type of the elements inherited from <code>MEMORY</code> and redefined <code>dispose</code>. You could possibly end up freeing twice an external resource.
* Changed implementation of <code>INTERACTIVE_LIST</code> to be based on <code>ARRAYED_LIST</code> rather than on <code>LINKED_LIST</code>.
* Added efficient implementation of <code>append</code> in <code>ARRAYED_LIST</code>.
* Fixed bug in multithreaded mode when you open in two different threads a different file with a different mode. For example one is in read mode, the other one is in write mode. If the operation happens at the same time, you could end up with two files open in read mode or two files open in write mode, which is not the expected behavior.
===EiffelNet===
* Fixed bug in <code>set_delay</code> and <code>set_nodelay</code> in <code>NETWORK_STREAM_SOCKET</code>, because their implementations were inverted.
* Fixed incorrect spelling of <code>maximum_seg_size</code> in <code>NETWORK_STREAM_SOCKET</code>.
* Added recoverable storable to EiffelNet (was not included in previous version although recoverable storable was available for files).
* Fixed <code>SMTP_PROTOCOL</code> to follow more closely SMTP RFCs.
* Added support for multi-line error codes in <code>SMTP_PROTOCOL</code>.
===EiffelTime===
* Improved speed of <code>DATE</code> and <code>TIME</code> comparison.
* In <code>DATE_VALUE</code> added <code>ordered_compact_date</code> and made <code>compact_date</code> obsolete.
* In <code>DATE</code> added <code>make_by_ordered_compact_date</code> and <code>make_by_compact_date</code> obsolete.
* In <code>DATE_VALIDITY_CHECKER</code> added <code>ordered_compact_date_valid</code>.
* Fixed <code>C_DATE</code> to buffer the current time rather than querying it for each of the time components. Not doing that was causing a bug in <code>DATE</code>, <code>DATE_TIME</code> and <code>TIME</code> where if the computation was done on December 31st at 23:59:59 2003, we could end up with a date of January 1st 2003, therefore being one year off. This is a breaking change from before and if you are using <code>C_DATE</code>, use <code>update</code> before each call to the *_now queries if you expected to reflect the time at the time of the query.
===EiffelThread===
* Added support for .NET
* Made <code>OBJECT_OWNER</code> obsolete
* Added <code>wait_with_timeout</code> in <code>CONDITION_VARIABLE</code>
* Added <code>READ_WRITE_LOCK</code> class to be used in a system where few writes are done compare to reads. A typical example of its use would be to have a thread safe lookup table where few insertions are done.
* Now a C externals that might block the execution of a system, should be marked `blocking`. [[Major changes between ISE Eiffel 5.3 and ISE Eiffel 5.4|See compiler changes for more details]] .
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here to see list of update and modification to EiffelVision2]] .
===EiffelWeb===
* Fixed issue when sending exception trace to browser. On most servers you were getting an internal error rather than the exception trace.
* Fixed issue with <code>cookies</code> from <code>CGI_ENVIRONMENT</code> as keys were stored as items, now the keys are stored as keys, items as items.
===WEL===
* Renamed <code>convert</code> from <code>CONVERTER</code> class into <code>extract_definition</code>.
* Renamed <code>convert</code> from <code>WEL_FONT_FAMILY_ENUMERATOR</code> class into <code>update_current</code>.
* In <code>WEL_TREE_VIEW</code>, calling <code>deselect_item</code> will now really deselect the item, whereas previously, it only caused the item to be redrawn without selection.
* In <code>WEL_REGISTRY</code>, <code>open_value_key</code> will now accept an empty string so that the default key value can be read.
* Fixed issue with <code>dword_value</code> in <code>WEL_REGISTRY_KEY_VALUE</code> which returned incorrect values.
* Made <code>make</code> in <code>WEL_REGISTRY_KEY_VALUE</code> accepts only string values, if you want to create a new instance with a value of a different type you need to use the new creation procedure <code>make_with_value</code>.
===.NET libraries===
* Renamed <code>THREAD</code> and <code>MUTEX</code> into <code>SYSTEM_THREAD</code> and <code>SYSTEM_MUTEX</code> to avoid name conflicts with EiffelThread.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,83 @@
[[Property:title|Release notes for EiffelStudio 5.5]]
[[Property:link_title|5.5]]
[[Property:weight|-13]]
[[Property:uuid|0d5bdd1d-e35b-a37e-009f-f19fae0771db]]
==Graphical environment==
===Improvements===
* Added full configuration of colors used in editor
* Added docking facilities for various tools. It permits the re-ordering of tools within the interface, including making them "float" externally [[Docking|(See EiffelBuild documentation on docking mechanism for more details)]] .
* Ability to see when a class is deferred in the context tool formatters. It is shown by adding the `*' character at the end of the class name.
===Changes===
* One cannot add a .NET assembly from the GAC anymore, instead you have to specify the path to the assembly in the assembly references list.
===Bug fixes===
* Fixed a crash when performing feature completion on classes with errors.
* On Windows, prevented the EiffelStudio window to go to the back of all windows when you click Ok on the dialog box which appears when a syntax error occurs while compiling a project.
==Debugger==
* Enabled conditional breakpoint and expression evaluation for .NET
* Improved expression evaluation abilities (full range of Eiffel expressions are now supported).
* Improved object viewer window (word wrapping for large text, ability to see the whole content in one click without having to enter the lower and upper index of a range).
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Compiler==
* Click [[Major changes between ISE Eiffel 5.4 and ISE Eiffel 5.5|here]] for the compiler release notes.
==Libraries==
===CECIL===
* Added ability to query type of a generic class where an actual generic parameter is expanded although its base class is not. It suffices to prefix the class name with "expanded ". Reciprocally, you can use the reference version of an expanded class by prefixing with "reference ".
===EiffelBase===
* Removed <eiffel>consistent</eiffel> and <eiffel>setup</eiffel> from <eiffel>ANY</eiffel>
* Removed <eiffel>Void</eiffel> from <eiffel>ANY</eiffel> as <code>Void</code> is now a keyword.
* Added <eiffel>for_all</eiffel>, <eiffel>do_all</eiffel>, <eiffel>do_if</eiffel> and <eiffel>there_exists</eiffel> to <eiffel>ARRAY</eiffel>. As a consequence descendants of <eiffel>ARRAY</eiffel> which also inherit from <eiffel>LINEAR</eiffel> have to select the proper version of those routines as they also appear in <eiffel>LINEAR</eiffel>.
* Fixed <eiffel>dynamic_type_from_string</eiffel> from <eiffel>INTERNAL</eiffel> under .NET which was not working if you were using the .NET naming convention or if you specified a namespace.
* Added <eiffel>generic_count</eiffel>, <eiffel>generic_count_with_type</eiffel> in <eiffel>INTERNAL</eiffel> to find out how many generic parameter a type has.
* Added <eiffel>generic_dynamic_type_with_type</eiffel> in <eiffel>INTERNAL</eiffel> to find out the type of the i-th generic parameter of a given type.
* Added <eiffel>memory_map</eiffel> and <eiffel>memory_count_map</eiffel> to give you a precise accounting of all living objects in the running system. It will help you find out any potential memory leak because objects are still referenced where they should not.
* Improved performance of <eiffel>FILE</eiffel> objects creation by not allocating the <eiffel>last_string</eiffel> internal buffer until it is needed.
* On Windows, removed side effects of <eiffel>put</eiffel> from <eiffel>EXECUTION_ENVIRONMENT</eiffel>. Before it was setting also some registry keys, now it only set the environment variable for the running process and its children when launched.
* Allowed zero sized <eiffel>MANAGED_POINTER</eiffel>. Allowed <eiffel>MANAGED_POINTER</eiffel> to share a pointer rather than doing a full memory copy at creation time.
* Fixed issue with agents where GC did not collect passed arguments to <eiffel>call</eiffel> or <eiffel>item</eiffel> from <eiffel>ROUTINE</eiffel>/<eiffel>FUNCTION</eiffel>. Thus arguments stayed alive until the next call to <eiffel>call</eiffel> or <eiffel>item</eiffel>.
===EiffelNet===
* Added <eiffel>close_socket</eiffel> in <eiffel>SOCKET</eiffel>which only close the socket for the current process. It will not close it for all processes which are using this socket (e.g. obtained after a fork on Unix platform).
===EiffelTime===
* Fixed incorrect display of the short year format when using the following code:
<code>l_date: DATE_TIME
...
create l_date.make_now
print (l_date.formatted_out ("[0]mm/[0]dd/yy"))
</code>
===EiffelThread===
* Added a new C routine <eiffel>eif_thread_fork</eiffel> for Unix based system for users who would like to use a forking mechanism in a multithreaded system, as the default version of <eiffel>fork</eiffel> will most likely causes some deadlock.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===WEL===
* Added various missing constants in <eiffel>WEL_*_CONSTANTS</eiffel> classes.
* Added creation procedure <eiffel>make_permanent</eiffel> in <eiffel>WEL_DLL</eiffel> so that the loaded DLL is loaded until the very end of program's execution. Now <eiffel>WEL_RICH_EDIT_DLL</eiffel> and <eiffel>WEL_COMMON_CONTROLS_DLL</eiffel> are using this new creation procedure. It fixes the issue where a program using <eiffel>WEL_RICH_EDIT</eiffel> would crash when exiting.
* Fixed a possible C compilation error when using <eiffel>WEL_RICH_EDIT</eiffel> due to a bug in the Microsoft Platform SDK header file for RichEdit.
* Fixed <eiffel>WEL_SCROLL_BAR</eiffel> to return a valid position when position is more than 65535.
* Added <eiffel>string_size_extended</eiffel> in <eiffel>WEL_FONT</eiffel> to better know where to draw a string using a specified font on screen,
* Added <eiffel>height_in_points</eiffel>, <eiffel>height_in_pixels</eiffel>, <eiffel>height_in_twips</eiffel>, and <eiffel>log_font</eiffel> in <eiffel>WEL_CHARACTER_FORMAT</eiffel>. Made <eiffel>height </eiffel> and <eiffel>set_height</eiffel> obsolete.
* Changed implementation of <eiffel>WEL_REGISTRY_KEY_VALUE</eiffel> in order to fix <eiffel>set_dword_value</eiffel>which was writing incorrect data to the registry keys. Enhanced the typing of values, thus making the non-typed routines obsolete.
* Made <eiffel>default_key_value</eiffel> obsolete in <eiffel>WEL_REGISTRY</eiffel>.
* Properly defined <eiffel>is_equal</eiffel> and <eiffel>copy</eiffel> in <eiffel>WEL_STRUCTURE</eiffel>, possibly causing some compilation errors while analyzing the inheritance structure of your classes.
* Changed signature of non exported routine <eiffel>cwin_destroy_window</eiffel> from <eiffel>WEL_WINDOW</eiffel> to now return a value.
* Fixed issues when using WEL in a multithreaded application. It would crash if a non WEL thread was trying to destroy a WEL window.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,186 @@
[[Property:title|Release notes for EiffelStudio 5.6]]
[[Property:link_title|5.6]]
[[Property:weight|-14]]
[[Property:uuid|c0aa1026-8c13-9975-0de4-3412624cf89a]]
==Graphical environment==
===Improvements===
* New implementation of the diagram tool with enhanced performance and functionalities
** Support for UML view.
** Physics: auto-arrangement of classes using force directed graph.
** Multiple selection of classes.
** Improved speed/behavior of drawing/scrolling operations especially on large diagram.
* Added ability to find features performing an assignment to an attribute, or creating an attribute, as well as features using a procedure as creation procedure.
* Feature tree is now showing a different icon for frozen and obsolete features.
* Improved look and feel of applications using the EiffelVision library under Windows XP theme engine.
* Improved keyboard navigation in EiffelStudio windows/dialogs.
* Full support for 64 bits operating systems such as Windows, Linux, Solaris, Irix, OpenVMS,...
* Features tree is also available for classes which are part of the universe, but not yet compiled.
* New EiffelCOM wizard. Click [[EiffelCOM Wizard|here]] for more details.
* Improved speed of class completion for large system.
* Added new toggles for alias names and assigner commands to feature tree.
===Changes===
* Changed the default C compilation flags on Windows when using Visual Studio as a back-end C compiler. It will now compile C code using the -MT option. It may cause some linking problems if you are using C libraries compiled against the static C library. To solve those issues recompile your C code using the -MT option.
* Provided keyword highlighting in editor and different views for new keyword <code>assign</code>.
===Bug fixes===
* Fixed infinite loop in finish_freezing which could use all the available memory.
* Fixed some issues with formatting of agent using expressions as target, and display of character and string constants in context tool.
* Fixed issue where tools that have been externally docked were not properly restored when reopening EiffelStudio.
* Fixed issue where one could not remove entries added to the list of external commands.
* Supported keyword highlighting for the keywords <code>infix</code> and <code>prefix</code> in editor and different views.
==Compiler==
* Click [[Major changes between ISE Eiffel 5.5 and ISE Eiffel 5.6|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* The stack, objects and evaluator tools now use a grid display instead of simply a tree view
* A mixed multicolumn list and tree view display which display item only when shown, this make debugger much faster to display values
* The evaluator tool renamed as "watch tool" has more features than previously, such as browsing the objects value directly in the tool, moving up and down the expression, dopped objects as them self, ....
* The new watch tool can be used instead of the objects view to display current, and dropped objects (and of course expressions).
* You can close and create new watch tools
* Each tool has its hexdecimal/decimal format switch command.
* Most of the debugging tools are now inside a notebook, and are dockable outside this notebook
* Various minor bug fixes and improvements regarding the interface
===Debugger engine===
* Fixed a memory leak with the `estudio` process when conditional breakpoints are enabled.
* Improved speed of execution when conditional breakpoints are enabled (about 20 times faster).
* Fixed a bug where after killing a debugged process, the debugger could not be launched anymore.
* Improved speed regarding STRING and SPECIAL manipulation in the debugger
* Dotnet: fixed memory/handle leak when debugging dotnet system
* Dotnet: fixed memory corruption while debugging dotnet system
* Dotnet: EiffelStudio do not hang (100% CPU) anymore during dotnet debugging.
* Dotnet: make EiffelStudio much more stable while debugging dotnet system.
* Dotnet: fixed various issues which occurred on killing debugged application
* Dotnet: improved support for dotnet v2.0.x debugging
* Dotnet: fixed expression evaluation on pure dotnet object
* Evaluation: fixed remaining error status on expression (sometimes when an expression has an error, changing the expression to a valid expression was not reseting the error status)
* Evaluation: improved error message reporting for expression evaluation
* Evaluation: improved the stability and the result validity of expression
* Breakpoint: fixed some issues related to setting, removing breakpoints, and remaining hidden breakpoints
* Breakpoint: now the debugger stops on a condition breakpoint when the condition's result is True, but also if the expression is not supported, or if it raises an exception
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===CECIL===
* Due to renaming of EIF_REAL and EIF_DOUBLE into EIF_REAL_32 and EIF_REAL_64, we have also changed the names of some CECIL facilities. Although old names are still valid we may remove their definition in future releases of the compiler. Below is the list of old names and their corresponding new names:
{|
|-
| '''Old name'''
| '''New name'''
|-
| EIF_REAL_FUNCTION
| EIF_REAL_32_FUNCTION
|-
| EIF_DOUBLE_FUNCTION
| EIF_REAL_64_FUNCTION
|-
| eif_real_function
| eif_real_32_function
|-
| eif_double_function
| eif_real_64_function
|-
| EIF_REAL_TYPE
| EIF_REAL_32_TYPE
|-
| EIF_DOUBLE_TYPE
| EIF_REAL_64_TYPE
|-
| EIF_FN_FLOAT
| EIF_FN_REAL_32
|-
| EIF_FN_DOUBLE
| EIF_FN_REAL_64
|}
===EiffelBase===
* Added new storable facility entierly written in Eiffel which enables you to exchange data between classic and .NET. Former version built-in in the Eiffel run-time did not apply for .NET. The classes are located in the new <eiffel>serialization</eiffel> cluster of EiffelBase.
* <eiffel>ARRAY</eiffel>:
** Changed signature of <eiffel>subarray</eiffel> to match ELKS specification. It now returns an <eiffel>ARRAY [G]</eiffel> instead of <code>like Current</code>.
** Fixed <eiffel>has</eiffel> to return <code>True</code> when searching for <code>Void</code> when comparing objects in an array containing a <code>Void</code> element.
** Fixed issue on .NET with <eiffel>clone</eiffel>/<eiffel>copy</eiffel> which were not really duplicating the internal of the array, and therefore enabling aliasing of its content by more than one array.
** Fixed a bug in feature <code>occurences </code> that returned <code>0</code> when called with <code>void</code> argument and <code>object_comparision</code> is <code>true</code>.
** Fixed a bug in feature <code>is_equal</code> that caused stack overflow when some array item is the array itself and <code>object_comparision</code> is <code>true</code>.
* <eiffel>ARRAYED_LIST</eiffel>:
** Removed <eiffel>array_valid_index</eiffel> from <eiffel>ARRAYED_LIST</eiffel>. Descendants of <eiffel>ARRAYED_LIST</eiffel> may need to update their inheritance clause. This fixes ability to use <eiffel>put_i_th</eiffel> with indexes that may violate the invariant of <eiffel>ARRAYED_LIST</eiffel>, for example the code below should trigger a precondition and not violate the invariant of <eiffel>ARRAYED_LIST</eiffel>:
<code>list: ARRAYED_LIST [INTEGER]
create list.make (5)
list.put_i_th (3, 3)</code>
** Added implementation query <eiffel>new_filled_list</eiffel> in <eiffel>ARRAYED_LIST</eiffel>. Descendants of <eiffel>ARRAYED_LIST</eiffel> may need to update their inheritance clause.
* <eiffel>HASH_TABLE</eiffel>:
** Added <eiffel>merge</eiffel> to <eiffel>HASH_TABLE</eiffel>.
** Now <eiffel>remove</eiffel> will reset <eiffel>found_item</eiffel> when an element is removed.
* <eiffel>INTERNAL</eiffel>:
** Implemented all the routines in the .NET version.
** Added support for creating <eiffel>TUPLE</eiffel> types in <eiffel>dynamic_type_from_string</eiffel>.
** Added precondition to <eiffel>set_reference_field</eiffel> to ensure validity of reattachement to attributes.
* <eiffel>STRING</eiffel>:
** Changed signature of <eiffel>infix "+"</eiffel> to match ELKS specification. It now returns <code>like Current</code> instead of <eiffel>STRING</eiffel>.
** Added implementation query <eiffel>new_string</eiffel>. Descendants of <eiffel>STRING</eiffel> may need to update their inheritance clause.
** Fixed a bug in .NET implementation of feature <code>replace_substring</code> that might produce incorrect result when argument and target of the call is the same object.
** Merged .NET and classic implementation of STRING so that all features of STRING are now properly implemented for both platforms.
** Fixed <eiffel>center_justify</eiffel> that would corrupt memory on classic.
** Changed <eiffel>character_justify</eiffel>, <eiffel>left_justify</eiffel>, <eiffel>right_justify</eiffel> and <eiffel>center_justify</eiffel> so that justification is now done on <eiffel>count</eiffel> instead of <eiffel>capacity</eiffel>. You might expect different results after upgrading, thus check all callers of those routines.
** Added <eiffel>is_case_insenstive_equal</eiffel> to compare two strings regardless of their case.
** Rewrote routines <eiffel>is_integer</eiffel>, <eiffel>is_real</eiffel>, <eiffel>is_double</eiffel>, <eiffel>to_integer</eiffel>, <eiffel>to_real</eiffel> and <eiffel>to_double</eiffel> so that they do not rely on C externals. This could breeak some existing code relying on specific locale to read floating numbers.
* Changed behavior of <eiffel>item</eiffel> and <eiffel>eval</eiffel> in <eiffel>FUNCTION</eiffel>. They will not set <eiffel>last_result</eiffel> with their result. If you want to use <eiffel>last_result</eiffel> you should use <eiffel>call</eiffel> instead.
* Added new set of classes <eiffel>NATURAL_8</eiffel>, <eiffel>NATURAL_16</eiffel>, <eiffel>NATURAL_32</eiffel> and <eiffel>NATURAL_64</eiffel> to perform unsigned integer operations.
* Made implementations of <eiffel>cursor</eiffel> in descendants of <eiffel>CURSOR_STRUCTURE</eiffel> return a precise <eiffel>CURSOR</eiffel> type.
* Reduced feature exportation of routines also used as creation procedures of <eiffel>CURSOR</eiffel> descendants to <eiffel>NONE</eiffel>
* Removed <eiffel>make_sublist</eiffel> from <eiffel>TWO_WAY_LIST</eiffel> public creation procedures.
* Made <eiffel>file_prunable</eiffel> from <eiffel>FILE</eiffel> obsolete. Use <eiffel>prunable</eiffel> instead.
* Implemented features <eiffel>collect</eiffel> and <eiffel>full_collect</eiffel> of class <eiffel>MEMORY</eiffel> for .NET.
* Changed type of feature <eiffel>sign</eiffel> in classes <eiffel>INTEGER_8</eiffel> and <eiffel>INTEGER_16</eiffel> to <eiffel>INTEGER_8</eiffel> and <eiffel>INTEGER_16</eiffel> respectively.
* Added a subcluster <eiffel>refactoring</eiffel> with classes that can be helpful for performing code refactoring.
* Augmented many features that are used to access items by their index (such as <eiffel>ARRAY</eiffel>.<eiffel>item</eiffel> and <eiffel>TABLE</eiffel>.<eiffel>item</eiffel>) with a bracket alias and an assigner command.
===EiffelNet===
* Enable to open an URL on a virtual host.
* Enable to open an URL with login and password (for instance http://login:password@host/path/).
* Fixed wrong URL analysis.
===EiffelThread===
* Added feature <code>sleep</code> to class <code>THREAD_CONTROL</code>.
* Provided inheritance link between classes <code>THREAD</code> and <code>THREAD_CONTROL</code> on all platforms.
===EiffelTime===
* Breaking changes:
** In time format, the use of hh12 alone without specifying AM or PM will default to AM.
** Changed implementation of <eiffel>DATE_SET</eiffel> to use <eiffel>ordered_compact_date</eiffel> as storage.
* Added support for [0]hh12 hour format.
* Added support for specifying hh12 as a standalone format string.
* Fixed a bug where calling <eiffel>TIME</eiffel>.<eiffel>make_by_fine_seconds</eiffel> would set <eiffel>fractional_second</eiffel> to zero rather than to the expected value.
* In <eiffel>TIME</eiffel>, comparison of <eiffel>fractional_second</eiffel> is done using a precision of 1.0e-10.
* Fixed <eiffel>is_positive</eiffel> in <eiffel>DATE_TIME_DURATION</eiffel> so that it is true when either the date or time is zero but the other is positive.
* Fixed incorrect postcondition of <eiffel>set_origine_date_time</eiffel> in <eiffel>DATE_TIME_DURATION</eiffel> which would fail when argument was <code>Void</code>.
* Fixed <eiffel>is_correct_date</eiffel> in <eiffel>DATE_VALIDITY_CHECKER</eiffel> to check that year is less than 65535.
* Fixed <eiffel>DATE_TIME_PARSER</eiffel> when handling time in 12h format, but internally we would convert it into 24h format thus making <eiffel>is_time</eiffel> and <eiffel>is_date_time</eiffel> return <code>False</code> where <code>True</code> was expected.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===WEL===
* Made WEL 64 bits compliant. This required a breaking change in signatures. Some routines were actually using an <eiffel>INTEGER</eiffel> to represent a <eiffel>POINTER</eiffel>. On 64 bits platform this is not working as <eiffel>INTEGER</eiffel> is 32 bits and <eiffel>POINTER</eiffel> is 64 bits. As a consequence if you are using low level facilities of WEL your code might not compile anymore. Simply replace <eiffel>INTEGER</eiffel> by <eiffel>POINTER</eiffel> to make it compile.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,158 @@
[[Property:title|Release notes for EiffelStudio 5.7]]
[[Property:link_title|5.7]]
[[Property:weight|-15]]
[[Property:uuid|8adae9f2-9160-5f6e-bc81-f0763dfe963c]]
==Graphical environment==
===What's new===
* Dual licensing of EiffelStudio both commercial and open-source.
* Refactoring facilities: renaming and feature pull-up.
* Metric engine. It lets you define more advanced metrics. This is the first result of our new query engine.
* UUID library for generating UUID.
* Process library for launching, waiting, redirecting outputs of processes.
* Configuration system. It brings a new dimension to the way you manage multiple projects and simplifies it.
===Improvements===
* Output of C compilation now appears within the EiffelStudio environment.
* Improved tool for launching external commands from within the EiffelStudio environment.
* Introduced basic support for Unicode in Eiffel libraries, namely EiffelBase, EiffelVision2 and WEL.
* Improved display of clusters, libraries and assemblies.
* Added ability to see more relations in the diagram tool. For example, you can select a class and choose to see its descendants in the diagram.
* If a project that needs a precompile is opened and the precompile does not exist it will automatically be compiled.
* New projects use precompiles by default which speeds up the initial compilation.
* Improved search facility that has two faces: a quick search bar in the editor for finding text in the current editor, and a search panel to perform exhaustive search over your project.
* Profiler output is now sortable and can also be represented as a tree.
* Redesigned completion engine:
** Completion on wild-cards to quickly find a routine in a long list.
** Completion list is now available anytime a text field accepts a class or an expression (Class creation dialog, debugger evaluation expression, ...)
** On .NET, overloaded routines are all put together under one name.
** Hidden option can now be set with a toolbar at its bottom.
** Completion is available even if you have a syntax error in your class.
* Formatters are now presenting results in a structured way with sorting capability.
* Overridden classes are now shown with the list of classes they are overriding.
===Changes===
* New configuration system. EiffelStudio will automatically convert your existing ace or epr files to the new format.
* Compilation progress is now displayed in the status bar and in the output pane, no more dialog box.
* Display of errors and warnings is now done in different panes, so that you do not lose their content when the output pane has changed.
* Pick and drop is now a dashed line.
* Redesigned the starting dialog to make it easier to create new projects as well as managing many existing projects.
===Bug fixes===
* When in a different format than the editable format, one can now select a feature and it will bring you to the feature in the selected format, rather than going back to the editable format.
* Fixed various formatting issue for our documentation format.
* Fixed some memory corruption that could cause EiffelStudio to randomly crash.
==Compiler==
* Click [[Major changes between ISE Eiffel 5.6 and ISE Eiffel 5.7|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* More flexibility has been added for the layout in the debugging tool. One can merge the Current objects with the locals and arguments.
* The objects and watches tools restore the tree structure when stepping, and highlight value differences.
* New thread tool that let you switch from one thread to another while debugging.
* New Exception handling tool that let you ignore or catch certain kind of exceptions.
* New breakpoint tool to see at glance the status of all your breakpoints.
* Added ability to see the routine that defines an agent object (classic only for now).
===Debugger engine===
* One can debug multithreaded application.
* One can ignore certain kind of exceptions.
* One can disable Assertion checking during debugging (only classic system for now).
* Dotnet debugger is now much more stable for dotnet 2.0
* Improved expression evaluation error reporting system to provide more information
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* <eiffel>STRING</eiffel>, <eiffel>STRING_8</eiffel>, <eiffel>STRING_32</eiffel> and <eiffel>STRING_GENERAL</eiffel>:
** Added Unicode support through the addition of STRING_32. For the moment Unicode support is limited to the data-structure.
** Added <eiffel>STRING_GENERAL</eiffel>, a common ancestor to <eiffel>STRING_8</eiffel> and <eiffel>STRING_32</eiffel>. It is useful if you want to handle both ASCII and Unicode string. For example this facility is used in EiffelVision2 and WEL.
** <eiffel>STRING</eiffel> can be either <eiffel>STRING_8</eiffel> or <eiffel>STRING_32</eiffel> depending on your configuration. Default is <eiffel>STRING_8</eiffel>.
** Added <eiffel>is_integer_xx</eiffel>, <eiffel>is_natural_xx</eiffel>, <eiffel>to_integer_xx</eiffel> and <eiffel>to_natural_xx</eiffel> where xx stands for 8, 16, 32 or 64.
** Added <eiffel>is_number_sequence</eiffel> which is semantically identical to the behavior of <eiffel>is_integer</eiffel> in 5.6. Changed behavior of <eiffel>is_integer</eiffel> to check that it fits into a 32-bit integer value.
** Updated <eiffel>is_double</eiffel>, <eiffel>is_real</eiffel>, <eiffel>is_real_32</eiffel>, <eiffel>is_real_64</eiffel> so that the specification allows optional integral part or decimal part, but not both (as per the ECMA specification of a real constant). This fixes the bug where <code>1.e-4</code> was not considered a valid floating point value.
** Changed behavior of <eiffel>is_boolean</eiffel> to match the ELKS specification which says the lower case version of the string should either be true or false.
** Fixed issue in <eiffel>from_c_substring</eiffel> which would not properly if argument <code>start_pos</code> was greater than 1.
* <eiffel>CHARACTER</eiffel>, <eiffel>CHARACTER_8</eiffel> and <eiffel>CHARACTER_32</eiffel>:
** Removed <eiffel>WIDE_CHARACTER</eiffel> and <eiffel>WIDE_CHARACTER_REF</eiffel>; they are replaced by <eiffel>CHARACTER_32</eiffel> and <eiffel>CHARACTER_32_REF</eiffel>.
* <eiffel>REAL_32</eiffel> and <eiffel>REAL_64</eiffel>:
** Renamed <eiffel>REAL</eiffel> into <eiffel>REAL_32</eiffel>, and <eiffel>DOUBLE</eiffel> into <eiffel>REAL_64</eiffel>. <eiffel>REAL</eiffel> can be either <eiffel>REAL_32</eiffel> or <eiffel>REAL_64</eiffel> depending on your configuration. Default is <eiffel>REAL_32</eiffel>.
** Added <eiffel>rounded_xxx</eiffel>, <eiffel>floor_xxx</eiffel> and <eiffel>ceiling_xxx</eiffel> where xxx is the current floating point type, as the version returning an <eiffel>INTEGER</eiffel> is definitely not precise for large numbers.
* SED serialization facility:
** Fixed <eiffel>read_attributes</eiffel> in <eiffel>SED_INDEPENDENT_DESERIALIZER</eiffel> because we simply forgot to check that between the retrieved system and the stored system, a type has the same number of attributes.
** Fixed <eiffel>wipe_out</eiffel> in <eiffel>SED_OBJECTS_TABLE</eiffel>' which did not reset <eiffel>last_index</eiffel>. As a consequence if you were doing several storing in a row, then <eiffel>last_index</eiffel> kept being incremented but when retrieving the data it would fail because it would expect <eiffel>last_index</eiffel> to start at 1, not at the last incremented value.
** Changed <eiffel>SED_MEDIUM_READER_WRITER</eiffel> encoding so that it can also be used in a networking context. Basically now before sending the data, we first send the number of bytes of the data, and then the data. The old encoding is still available in <eiffel>SED_MEDIUM_READER_WRITER_1</eiffel>.
* Added <eiffel>lock_marking</eiffel> and <eiffel>unlock_marking</eiffel> to use <eiffel>lock</eiffel> and <eiffel>unlock</eiffel> in <eiffel>INTERNAL</eiffel> in a multithreaded context. Currently used by the serialization classes.
* <eiffel>IO_MEDIUM</eiffel>:
** Added <eiffel>read_integer_XX</eiffel>, <eiffel>put_integer_XX</eiffel>, <eiffel>last_integer_xx</eiffel> and <eiffel>read_natural_XX</eiffel>, <eiffel>put_natural_XX</eiffel>, <eiffel>last_natural_XX</eiffel> where XX stands for 8, 16, 32, 64.
* <eiffel>HASH_TABLE</eiffel>:
** Fixed an infinite cycle when using <eiffel>replace_key</eiffel> with a key which is not present in the table.
** Improved correct_mismatch to also retrieve <eiffel>HASH_TABLE</eiffel>s from version 5.4.
** Prevented catcalls in <eiffel>HASH_TABLE</eiffel> when you have keys which have a different type.
* Added a bracket feature to <eiffel>item</eiffel> from <eiffel>ARRAY2</eiffel>.
* In <eiffel>ACTIVE_INTEGER_INTERVAL</eiffel> the action sequence will only be called if the range actually changes.
* Fixed <eiffel>launch</eiffel> from <eiffel>EXECUTION_ENVIRONMENT</eiffel> to not inherit handles on Windows.
* Moved <eiffel>list_eiffel3</eiffel> and <eiffel>table_eiffel3</eiffel> to the <eiffel>obsolete</eiffel> library.
* Changed .NET implementation of the feature <eiffel>FILE</eiffel>.<eiffel>read_line</eiffel> to follow the behavior of the feature in classic mode and to treat either single '%N' or a sequence of '%R' and '%N' as an end of line.
* Ensured that feature <eiffel>POINTER</eiffel>.<eiffel>out</eiffel> produces under .NET a hexadecimal number like in classic mode rather than a decimal number preceded by 0x.
===EiffelNet===
* Added in <eiffel>SOCKET</eiffel> <eiffel>read_integer_XX</eiffel>, <eiffel>put_integer_XX</eiffel>, <eiffel>last_integer_xx</eiffel> and <eiffel>read_natural_XX</eiffel>, <eiffel>put_natural_XX</eiffel>, <eiffel>last_natural_XX</eiffel> where XX stands for 8, 16, 32, 64.
* Modified <eiffel>put</eiffel> and <eiffel>read</eiffel> in <eiffel>NETWORK_RESOURCE</eiffel>, <eiffel>FTP_PROTOCOL</eiffel>, <eiffel>HTTP_PROTOCOL</eiffel>, <eiffel>FILE_PROTOCOL</eiffel> so that the error checking code is not using <eiffel>socket_ok</eiffel> which might triggers error when there are none.
* Improved handling of <eiffel>recipients</eiffel> and <eiffel>header_from</eiffel> in <eiffel>SMTP_PROTOCOL</eiffel> so that you can provide a nice `From` or `To` in the message since they are different from the addresses you have to pass from MAIL FROM and RCPT TO.
* Improved error handling in EiffelNet. Now each time an error occurs you get an exception and the operating system error code is preserved.
* Added ability to get the number of bytes read for all the read operation through the <eiffel>bytes_read</eiffel> query. This is useful to detect graceful shutdown of sockets.
===EiffelThread===
* Refactored the library so that even if you do not have the multithreaded option set, it will compile. However new preconditions have been added so that you know when you are using the library when you cannot.
===EiffelVision2===
* Added Unicode support. Read the WEL entry for Unicode below to see the impact on your code.
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===Process===
* New library to launch processes and redirect their output.
===UUID===
* New library to generate UUID.
===WEL===
* Added Unicode support:
** All routines taking an argument of type <eiffel>STRING</eiffel> or a generic type with <eiffel>STRING</eiffel> in one of the actual generic parameter have been changed to take an argument of type <eiffel>STRING_GENERAL</eiffel> which should not impact you at all, however make sure that if your redefine such a routine, you need to change the signature to <eiffel>STRING_GENERAL</eiffel>, otherwise you may introduce a CATCALL.
** All queries of type <eiffel>STRING</eiffel> have been changed to <eiffel>STRING_32</eiffel>. Because <eiffel>STRING_32</eiffel> should not be convertible to <eiffel>STRING</eiffel>, it would break a lot of existing code, as a result and only for a transition period, we made <eiffel>STRING_32</eiffel> convert to <eiffel>STRING</eiffel>. In the next release this conversion will be marked obsolete, and in the release after the next it will be removed.
** For queries whose type is a generic with <eiffel>STRING</eiffel> as one of the actual generic parameter, we changed <eiffel>STRING</eiffel> into <eiffel>STRING_32</eiffel>. Because no automatic conversion can be done in this case, we have introduced for a routine nnnnn following this pattern a new routine nnnnn_8 whose actual generic parameter is still <eiffel>STRING</eiffel>.
* <eiffel>WEL_TREE_VIEW</eiffel>:
** Fixed <eiffel>get_item_rect</eiffel> which was always returning a 0,0,0,0 rect as we were not correctly initializing the rect structure with the pointer to the item.
** Added <eiffel>get_item_text_rect</eiffel> which returns a rect only for the text of the items.
* <eiffel>WEL_WINDOWS_ROUTINES</eiffel>:
** Improved <eiffel>window_of_item</eiffel> to reduce the number of cases where we might get an exception. This makes debugging easier.
** Fixed <eiffel>resource_string_id</eiffel> which generated a call on Void target exception.
* Added ability to have drop down menus in <eiffel>WEL_TOOL_BAR_BUTTON</eiffel>.
* Added the ability to add an icon to the SystemTray.
* Added ability to drop files to <eiffel>WEL_WINDOW</eiffel> components.
* Made all contextual menus being selectable from both left and right click (formerly it was only left click).
* Fixed issue with contextual menus which might not appear correctly, nor respond to click or Esc key properly because the menu is not at the front.
* Fixed in <eiffel>WEL_LIST_VIEW</eiffel> a bug where if the text of the string is too long, it would be displayed but truncated.
* Fixed incorrect result for <eiffel>title_bar_height</eiffel> in <eiffel>WEL_SYSTEM_METRICS</eiffel>.
* Fixed a memory corruption due to Windows not sending a WM_DESTROY or WM_NCDESTROY message in all cases when a window is actually destroyed.
* Fixed a bug in <eiffel>WEL_REGISTRY_KEY_VALUE</eiffel>.<eiffel>string_value</eiffel> that might cause assertion violation when a value is an empty string, because a check whether the last character is null was done without checking if string has at least one character.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,6 @@
[[Property:title|EiffelStudio 6 release notes]]
[[Property:link_title|6.x]]
[[Property:weight|14]]
[[Property:uuid|e06af7f1-dab6-85ec-0688-0b48c3f2e88b]]

View File

@@ -0,0 +1,98 @@
[[Property:title|Release notes for EiffelStudio 6.0]]
[[Property:link_title|6.0]]
[[Property:weight|-7]]
[[Property:uuid|41ef6135-ecad-ed55-9923-38901690a223]]
==Graphical environment==
===What's new===
* New docking facilities which let you control the layout of tools in EiffelStudio. One can also lock the layout to prevent unwanted changes.
* New tabbed editor.
* Added configurable pick and drop which lets you choose between traditional context menu or pick and drop for a mouse right click operation.
* EiffelStudio is now internationalized, it fully supports English, Chinese and German. A partial translation for French and Russian is provided.
* Shortcuts can now be customized.
* Added dependency view so supplier/client dependency of a group/folder/class can be investigated. Feature calls are included in dependency view.
===Improvements===
* The combo boxes in the address bar can now be resized to see more text (useful with long class names).
* Added ability to add new classes/clusters/assemblies early on in the compilation phase instead of waiting for a successful compilation.
* Faster rendering of EiffelStudio when running it through Remote Desktop.
* Auto-completion after bracketed expression. i.e. arr [i].*
* Added preference "Maximum processor usage" to dictate the maximum number of processors/cores to use when compiling c-code.
* Updated metrics documentation, see [[Metrics tool|for more details]] .
===Changes===
* Changed the diagram default color from light yellow to white for consistency with the background color of other tools.
* Improved history behavior.
* 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.
* Favorites are now stored in the user settings.
===Bug fixes===
* EiffelStudio and various tools should better handle paths with spaces.
* Fixed add assemblies dialog not showing assemblies such as mscorlib on 64 bit systems.
* Fixed bug#12083 where classes in override clusters would not get recompiled properly when automatically saved by EiffelStudio when requesting a compilation.
* More bug fixes can be seen at [http://dev.eiffel.com/EiffelStudio_6.0_Releases the EiffelStudio open source site] .
==Compiler==
* Click [[Major changes between ISE Eiffel 5.7 and ISE Eiffel 6.0|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* Added auto expressions on watch tools, it suffices to toggle the auto button in any of the watch tool's toolbar.
* Enhanced breakpoint mechanism by adding print message, hit count (condition), and provide '''Is True''' and '''Has Changed''' condition.
* Improved the debugging options dialog with the ability to define the environment variables passed down to the debugged application.
* Added some configuration of the Objects tool grid. It is now possible to change the order of 'Current, arguments, locals, ...'.
* Added start workbench and finalized system on Debugging option dialogs.
* Added a new way to look at objects with the object viewer.
* Added a <code>rescue</code> clause indicator in call stack tool's grid.
* One can decide to stay in debugging mode even when compiling.
* Added possibility to continue on conditional breakpoint evaluation failure.
* Removed useless ''Attributes'' row in debugger's objects tree.
* The once routines node now shows states of once procedures in addition of the state of once functions.
* Improved cosmetic of debugger's exception handling dialog.
===Debugger engine===
* Added support for creation of instance of class (including generic).
* Added support for manifest TUPLE, and manifest ARRAY.
* Added support for static routine evaluation.
* Added ability to disable/restore assertion checking during debugging.
* Added evaluation of instructions with the debugger (i.e: procedure call).
* Fixed bug#12934 where the debugger would cause a memory corruption in a running multithreaded program.
* Fixed bug#12750 where the stack overflow detection was not working on Linux.
* Fixed bug#11755 where empty strings with a large capacity were slow to be displayed.
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* Fixed issue with <eiffel>LINKED_QUEUE</eiffel>.<eiffel>twin</eiffel> which would violate its invariant.
* Revisited contracts of <eiffel>LINEAR_ITERATOR</eiffel>.
* Added facilities to read/write <eiffel>REAL_32</eiffel> and <eiffel>REAL_64</eiffel> values in big and little endian format in <eiffel>MANAGED_POINTER</eiffel>.
* Changed <eiffel>INTERNAL</eiffel> so that it does not have the <eiffel>is_pre_ecma_mapping_disabled</eiffel> attribute. If you were setting it to True, you should instead create an instance of <eiffel>ECMA_INTERNAL</eiffel> (fixes bug#11792).
* <eiffel>HASH_TABLE</eiffel>:
** Sped up <eiffel>HASH_TABLE</eiffel> iteration and lookup by about 8% or more.
** Added 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''.
* <eiffel>TUPLE</eiffel> can now compare items using reference equality (=) or object comparison (<eiffel>is_equal</eiffel>).
* Sped up <eiffel>SPECIAL</eiffel>.<eiffel>copy_data</eiffel> which was previously not inlined due to a change of signature preventing the inlining.
* <eiffel>EXECUTION_ENVIRONMENT</eiffel>.<eiffel>get</eiffel> 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 because now you do not need to set it since the W_code knows where to find it.
===EiffelNet===
* Updated reading routines of EiffelNet so that for all basic types they would read all the required bytes, not just stop after reading the first. 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.
===EiffelThread===
* 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.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===WEL===
* Raised compatibility bar to Windows 2000 or greater. No more support for Windows 98 or NT 4.0.
* Added ability to convert image formats among all image formats on Windows (using <eiffel>WEL_GDIP_BITMAP</eiffel>).
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,63 @@
[[Property:title|Release notes for EiffelStudio 6.1]]
[[Property:link_title|6.1]]
[[Property:weight|-8]]
[[Property:uuid|29bc2a0b-3327-dbd1-9d64-51484da2c40c]]
==Graphical environment==
===What's new===
* New default layout for EiffelStudio tools to highlight the most common used tools whereas other tools are still available at the bottom or via the View menu.
* New Errors and Warnings tool. It replaces the former Errors tool and Warnings tool and provides a nicer way to show errors and filtering them.
* Revisited all the dialogs to provide a nicer and consistent look and feel.
* Multiple errors are reported for each compilation degree.
===Improvements===
* Use the default OS font for displaying tooltips.
* C compilation failure will now show up as an error in the new Errors and Warnings tool.
* Completion list will now show immediately after pressing '.' when the completion list is active.
* Added ability to submit a problem report within EiffelStudio when it quits unexpectedly.
===Changes===
* Support for the MinGW C compiler on Windows 32-bit. Borland is officially not supported anymore.
* Completion list no longer shows obsolete items by default (set via a preference option).
===Bug fixes===
* Fixed incorrect results when using the profiler with a finalized system.
* More bug fixes can be seen at [http://dev.eiffel.com/EiffelStudio_6.1_Releases the EiffelStudio open source site] .
==Compiler==
* Click [[Major changes between ISE Eiffel 6.0 and ISE Eiffel 6.1|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* Added debuggee object storage. This allow to store and retrieve debuggee's object.
* Added basic execution replay mechanism. This allows to record the execution, and replay the recording in EiffelStudio and see/browse the recorded values.
* Rename "debugging" into "execution" in EiffelStudio's message and title.
* Better dialog to change the layout of the Objects tool grid. It is possible to easily change the order of 'Current, arguments, locals, ...'.
===Debugger engine===
* Added support for creation of SPECIAL instances.
* Added support for creation of TYPE instances. (i.e: {FOO} will return a instance of TYPE [FOO])
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* <eiffel>BINARY_SEARCH_TREE</eiffel>: Added <eiffel>tree_item</eiffel> which matches the item being searched.
* <eiffel>LINEAR</eiffel>: Added <eiffel>item_for_iteration</eiffel> as a synonym of <eiffel>item</eiffel>.
* <eiffel>STRING_8</eiffel> and <eiffel>STRING_32</eiffel>:
** Improved speed of the <eiffel>to_xxx</eiffel> routines.
** Added <eiffel>starts_with</eiffel> and <eiffel>ends_with</eiffel>.
* <eiffel>GC_INFO</eiffel>: Fixed non working computation of CPU time usage on Windows and added two new queries (<eiffel>cpu_total_time</eiffel> and <eiffel>sys_total_time</eiffel>) to find out the total CPU execution time of the program at the last GC cycle.
* <eiffel>MEMORY</eiffel>: Added <eiffel>execute_without_collection</eiffel> to execute a procedure with no GC.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,74 @@
[[Property:title|Release notes for EiffelStudio 6.2]]
[[Property:link_title|6.2]]
[[Property:weight|-9]]
[[Property:uuid|fc43b67d-46a0-6ab1-ed2c-9aaef186f333]]
==Graphical environment==
===What's new===
* Added new contract editor tool to ease edition of contracts on routines and classes.
* Added Eiffel Information System which let you connect external documentation to your Eiffel code and vice versa.
* Added ability to avoid comment duplication by using the <code><Precursor></code> in your descendant comment to reuse the parent one which is shown in all our formatter tools..
* 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.
* Added experimental unit testing tool.
===Improvements===
* Error list tool now supports multiple selection, for better copy to clipboard usage.
* Enhanced some errors to report better context information.
* Optimized adding of items to the Error List by circumventing an expensive search when adding single items.
===Changes===
* Error list items context now shows the full group name but after CLASS.feature because it is of lesser importance.
* Restructured layout of user files to support unification and user-override files of Eiffel compiler installation files. Relocated default Eiffel projects location into the user files folder (windows and mac only).
===Bug fixes===
* Fixed the EiffelCOM wizard so that it generates C code that compiles.
==Compiler==
* Click [[Major changes between ISE Eiffel 6.1 and ISE Eiffel 6.2|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* New breakpoint editor, which centralizes in a unique dialog the parameters of the breakpoint.
* Added tag support for breakpoints.
* Added new "When hits.." actions (such as enable/disable breakpoints, start/stop execution recording, and others...).
* Better breakpoints tool, to see, sort or filter the breakpoints
* Enhanced execution record and replay mechanism. This allows to record the execution, and replay the recording in EiffelStudio and see/browse the recorded values, and the calls executed.
* Better dialog to change the layout of the Objects tool grid. It is possible to easily change the order of 'Current, arguments, locals, ...'.
* Added a toggle button, to ignore or not the breakpoints.
* Added dropdown menu on the "[Start]" button to have quicker access to useful features.
===Debugger engine===
* Watch tool: added support for "create .." expression.
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* 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.
* Changed `physical_size` in `INTERNAL` to return the real allocated size of an object along with its header size.
* Added `deep_physical_size` in `INTERNAL` to compute the size of an object and all its dependencies.
* 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.
* Added an assigner routine for `item` in `ARRAY2`. This might break descendant classes of `ARRAY2` redefining `item`.
* Updated code toward Void-safety.
===EiffelNet===
* Fixed bug in {`SOCKET`}.`read_stream` where if there was a socket error, then it would cause a precondition violation in `C_STRING`.
===EiffelTime===
* Added support for `DEBUG_OUTPUT` for `DATE`, `TIME` and `DATE_TIME` objects making it easier to debug code based on them.
* Fixed bug where duration in days between two dates overlapping a leap year would yield a result off by +1 or -1.
* 10% speed improvement on certain date operations (can be seen on eweasel test#time002).
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===EiffelVision2===
* Fixed a bug in {`WEL_REGISTRY`}.`enumerate_key` where the routine would go in an infinite loop if the key name was larger than 64 characters.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,77 @@
[[Property:title|Release notes for EiffelStudio 6.3]]
[[Property:link_title|6.3]]
[[Property:weight|-10]]
[[Property:uuid|524a2b27-872c-1fd9-8de1-651128f11155]]
==Graphical environment==
===What's new===
* Innovative testing tools let you automatically test your software, extract test cases from failed execution as well as manually creating your own test cases.
* Added brace matching in the editor.
* Added ability to automatically license your Eiffel classes each time you save a class.
* Added the '''argument_parser''' library which provides an easy way to manipulate command line arguments.
* Added a new version of the EiffelNet library with IPv6 support. Because it has some breaking changes, the library is called '''net_ipv6''' and can be, in most cases, be used in place of the original EiffelNet library.
===Improvements===
* Improved the library choice dialog which can also be customized to include your own locations.
* Added support for <eiffel>note</eiffel> keyword and the updated <eiffel>variant</eiffel> keyword location in a loop through the environment.
* You can remove errors from the Warning and Error list tool which is practical when fixing many errors at once.
* Improved the problem report submission dialog.
* Better messaging about the installed C/C++ compiler on Windows.
* Improved cursor rendering colors, so that in all background colors.
===Changes===
===Bug fixes===
* Code completion works even if the obsolete <eiffel>is</eiffel> keyword is missing.
* Fixed an installation issue of the enterprise/evaluation release of EiffelStudio on Windows Vista.
* Properly refreshes the Feature tool after a save or a compilation.
* Fixed browsing of .NET classes in EiffelStudio.
==Compiler==
* Click [[Major changes between ISE Eiffel 6.2 and ISE Eiffel 6.3|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
*Watch tool:
** Changed the shortcut to move up/down expression (Shift+Alt+Up|Down). This can be changed in preferences.
** Multiple expressions can be moved up/down at the same time (instead of just one)
** Added export to/import from a file the expressions' text
** Pasting multi-lines text into the "..." expression cell, will create one expression per line.
*Interface: various bug fixes
===Debugger engine===
* added support for self initialized attributes
* fixed major issue of the dotnet debugger on Win32 (and potentially on win64 too)
* fixed retrieving of stack value when invariant is violated (now a _invariant stack will appear in the call stack to help debugging)
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* EiffelBase has been rewritten to be Void safe. To use the void safe version, one has to use the '''base-safe.ecf''' configuration file of EiffelBase. Not all libraries are void safe, so the void safe version can only be used for code that does not depend on other libraries. EiffelStudio 6.4 should provide void safe version of all libraries provided in EiffelStudio.
* Added <eiffel>sleep</eiffel> to <eiffel>EXECUTION_ENVIRONMENT</eiffel> and made <eiffel>sleep</eiffel> from <eiffel>THREAD_CONTROL</eiffel> obsolete.
* Added <eiffel>read_xxx_thread_aware</eiffel> in <eiffel>IO_MEDIUM</eiffel> so that reading a file is not blocking in a multithreaded context.
* Added the notion of read-only and immutable strings (respectively <eiffel>READABLE_STRING_8/32</eiffel> and <eiffel>IMMUTABLE_STRING_8/32</eiffel>). Because <eiffel>READABLE_STRING_8</eiffel> is deferred, some code using expression of the form '''STRING + SYSTEM_STRING''' in .NET mode will not compile anymore. Instead one has to do '''STRING + create {STRING}.make_from_cil (SYSTEM_STRING)'''.
* Added <eiffel>{READABLE_STRING_GENERAL}.same_string</eiffel> to compare any kind of strings together.
* Added ability to stop and start the Eiffel tracing mechanism from code using the new <eiffel>TRACING_SETTING</eiffel> class.
* Changed the default assigner for <eiffel>{TABLE}.item</eiffel> from <eiffel>put</eiffel> to <eiffel>force</eiffel> a new feature of <eiffel>TABLE</eiffel>. This allows the bracket operator on <eiffel>HASH_TABLE</eiffel> to work properly, that is to say <eiffel>hash_table [i] := j</eiffel> will indeed insert 'j' at key 'i' even if key 'i' is already present. Before it was silently doing nothing since it was using <eiffel>put</eiffel>.
* Fixed eweasel test#list012 which showed an invariant violation after twining a <eiffel>SORTED_TWO_WAY_LIST</eiffel> and then modifying the copy by adding an element. This introduces a breaking change in all descendants of <eiffel>SORTED_TWO_WAY_LIST</eiffel>.
===EiffelNet===
* EiffelNet can select on 256 ports at the same time
* Fixed on Unix improper handling of EWOULDBLOCK and EINPROGRESS error on Unix which would raise an exception instead of silently ignoring the error as it is done on Windows.
* New library for IPv6 support.
===EiffelProcess===
*Fixed an issue with the library when redirecting inputs/outputs of the child process. Sometime we would be missing some characters and cause a memory corruption at the same time.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,94 @@
[[Property:title|Release notes for EiffelStudio 6.4]]
[[Property:link_title|6.4]]
[[Property:weight|-11]]
[[Property:uuid|2f88d204-6e51-6150-8fbe-f6a3b41d5ec1]]
==Graphical environment==
===What's new===
* Initial support for the iPhone platform to develop command line applications. Support for graphical applications will be available in the next release.
* Added new libraries: '''api wrapper''', '''diff''', '''encoding''', and '''internationalization''' libraries.
* To minimize breaking changes, EiffelStudio comes with two sets of libraries. The first set, which is the default set, is compatible with previous versions of EiffelStudio. The second set, which is labeled '''experimental''', is void-safe and contains some breaking changes such as new ARRAY, ARRAYED_LIST, HASH_TABLE, SPECIAL classes. Users are encouraged to compile with the experimental libraries in order to prepare their code for the future when today's experimental libraries will become the de facto libraries. It is possible to adjust code so that a single version compiles against both sets of libraries.
* Added new tools to the EiffelStudio delivery. They are located under $ISE_EIFFEL/tools/spec/$ISE_PLATFORM/bin. The new tools are:
:*'''compile_all''': compile all the Eiffel Configuration File projects found under a directory and report which ones do and do not compile.
:*'''syntax_updater''': update the Eiffel code found under a directory to use the latest ECMA syntax in your code.
===Improvements===
* Added automatic completion of the <eiffel>attribute</eiffel> keyword to create an attribute body.
* The completion window will now show a feature or class description tool tip.
* Added support for new <eiffel>attached</eiffel> syntax for code completion.
* Better formatting of verbatim strings, guaranteeing that copy/pasting from the formatted text will yield the same string content as the one in the Eiffel source code.
* Improved display of ~ and /~ operators, as well as object test expressions.
* The project name is displayed in the status bar, when a configuration is loaded (i.e: even before any compilation)
* Vastly improved population of the error list tool when thousands of errors/warnings are generated.
* Added option in the new library dialog to show only void-safe libraries, for void-safe projects.
===Changes===
* The EiffelNet library with IPv6 support is now the default library. The old one is still available as part of our obsolete libraries.
* The project configuration format has a new version with new settings for void-safety compilation. The compiler will choose the default options based on the version of the project configuration file. Making it easy to have the same code compile identically with old versions of EiffelStudio.
* Changed the Eiffel Information System to use the note element in project configuraton file in this style: <nowiki><note><eis name="NAME1"/><eis name="NAME2"/></note></nowiki>.
* The experimental version of gobo had its ECF removed and replaced by several corresponding to sub-libraries of the Gobo framework.
===Bug fixes===
* Fixed failure when generating the flat view of some classes.
* Fixed various issues with the testing tool.
* Fixed a bug which caused editor to disappear when debugging.
* Fixed some corruptions of the docking layout of EiffelStudio.
==Compiler==
* Click [[Major changes between ISE Eiffel 6.3 and ISE Eiffel 6.4|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* Fixed various execution cursor issues in feature tool (especially with loop variant, and also inherited assertions) when debugging.
* EiffelStudio now remembers the breakpoints and profiles even after recompiling from scratch.
===Debugger engine===
* Added support for object test locals.
* Support void-safe expression evaluation.
* Fixed evaluation of is_equal, equal, =, ~ in expression (watch tool).
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* Changed the default assigner of <eiffel>{TABLE}.item</eiffel> from originally <eiffel>put</eiffel> to <eiffel>force</eiffel>. As a consequence, descendants of <eiffel>TABLE</eiffel> might get a VDRD error if redefining <eiffel>item</eiffel>
* Added <eiffel>same_keys</eiffel> to <eiffel>HASH_TABLE</eiffel>. You can redefine this feature to use a different comparison criterion for the keys.
* For object comparison, containers are now using the ~ operator instead of <eiffel>is_equal</eiffel>. As a result, if you had heterogeneous containers, then it might not find items that were found before (although it was a catcall).
* EiffelBase is now using the <eiffel>alias</eiffel> notation instead of <eiffel>infix/prefix</eiffel>.
* Updated the IMMUTABLE_STRING classes to have an efficient string extraction query <eiffel>shared_substring</eiffel> which will let you create a substring of an existing immutable string without actually duplicating the data.
* The creation procedure <eiffel>default_create</eiffel> from <eiffel>CELL</eiffel> has been removed to ensure that the same code can be compiled in both non-void-safe and void-safe mode.
* Implemented <eiffel>{EXCEPTION}.cause</eiffel> which returns the exception object that caused the current exception while executing the rescue clause.
* Fixed the inconsistent behaviors of <eiffel>{EXCEPTIONS}.original*</eiffel> with 5.7 potentially breaking code using exceptions.
* Ensured that in void-safe mode, one can call <eiffel>{INTERNAL}.set_reference_field</eiffel> to set a reference attribute to Void if the attribute is of a detachable type.
* In <eiffel>INTERNAL</eiffel>, fixed a bug that would not recognize a class name A_SOMETHING as a valid identifier for INTERNAL.
* Changed <eiffel>IO_MEDIUM.last_string</eiffel> to be attached so that existing code can easily be migrated to void-safe without changing the pattern <eiffel>read_line/last_string</eiffel>.
* The following classes have been excluded from the void-safe version of EiffelBase as they cannot be made void-safe under their current design:
:* COMPACT_CURSOR_TREE
:* LINKED_CURSOR_TREE
:* TWO_WAY_CURSOR_TREE
:* COMPACT_TREE_CURSOR
:* LINKED_CURSOR_TREE_CURSOR
:* TWO_WAY_CURSOR_TREE_CURSOR
* Fixed eweasel test#list003 where calling copy on a non-empty <eiffel>LINKED_LIST</eiffel> and providing the same list as argument would wipe out the content of the <eiffel>LINKED_LIST</eiffel> instead of preserving the elements.
* Fixed eweasel test#list014 where calling <eiffel>merge_left</eiffel> and <eiffel>merge_right</eiffel> on a <eiffel>TWO_WAY_LIST</eiffel> was violating the invariant.
* Fixed eweasel test#array005 where calling <eiffel>wipe_out</eiffel> on an <eiffel>ARRAY2</eiffel> was violating the invariant.
* Fixed eweasel test#except035 where we incorrectly merged the code value for <eiffel>IO_EXCEPTION</eiffel> and <eiffel>RUNTIME_IO_EXCEPTION</eiffel> thus breaking existing code not based on Eiffel exception object.
* Fixed eweasel test#except033 that an exception thrown through rescues caused infinite loop.
===EiffelNet===
* Added ability to only listen on the loopback address in <eiffel>NETWORK_STREAM_SOCKET</eiffel>.
* Fixed some issues when trying to listen for either any address or the loopback address in both IPv4 and IPv6 mode on Windows. The fix also solves a security issue, because if you have IPv6 enabled, then listening to the loopback would also listen to any address on the IPv4 interface.
* Fixed a memory leak in read and receive from <eiffel>SOCKET</eiffel> caused by failure to free the temporary buffer used to hold the data.
* Renamed privately exported <eiffel>make_from_fd</eiffel> to <eiffel>make_from_descriptor_and_address</eiffel>.
* Re-enabled listening on 256 ports on Windows for the IPv6 library.
===EiffelProcess===
* Changed the redirection semantics so that the output is now appended to a file rather than recreating it.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,90 @@
[[Property:title|Release notes for EiffelStudio 6.5]]
[[Property:link_title|6.5]]
[[Property:weight|-12]]
[[Property:uuid|05D62D2D-7688-47C1-AC8A-796E6CA08A88]]
==Graphical environment==
===What's new===
* A new output tool that combines the Eiffel compilation output, the C compilation output, the testing output as well as the system information.
* When there is a C compilation error, the errors are now reported in the error list. Currently, we only support error reported by either the GNU C compiler or the Microsoft C compiler. The error is also linked to the source Eiffel feature when the information is available.
===Improvements===
* In the recent projects submenu, one can select the most recently compiled target.
* The automatic class licenser can now use the license.lic files next to an ECF instead of naming the license after the ECF. It makes it easier for projects that have multiple ECF.
* Double clicking on an ECF file will select the previously compiled target by default.
* Added tooltip to the precompilation wizard list to show item's ECF file path.
===Changes===
No changes in this release.
===Bug fixes===
* Addressed issue where the first change made to the diagram tool could not be undone.
* Fixed issue with ES crashing when trying to merge a license, when the class contains an empty note clause.
* Fixed issue where project settings would let you add twice the same include file rule.
* Fixed an issue where clicking in the project settings entry to display a dialog and then clicking cancel would show the dialog a second time.
* Fixed bug preventing the new features dialog from being displayed when using newer syntax.
* Fixed issue where one could not change an integer based preference entry in EiffelStudio.
* Many more issues have been fixed. For a more complete list, see the [http://dev.eiffel.com/EiffelStudio_6.5_Releases change logs].
==Compiler==
* Click [[Major changes between ISE Eiffel 6.4 and ISE Eiffel 6.5|here]] for the compiler release notes.
== AutoTest==
* <strong>Library: <eiffel>EQA_TES_SET.on_prepare</eiffel> is now called during <eiffel>default_create</eiffel>, making it simpler to write void-safe tests.</strong>
* Library: Added the possibility to wrap the actual test routine call.
* AutoTest traverses all writeable clusters in the project for possible test classes, making &lt;tests&gt;-clusters obsolete. The traversal happens in the background allowing the user to continue to work on the project.
* Tags can be used to control the test execution flow. Tagging a test with "execution/isolated" makes the test execute in a separate evaluator process, meaning the evaluator is restarted before and after executing the corresponding test (useful for tests relying on the initial access to a once routine or tests which possibly leave the memory corrupted).<br />Also any tag of the form <nowiki>"execution/serial[/*]"</nowiki> groups the tests to ensure that they are not executed in parallel (useful when a group of tests shares a resource which has to be accessed sequentially).
* Any results are stored between EiffelStudio sessions.
* Improved the management of existing tests by merging the "View" and "Filter" box into one input field.
* Improved bottom part of AutoTest tool by only having two tabs displaying test execution and test creation results.
==Debugger==
===Graphical environment===
* To move a breakpoint, you can Ctrl+RightClick on the related breakpoint icon, and Ctrl+Drop on the wanted breakpoint location.
* Better support for attributes pick and drop into the watch tool
* The debugger will display as text/string all descendants of READABLE_STRING_8/32 (instead of just STRING_8/32). Including IMMUTABLE_STRING_...
* You can toggle the status of a breakpoint easily using shortcuts:
**F9: toggle between enabled/not-set.
**Shift+F9: toggle between enabled/disabled.
**Ctrl+F9: open the breakpoint dialog for editing.
===Debugger engine===
* Fixed several issues related to object test locals (especially in the expression)
* Fixed a major memory leak related to condition evaluation
* Fixed evaluation of is_equal, equal, =, ~ in expression (watch tool).
* It is now possible to unset an environment variable, or unset all variables, in the execution parameters dialog (see [[Execution profiles|doc]])
* Improved support for expanded objects (especially SPECIAL of expanded)
* Fixed memory leak related to condition breakpoints, and improved the condition breakpoints performance.
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* In experimental mode, we have changed the signature of <eiffel>generating_type</eiffel> to return an instance of <eiffel>TYPE</eiffel> rather than an instance of <eiffel>STRING</eiffel>. Existing code should still compile out of the box since we have equipped <eiffel>TYPE</eiffel> with conversions and new features similar to those of <eiffel>STRING</eiffel>. In the few cases where it would still not compile, use `generating_type.out` to ensure that the code will compile fine regardless of the compiler mode chosen (i.e. experimental or non-experimental).
* Fixed an issue in <eiffel>copy</eiffel> from <eiffel>HEAP_PRIORITY_QUEUE</eiffel> which would not do anything because it was simply copying itself, not the other queue.
* Fixed a bug in <eiffel>remove</eiffel> from <eiffel>HEAP_PRIORITY_QUEUE</eiffel> which caused the internal structure to be referenced beyond its bounds.
* Made <eiffel>clear_all</eiffel> in <eiffel>STRING_8</eiffel>, <eiffel>STRING_32</eiffel> and <eiffel>HASH_TABLE</eiffel> obsolete. One has to use <eiffel>wipe_out</eiffel>instead.
* Strengthen precondition of <eiffel>resize</eiffel> in <eiffel>STRING_8</eiffel>/<eiffel>STRING_32</eiffel> to forbid values that would shrink the string content. Use <eiffel>grow</eiffel> instead to preserve the former <eiffel>resize</eiffel> behavior.
* Added the base extension library that offers some extra functionality to EiffelBase: <eiffel>SEARCH_TABLE</eiffel> which is a HASH_TABLE where keys and items are the same (basically becoming a set), and sorting facilities for <eiffel>INDEXABLE</eiffel> containers.
* Added the "+" operator in <eiffel>READABLE_STRING_GENERAL</eiffel>.
* Added ability to create a directory recursively.
* Fixed bug#4118 where on .NET <eiffel>{EXECUTION_ENVIRONMENT}.put</eiffel> had no effect on the actual process environment variables because the API was only available in .NET 2.0 which is what we now support at the minimum.
* Fixed a bug in <eiffel>{MEMORY}.memory_map</eiffel> which would cause a precondition violation in one of its call.
* Fixed issue with <eiffel>{BINARY_SEARCH_TREE_SET}.remove</eiffel> which would not move the cursor and thus causing an infinite loop in <eiffel>subtract</eiffel> and <eiffel>intersect</eiffel>.
* Fixed issue with <eiffel>{PART_SORTED_SET}.put</eiffel> and <eiffel>{PART_SORTED_SET}.extend</eiffel> which had no effect and thus causing a postcondition violation.
* Fixed invalid retrieval of SPECIAL objects using the Eiffel SED serializer in experimental mode.
* Fixed a missing element in <eiffel>{BOUNDED_QUEUE}.linear_representation</eiffel>.
===EiffelNet===
* Fixed an issue with {NETWORK_STREAM_SOCKET}.make_server_by_port (0) which would not automatically get a port assigned.
* Fixed obsolete warnings in the library.
* Prevented a socket to change its blocking mode when connecting with a timeout (it would end up always being blocking even if requested otherwise before the call to `connect`.
* Ensured that a socket is indeed connected when successfully connecting to it while the socket is in non-blocking mode.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,86 @@
[[Property:title|Release notes for EiffelStudio 6.6]]
[[Property:link_title|6.6]]
[[Property:weight|-13]]
[[Property:uuid|16d03e3f-d0ff-c56e-6e77-232087ec3bfb]]
==Graphical environment==
===What's new===
* Added the parent clauses of a class in the "Features tool" making it easier to navigate/edit parent classes.
===Improvements===
* Double clicking in the editor tab ribbon will create a new tab of the editor.
* Pressing "Ctrl+Enter" while typing a class name in the address bar will open the class or feature in a new tab of the editor.
* Pressing the middle mouse button on a tab will now close that tab.
* Added shortcuts for "Run workbench system" and "Run finalized system"
===Changes===
* The experimental mode available in 6.5 and earlier version has become the default mode. To have access to the default mode of 6.5, one has to use the compatible version. It can be accessed on Windows via the Start menu shortcut or by using "-compat" on the command line.
* Gobo had its ECF removed and replaced by several corresponding to sub-libraries of the Gobo framework. This change was already present in 6.4 and 6.5 under the experimental mode. To upgrade, you need to adapt your project configuration file to use the right sub-library of the Gobo framework.
* The libraries (formerly the experimental mode of 6.4 and 6.5) contains some breaking changes to the compatible libraries. Those breaking changes were already part of 6.4 and 6.5. It affects the following classes: ARRAY, ARRAYED_LIST, HASH_TABLE, SPECIAL and TO_SPECIAL. It is possible to adjust your code so that a single version compiles against both sets of libraries. See below under EiffelBase how to adapt your code to those breaking changes.
===Bug fixes===
* Fixed an issue in which the error tooltip would keep flashing when the cursor is outside the EiffelStudio environment.
* Fixed an issue while searching text in the implementers or descendants view it would not scroll to the found text.
* Fixed an issue with the Error List pane in which the Error List would come up blank on error if it had been auto-hidden when EiffelStudio started.
==Compiler==
* Click [[Major changes between ISE Eiffel 6.5 and ISE Eiffel 6.6|here]] for the compiler release notes.
== AutoTest==
* Changed AutoTest Tool to store testing results permanently, and added the ability to export results to a text file.
* Added tool for displaying the result details of a single test execution.
* Added tool for comparing the current testing results to a previously exported set of results, highlighting tests for which the latest execution revealed a different result.
* Improved wizard/preferences dialog for creating and executing tests, also allowing the user to skip the wizard and create new tests from default settings.
==Debugger==
===Graphical environment===
* Now, only one breakpoint dialog is opened on the same breakpoint (avoid conflict).
* Moving a breakpoint within the same routine is now done using Drag & Dropping the breakable slot icon (red bullet).
* Object Viewer selector no longer auto-selects XML Viewer when the string looks like XML content.
* Added a context menu entry to "unset" an environment variable in the "Execution parameters" tool.
* Fixed issue with remaining popup window for grid's cell.
* Fixed regression "Keep Assertions Checking" settings for expression evaluation.
* Added an option in the "Edit Expression" dialog to show the "full error message" (i.e: include the exception trace) when an exception occurs during expression evaluation. By default, now only the short description is shown (to improve performance), but the full error message is available upon request.
* Added the capability of copying to the clipboard the text representation of selected call stack elements (from the call stack tool) using Ctrl+C or Ctrl+Ins (this also includes representations of local+arguments)
===Debugger engine===
* Fixed an issue in which EiffelStudio could hang when inspecting threads other than the current stopped one on platforms where thread identifiers are larger than 32-bit (e.g. Linux).
* Fixed issue related to setting conditional breakpoint resulting in unconditional breakpoint.
* Fixed issue in which execution is stopped in melted invariant.
* Added support for new [[ET: Other Mechanisms#Adjusting once semantics with "once keys"|once per object]].
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* Added ability to traverse most containers in EiffelBase using the new iteration (<e>across</e>) [[ET: Instructions#A closer look at the iteration form| form of the loop construct]].
* Added a new feature <e>trim</e> to the <e>RESIZABLE</e> class and its decendants to allow for minimizing the allocated storage.
* Modified <e>ARRAYED_QUEUE</e> to avoid using an extra slot that did not keep any value and was used only for implementation purposes.
* Added support for correct mismatch in the SED serialization cluster.
* Fixed <e>ARRAY2</e> so that it can be used in void-safe mode too. Improved <e>ARRAY2</e> resizing efficiency.
* Changed the display of REAL/DOUBLE fields to show REAL_32 or REAL_64.
* Changed the display of NaN/-Infinity/Infinity for real numbers so that it is the same on all our supported platforms.
* Adaptation of ARRAY, ARRAYED_LIST, HASH_TABLE and SPECIAL from the 6.5 to 6.6:
** {ARRAY}.make_from_special had its signature changed and only take a SPECIAL argument and the created array would have a range from 1 to the number of elements in the SPECIAL
** ARRAY: Some preconditions have been added for void-safety. In non-void-safe mode they are equivalent to the previous ARRAY behavior.
** {ARRAY}.auto_resize: a private routine has been removed.
** {ARRAYED_LIST}.count and {ARRAYED_LIST}.area are not an attribute anymore
** ARRAYED_LIST does not conform to ARRAY. One has to use {ARRAYED_LIST}.to_array to convert it to an ARRAY.
** HASH_TABLE internals have been changed so that order of traversal will be different from what it used to be.
** The non-void safe routine {SPECIAL}.make has been removed. Instead one has to use either {SPECIAL}.make_empty (which is not available in compatible mode) or {SPECIAL}.make_filled (which is available in both)
** To reflect the change in SPECIAL, TO_SPECIAL was also modified and `make_area` was replaced by `make_empty_area`. Again to have compatible code between both mode use `make_filled_area` instead.
===EiffelThread===
* Made the <e>THREAD</e> class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition <e>is_launchable</e> and a status report <e>is_last_launch_successful</e> to help in determining whether a thread was actually launched.
===EiffelNet===
* Fixed precondition violation in <e>{ARRAY}.force</e> when compiling EiffelNet in void-safe mode.
* Changed internal of MEDIUM_POLLER to use HASH_TABLE, as a consequence the queries <e>read_command_list</e>, <e>write_command_list</e> and <e>exception_command_list</e> are now obsolete and should not be used.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,59 @@
[[Property:title|Release notes for EiffelStudio 6.7]]
[[Property:link_title|6.7]]
[[Property:weight|-14]]
[[Property:uuid|17f0ad0d-6a8e-942c-37be-53466db120d5]]
==Graphical environment==
===What's new===
===Improvements===
* Allows filtering of C compiler warnings in the Error and Warning tool.
* Accepts "license.lic" and "licence.lic" as a way to perform automatic licensing during saving.
* Added filter functionality to the "Add Library" dialog.
* Added a new XML (lite) library which is void-safe without Unicode support.
===Changes===
===Bug fixes===
* Fixed some formatting issues when using the new loop form using <e>across</e>.
* Fixed the saving of the diagrams to PNG.
* Fixed bug#16831: Picking and dropping class from Features window into Editor tab clears Features window.
* Fixed issue with `libraries.cfg` files used to know where to look for libraries (the trouble was only on Windows)
==Compiler==
* Click [[Major changes between ISE Eiffel 6.6 and ISE Eiffel 6.7|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* More compact "Execution" (debugger) menu
* Now changing the catcall detection from the exception handling dialog has immediate impact (previously the user had to interrupt and continue the execution to see the impact)
* It is now possible to open the exception dialog to visualize the CAT call warning exception at the debugger level.
* Minor change, now Ctrl+Alt+C (or +Ins) will copy into clipboard the '''selected stacks''' '''without''' the (stack) values and Ctrl+C (or +Ins) will copy into clipboard the '''selected stacks''' '''with''' stack values (local and arguments)
===Debugger engine===
*Now handle correctly manifest string and string_32 in debugger (expression evaluation)
*Improved stepping in MT debugging session. Now the debugger stays in the same thread (instead of jumping from a thread to another without any coherence).
*Fixed void-safety issue, when trying to evaluate `Result` in watch tool (previously, it was reporting VEVI ...)
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* <e>ARRAY</e>:
** Made <e>{ARRAY}.make</e> and <e>{ARRAY}.conservative_resize</e> obsolete as they are not void safe. Alternative recommendation is to use <e>{ARRAY}.make_empty</e>, <e>{ARRAY}.make_filled</e> or <e>{ARRAY}.conservative_resize_with_default</e>.
** Added <e>{ARRAY}.rebase</e> that would help creating an empty array with a given `lower`.
** <e>BOUNDED_QUEUE</e> and <e>BOUNDED_STACK</e> have been rewritten to use the same implementation of <e>ARRAYED_QUEUE</e> and <e>ARRAYED_STACK</e>, the only difference is that `extendible` is defined to be False. The `correct_mismatch` feature has been updated to ensure retrieval.
* <e>FORMAT_DOUBLE</e>:
** Fixed eweasel test#lib036 in <e>FORMAT_DOUBLE</e> where `pad_fraction` did not process properly when one decided to not show the trailing zeros and there were only zeros after the decimal point.
** Fixed the post-condition of <e>{FORMAT_DOUBLE}.pad_fraction</e> to reflect that the count is set to `decimals` but only when one shows the trailing zeros.
* Added <e>WEAK_REFERENCE</e> to allow weak references in an Eiffel system. This supersedes the <e>IDENTIFIED</e> class which made it necessary to change one's code to allow weak referencing. Currently the class is only implemented for classic Eiffel; it is not available when compiling for .NET.
* Added new Eiffel tracing facility classes <e>TRACING_HANDLER</e> and <e>TRACING_SETTING</e> which let you capture some information about the current execution via callbacks.
* Fixed eweasel test#list010 with twinning and deep_twinning of a <e>FIXED_LIST</e> that would reset `capacity` to `count`.
* Added <e>{TYPE}.is_expanded</e> to find out if a type is expanded or not.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,56 @@
[[Property:title|Release notes for EiffelStudio 6.8]]
[[Property:link_title|6.8]]
[[Property:weight|-15]]
[[Property:uuid|5b3df521-34a8-27a2-4261-830973a62673]]
==Graphical environment==
===What's new===
===Improvements===
* Improved dialog that adds a new class to the system:
** Changed button label to be more explicit about its action
** Removed detachable status when it is not used
** Removed unnecessary frame boxes
** Simplified code that opens the dialog.
* Improved keyboard navigation in the Info tool.
* Avoided class counter increment in automatically generated class name if class addition is cancelled.
* Set file name of current class to the Save File As dialog.
===Changes===
===Bug fixes===
* Corrected output of the iteration (<code>across</code>) form of the [[ET: Instructions#Loop|loop construct]] in clickable views.
* Fixed feature call on void target when reopening a project with diagram tool that contains cluster legend.
* Fixed a bug in the Info tool: when deleting an EIS entry, selecting "No" did not actually cancel the deletion.
==Compiler==
* Click [[Major changes between ISE Eiffel 6.7 and ISE Eiffel 6.8|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* It is now possible to [[Detach application|detach the debugger]] from the application (without killing the application).
* It is now possible to [[Attach application|attach the debugger]] to associated eiffel application launched outside EiffelStudio
** The application has to be launched in a specific way to wait for the debugger, that is, either
*** by setting <code>ISE_DBG_PORTNUM</code> environment variable to a specific port number, or
*** by calling <code>{RT_DEBUGGER}.rt_workbench_wait_for_debugger</code> (a_port_number) from the program itself
** Then with EiffelStudio, menu <code>Execution->Attach Debuggee</code> and provide the same port number.
** At this point EiffelStudio is able to debug the application
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* Minimized interface of <e>ITERATION_CURSOR</e> to simplify crafting cursors for iteration form of a loop on non-container classes, for example, on externally-driven input like files, sockets, etc.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===EiffelStore===
* Various bug fixes.
* Extended types supported by EiffelStore, especially STRING_32 for Unicode string types.
* Improved memory management in EiffelStore, ODBC implementation.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,3 @@
[[Property:uuid|2775C71F-E609-42C7-9667-24B02BCBE1FB]]
[[Property:weight|13]]
[[Property:title|7.x]]

View File

@@ -0,0 +1,84 @@
[[Property:title|Release notes for EiffelStudio 7.0]]
[[Property:link_title|7.0]]
[[Property:weight|13]]
[[Property:uuid|302c6dc1-3ed0-cc25-0ec8-851ead074caf]]
==Graphical environment==
===What's new===
* [[EiffelRibbon]]: a Windows specific library and tool to add a ribbon to your EiffelVision2 applications.
* Debian packages available for downloads.
* Added external contributions: Decimal library, Json parser, arbitrary precision mathematics, encryption (SHA1, MD5, x509, ...).
* Added previews of libraries: sqlite3, regular expression, ...
* Added a command line option "-tests" to run all associated Autotest tests from the command line.
===Improvements===
* Better integration with the latest Linux Desktop environments: Unity from Ubuntu and KDE 4.0.
* SCOOP speed improvements.
* Added support for .NET 4.0 runtime.
===Changes===
* BIT type is now obsolete.
* Location of precompiled libraries has been moved to a user specific directory that can be referenced via the $ISE_PRECOMP variable in your project configurations. This addresses some permission issues depending on how and under which user EiffelStudio was installed.
===Bug fixes===
* Fixed a display issue of Unicode characters when reporting an error. (bug#17661).
* Fixed a pick and drop issue where it could be confused (e.g. select <e>ARRAY</e> in editor, switch to clickable format, try to pick various elements, it would always pick <e>BOOLEAN</e> instead) (bug#17666).
* Fixed issue with pick and drop of a feature from an override class whose position is further away than the original class would not scroll to this feature (bug#17406).
* Fixed some issues of window positioning when using EiffelStudio with multiple monitors.
* Fixed a case where you could have 2 editor panes open on the same class.
==Compiler==
* Click [[Major changes between ISE Eiffel 6.8 and ISE Eiffel 7.0|here]] for the compiler release notes.
==Debugger==
=== .NET debugging ===
* It is now possible to use the EiffelStudio debugger to debug Eiffel applications targeted to Microsoft .Net 4.0.
{{caution|Currently, to debug Eiffel targeted to Microsoft .Net 4.0, it is necessary to set the preference "debugger.dotnet.keep_stepping_info_dotnet_feature" to "False" in order to avoid problems when using the debugger's "Step into" command.}}
===Graphical environment===
* Fixed a problem with missing tool content when an assertion violation was ignored.
* Instances of classes <code>IMMUTABLE_STRING_*</code> are now correctly displayed in the debugger's tools.
* Added a toolbar button for the "Attach" command.
* The exception trace is now included when watch evaluation fails due to an internal error.
* Fixed various issues in which the debugger is unable to retrieve information about an object, especially from the current object.
* Fixed various watch evaluation issues involving argument variables.
===Developer changes===
* The <code>{DB_BREAKABLE_POINT_INFO}.text</code> is no longer truncated, allowing the retention of the full line of Eiffel code.
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* Prevented creation of instances of <e>PROCEDURE</e>, <e>FUNCTION</e>, and <e>PREDICATE</e> using a creation instruction. An agent has to be created via the agent expression provided at the language level.
* Fixed a potential reporting of version mismatch when there is a mismatch but actually no version changes.
* Added <e>TABLE_ITERATOR</e> and <e>TABLE_ITERATION_CURSOR</e> to provide a common way for <e>TABLE</e> like datastructure to iterate over using the new across loop.
* Improved speed of `replace_substring_all` when replacing a smaller string by a larger one.
* Added support for string searches of a <e>STRING_32</e> string (previously it was limited to <e>STRING_8</e>).
* Fixed {IMMUTABLE_STRING_XX}.shared_substring which would not be properly processed by many string operations (e.g. item, item_code, code, ...).
* Changed the behavior of {STRING_XX}.twin to create a new string where the capacity is set to the count of the twinned strings and not to its capacity. In scenarios where a large buffer is used but a frequent twin is used it has a big impact on speed and memory usage.
* Fixed an issue with <e>{FILE}.read_to_string</e> which would not change the hash_code of the string given as argument.
* Improved speed of <e>HASH_TABLE</e> lookups.
* Added <e>{POINTER}.is_default_pointer</e>.
* Excluded class <e>BIT_REF</e> from the default setup. In order to use type <e>BIT</e> one has to define a variable <code>USE_BIT</code>.
* Made <e>{LINKED_STACK}.duplicate</e> void-safe, made a postcondition in <e>{INTERVAL}.intersection</e> void-safe.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===EiffelStore===
* Added support for INTEGER_xx and NATURAL_xx datatypes.
* Added support for transactions in the MySQL handle.
* Various speed improvements for SQL queries.
* Added support for multiple database connections.
* Added support for immutable and unicode strings.
* Added support for GUID type.
* Added support of DECIMAL type.
===Argument parser===
* Made feature <e>{ARGUMENT_BASE_PARSER}.copyright</e> deferred.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,113 @@
[[Property:title|Release notes for EiffelStudio 7.1]]
[[Property:link_title|7.1]]
[[Property:weight|12]]
[[Property:uuid|551e30c1-395c-27cb-e81f-d57204e68cc5]]
==Graphical environment==
===What's new===
* New SCOOP processor garbage collection which now lets you create more than 1500 processors during one execution. There is still a limit on the number of concurrent processors you might have.
* Added the Eiffel Web Framework contribution to build web applications or services in Eiffel.
* Added support for specifying C compiler flags and linker flags.
* Preview of GTK3 support which includes a HTML5 back-end for EiffelVision applications.
* Added support for EIFFEL_LIBRARY environment variable, if set and ISE_LIBRARY is not set by the current user, the former will be used to locate libraries.
* Info tool:
** Added a new Add button and Go To button. Rearranged the position of Delete button.
** Added a new built-in variable SYSTEM_PATH that refers to the location of system in which current entry is written.
** Added new contextual menu "Info" and sub menus Add Info to and Copy URI from.
** Implemented "DOC" protocol, supporting "bookmark" parameter, as long as Word is installed and available.
** Synchronize stones into Into Tool when clicking "Synchronize Context Tool"
** Improved acceptance of stones in the tool.
** Remember selected item when the tree is rebuilt (for recompilation and so on)
** Added a button to choose a file from a dialog for "Source".
** Added a dropdown list of choices for protocols.
** Changed names and sequence of columns as following: Target Source Parameters Protocol Name Tags Override
** Drew signs on icons to show there is information related to a tree node.
** In addition to "Unnamed" as default name, put "URI" as default protocol and http://www.yourwebsite.com as default Source when creating a new entry.
** Added completion list for available variables in Source.
===Improvements===
* Better copy/paste of code to avoid useless reformatting after copying and pasting a block of text. The smart behavior is available via Ctrl+V or Shift+Ins. If the new behavior is not adequate, Ctrl+Shift+V will paste as is.
* Better formatting of Eiffel source code when using the pretty printer.
* Better performance of SCOOP runtime for certain types of concurrent calls.
* Printing in postscript mode now allowed on Unix (previously, printing always defaulted to RTF); added `use_postscript` preference.
* Take into account mice with high resolution wheels.
* Avoid flashing when completion window is updated at each keystroke.
* Avoid resizing the grid all the time in Info tool when grid items are recreated for sorting, or other operations.
* Avoid adding empty attributes in code like EIS: "name=" when editing EIS entries.
===Changes===
* Removed addition of .NET targets in our project configuration templates to make it easier on new users to compile a project out of the box.
===Bug fixes===
* Fixed support of non-ASCII keyboard characters on Unix platforms.
* Fixed issue with automatically generated tests which included tests that should have been excluded because they represented invalid tests (e.g. precondition failures).
* Fixed issue where EiffelStudio would fail while trying to generate tests for a generic type whose generic derivation doesn't exist in the system.
* Fixed a runtime issue when testing automatically generated tests for a void-safe program, they would always fail instead of passing (when they should be passing).
* Fixed a failure of EiffelStudio when trying to display the help of a compiler error.
* Fixed disappearance of dashed pick and drop lines on Windows.
* Fixed an issue where trying to perform a diff inside the console tool would crash EiffelStudio.
* Fixed a bug in EIS tool, when target was changed from class to feature or back, the column "Override" was not updated correctly.
==Compiler==
* Click [[Major changes between ISE Eiffel 7.0 and ISE Eiffel 7.1|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* Improved speed for multiple rows selection in watch tool.
* Disable "ignore breakpoints" when launching debug session from "autotest" tool, or from execution parameters dialog.
* Fixed a "Call on Void target" due to missing dynamic type information (Grid item crash in debugger).
* Allowed evaluation of expressions which would not be valid if void-safety rules were applied (for example using a local that is detachable but the expression does not tell if at the evaluation time the local is attached or not).
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* Fixed a bug with <code>{ARRAY}.force</code> when the new lower index is less than the old lower index - count.
* Fixed a bug with <code>{ARRAY}.force</code> where if the items had to move, the newly allocated area was not reset.
* Corrected precondition of <code>{ARRAY}.force</code> that did not allow storing elements at existing indexes.
* Added <code>{PLATFORM}.is_scoop_capable</code> to find out if a system is compiled using a SCOOP capable runtime.
* Added ability to create a local string using a separate string.
* Moved most of the queries of strings descendants (e.g. <code>is_real</code>, <code>is_integer</code>, ...) to class <code>READABLE_STRING_GENERAL</code> to make it easier to handle all the various kinds of strings.
* Added <code>{HASH_TABLE}.disjoint</code> to find out if 2 tables have some common elements or not based on the key comparison criteria.
* Made explicit that the `<code>area</code>` is shared between an <code>ARRAY</code> and an <code>ARRAYED_LIST</code> created via conversion.
* Fixed improper implementation of `<code>copy</code>` for <code>UNIX_FILE_INFO</code> and <code>BOOL_STRING</code> which caused for the former a sharing of some <code>FILE</code> specific information.
* Fixed <code>{STRING_32}.left_adjust</code> that did not work properly when the string contained only white spaces.
* Fixed an issue with <code>{FILE}.exists</code> on Windows 32-bit when files are larger than 2GB. It only occurs with the latest version of the Microsoft C++ compiler (VS2010 or later).
===EiffelStore===
* Added support for XML data in ODBC.
* Fixed an issue with retrieving blob of null-size.
* Added ability to connect to several databases at once for the same database handle.
* Added ability to connect to an ODBC database using a connection string.
* Improved support for MySQL.
* Added query to find out how many rows have been affected by the last query.
* Made sure that errors are properly propagated when calling <code>{DATABASE_MANAGER}.execute_query_without_commit</code>.
* Properly handled <code>{DB_CHANGE}.reset</code>.
* Improved SQL string escaping. Fixed bug escaping ''' for ODBC.
* Added capability to enable multi-statements execution for MySQL.
===EiffelThread===
* Breaking change in class <code>THREAD</code>, descendants should now call <code>{THREAD}.make</code> in order to initialize threads properly. This change was required to have a project using SCOOP be able to use libraries that are only aware of multithreading.
* Fixed a memory corruption issue occurring when many threads are exiting at once, or that a child thread exits immediately after its parent but the parent is not yet finished in its termination.
===EiffelTime===
* Fixed improper parsing of 2 digit hours.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===Web Browser Library===
* Fixed a C compilation issue when finalizing a project using this library.
===WEL===
* Added ability to print to a specific printer or the default printer without having to show the printer dialog.
* Added support for loading EMF files through <code>WEL_GDIP_METAFILE</code>.
* Fixed an issue with <code>WEL_DISK_SPACE</code> that was not working in 64-bit mode. The fix implies a breaking change in that now a <code>NATURAL_64</code> is returned instead of an <code>INTEGER_32</code>.
* Added SCOOP support.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,62 @@
[[Property:title|Release notes for EiffelStudio 7.2]]
[[Property:link_title|7.2]]
[[Property:weight|11]]
[[Property:uuid|579e75a9-9e50-41ba-70e1-211a092d0f87]]
==Graphical environment==
===What's new===
* Added support for handling Unicode file names, environment variables, command line arguments and exception messages to your applications while preserving backward compatibility for existing code.
===Improvements===
* Usability improvements in the Eiffel Information System:
** Find elements in deeper levels of referenced libraries
** Try to locate links even if no system or cluster is specified
** Better error messages
* Allowed refactoring tool to rename a feature or a class by reusing an existing name.
* Added support of class text containing Unicode characters when prettifying code.
===Changes===
* To support Unicode file names a new class <e>PATH</e> was added, and most libraries using a string to represent a file name have been updated to also take a <e>PATH</e> instance as argument.
===Bug fixes===
* Fixed a crash during debugging that would cause an exception in <e>{ES_OBJECTS_TOOL_PANEL}.real_update</e>.
* Fixed a crash while trying to import preferences and no project was loaded yet.
==Compiler==
* Click [[Major changes between ISE Eiffel 7.1 and ISE Eiffel 7.2|here]] for the compiler release notes.
==Libraries==
===EiffelBase===
* Added new <e>PATH</e> class to represent a Unicode path. In addition it offers many features to compose or decompose a path in multiple components.
* <e>STRING</e>:
** Migrated many queries only found in <e>STRING_8</e> or <e>STRING_32</e> into parent class <e>READABLE_STRING_GENERAL</e>, for example: <e>has</e>, <e>item</e>, <e>index_of</e>, <e>last_index_of</e>, ...
** Added <e>prepend_substring</e> and <e>append_substring</e> for efficient insertion of substrings.
** Replaced commands <e>tail</e> and <e>head</e> (which have been obsolete since 2001) with queries creating a copy of the current string with characters removed at the beginning or at the end.
** Added caseless comparison of Unicode strings.
* Added new <e>REPEATABLE</e> class.
* Added <e>is_first</e> and <e>is_last</e> queries to iterators.
* Fixed bug#18272 where <e>{MANAGED_POINTER}.copy</e> did not properly set <e>count</e> and thus yielded a postcondition violation when duplicating an instance.
* Added new <e>ARGUMENTS_32</e> class to handle Unicode arguments.
* Added new <e>UTF_CONVERTER</e> class to handle various Unicode encoding conversions.
* Changed definition of <e>{DEBUG_OUTPUT}.debug_output</e> to be <e>READABLE_STRING_GENERAL</e>, so that Unicode characters in the string representation of an object can be displayed in the EiffelStudio debugger.
* Fixed an issue with `<e>incorrect_mismatch</e>' when it was applied to a <e>HASH_TABLE</e> whose keys are expanded but do not have a default value: the retrieved <e>HASH_TABLE</e> had one more item than the original one. It should fix eweasel test#table013.
===EiffelStore===
* Added support for Unicode SQL queries.
* Added support for immutable strings.
* Fixed an issue where passing a <e>DECIMAL</e> as an argument of a procedure did not set the scale (thus storing 1.00 when 100.00 was expected).
* Added ability to perform a sequence of database select/update/delete as a transaction.
* Fixed some limitations on the length of columns, errors and warnings.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===WEL===
* Added support for Unicode file names.
* Added support for properly handling UTF-16 surrogate pairs.
* Fixed a bug in <e>WEL_FONT</e> for the computation of the size of a string that could cause string access on an invalid index; and removed unused calculations.
* Fixed a bug in <e>WEL_GDIP_METAFILE</e> that would cause a C compilation error when compiled using GCC.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,56 @@
[[Property:title|Release notes for EiffelStudio 7.3]]
[[Property:link_title|7.3]]
[[Property:weight|10]]
[[Property:uuid|8fd95935-df4c-22f6-56d3-b3ea559d0342]]
==Graphical environment==
===What's new===
* A [[change analysis]] for documents in the [[Eiffel Information System]] where one can be notified of which documents to update when a class is modified, and conversely whenever a document is modified which classes might need updating.
* EiffelStudio will now show you the contracts of a feature when completing code, letting you quickly find out the proper way to call it.
* When debugging, moving the mouse pointer over an expression will cause the debugger to evaluate the expression and display its computation result in a tooltip.
===Improvements===
* Used void-safety settings of a target to list libraries that are compatible with it and provided more details on their void-safety status in the dialog for adding libraries.
===Changes===
* In [[AutoTest]], tests will be executed under the location of the Eiffel configuration file (ECF) and not in the Testing subdirectory of the EIFGENs directory.
===Bug fixes===
* Fixed a memory corruption that would occur when you have multiple errors during a compilation and you are opening each error in its own tab editor: after opening 4 or 5 tabs, EiffelStudio could become unstable.
* Fixed a crash after saving a diagram as a PNG file.
==Compiler==
* Click [[Major changes between ISE Eiffel 7.2 and ISE Eiffel 7.3|here]] for the compiler release notes.
==Debugger==
===Graphical environment===
* Added ability to evaluate expressions by simply hovering over the feature tool while debugging.
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* Updated <e>TUPLE</e> and depending classes to separate entities.
* Updated <e>ROUTINE</e> and descendants to be usable for agents with separate targets.
* Fixed a comparison bug with <e>EQUALITY_TUPLE</e> which actually would only compare the last elements.
* Made <e>INTERNAL</e> obsolete. It is now replaced by two sets of classes: a static introspection class and a dynamic one. The class that lets you examine the static content is <e>REFLECTOR</e>; most references to <e>INTERNAL</e> can easily be replaced by <e>REFLECTOR</e>. To inspect objects, you have a new set of classes starting with <e>REFLECTED_OBJECT</e>. This lets you inspect objects with copy semantics without actually causing a copy each time you access it, unlike what was happening before with <e>INTERNAL</e>.
* Fixed a reallocation bug in <e>SED_MEMORY_READER_WRITER</e> where if you retrieve a large chunk, we would not allocate enough memory.
* Added ability to store/retrieve expanded objects and objects with copy semantics with SED.
* Storables made using SED from version 6.6 or earlier of EiffelStudio not using the `is_for_fast_retrieval` setting won't be recoverable.
===EiffelStore===
* Do not remove trailing spaces for string content.
* Changed the type mapping for string objects to varchar instead of char at table allocation for ODBC.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===WEL===
* Fixed a 64-bit truncation bug in the message dispatcher of WEL.
* Fixed a memory corruption that would occur when loading a 32-bit BMP image as a background image of a container in a 16-bit or lower display.
* Fixed an issue with <e>WEL_CHOOSE_FOLDER_DIALOG</e> where <e>set_starting_path</e> had no effect.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,8 @@
[[Property:title|EiffelStudio release notes]]
[[Property:link_title|Release Notes]]
[[Property:weight|-15]]
[[Property:uuid|E82AA751-6A14-4983-B9A3-9A7D1C7F9BB4]]
Change-logs are available at [https://dev.eiffel.com/Category:Releases] .

View File

@@ -0,0 +1,77 @@
[[Property:title|Release notes for EiffelStudio 13.11]]
[[Property:link_title|13.11]]
[[Property:weight|9]]
[[Property:uuid|6610b1df-9530-9850-d568-20f14d4eb044]]
==Graphical environment==
===What's new===
* Eiffel Information System links and other type of links are now clickable in the editor.
* Editor shows both the Unix style or Windows style for new lines.
* Added wrapper for the ZeroMQ messaging library.
* Added ABEL, an object persistent layer on top of in-memory or relational databases.
* Added support for Sun C compiler on Linux for RHEL, OL and Ubuntu 8.04. Other Linux distributions are not supported.
===Improvements===
* Improved debug tooltip for nested feature call evaluation.
* Improved completion window/tooltip positioning with respect to monitor coordinates and multiple displays.
* Improved command line behavior of running tests to automatically perform the necessary compilation steps to test compiled system.
* Completion and pick and drops will now work more reliably reliably after many edits.
* Added void-safe version of Gobo. Only arguments, test, tools and XML are not yet void-safe.
===Changes===
* We have changed our versioning scheme: we will use as the major revision the last 2 digits of the current year, here 13, and as minor the month of the release, here 11. Next release will therefore be 14.05.
* When a Unicode character as an ASCII equivalent we will not silently convert it to the ASCII equivalent.
===Bug fixes===
* Fixed "Evaluator Died" error when running tests in AutoTest when using certain combinations of root class and creation procedure.
* Fixed bug#18563: Supported renaming of features used in qualified anchored types when refactoring code.
* Fixed bug#16960: Fixed an exception when showing an inherited class invariant with qualified anchored types.
* Fixed bug#18606: When completing some code you can see that the entries are shifting by one pixel. It is only visible via remote desktop or when desktop composition is disabled.
* Fixed bug#18614: Moving text containing Unicode characters in the editor will lose the Unicode characters.
* Fixed bug#18611: Preventing an EiffelStudio hang when browsing ECF in the group tool when ECF refers to each other recursively.
* Fixed bug#18679: Clicking locate button in the Eiffel Information System tool when editor is empty would crash EiffelStudio.
==Compiler==
* Click [[Major changes between ISE Eiffel 7.3 and ISE Eiffel 13.11|here]] for the compiler release notes.
==Debugger==
N/A
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===EiffelBase===
* Added parenthesis aliases for <e>PROCEDURE.call</e> and <e>FUNCTION.item</e> so that the calls to agents <e>foo.call (1, 2, 3)</e> and <e>x := bar.item ("qux")</e> can be replaced with <e>foo (1, 2, 3)</e> and <e>x := bar ("qux")</e>.
* Made <e>TUPLE</e> an iterable structure.
* Added <e>{TUPLE}.plus</e> which will concatenate 2 tuples.
* Fixed typo in <e>{TUPLE}.is_uniform_character_32</e>
* Added features <e>{TYPE}.is_conforming_to</e> and <e>{TYPE}.is_strictly_conforming_to</e> as implementations of the comparison queries from <e>PART_COMPARABLE</e> to support partial order on type objects (rev#92913).
* Added functions <e>{TUPLE}.new_tuple_from_special</e> and <e>{TUPLE}.new_tuple_from_tuple</e> to create a tuple of a specified type filled with given values (rev#92917).
* Added features <e>{ROUTINE}.flexible_call</e> and <e>{FUNCTION}.flexible_item</e> that accept argument tuples whose type should not exactly match the type of the routine as soon as the types of arguments match (rev#92918).
* Marked <e>{ROUTINE}.empty_operands</e> as obsolete to be ready for removal in the future as non-void-safe (rev#92918).
* In <e>HASH_TABLE</e>, in the event of a mismatch, it is possible that the value of `control` was invalid (see bug#18670) so we reset it to 0.
* Introspection changes in <e>OBJECT_GRAPH_TRAVERSABLE</e>:
**Rewrote <e>traverse</e> to fix an issue with objects with expanded fields where we would not recurse into them. Added support for <e>SPECIAL</e> of expanded as well. We still have restrictions for <e>TUPLE</e> with expanded for which a copy be done.
** Added new callbacks <e>on_processing_object_action</e> and <e>on_processing_reference_action</e> each time a new object is traversed, that help building a graph of objects.
** Added <e>has_failed</e> to find if the traversal succeeded or not.
** Added the ability to trigger or not an exception when a copy of an expanded object is done when we do not want any. Also we let user choose if exceptions will be raised to callers.
===EiffelVision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===Eiffel Editor ===
* Stop translating %R%N into %N on input, we now keep the original text to ensure positioning information can be easily converted by code reading text files.
* Draw a symbol for new lines when formatting marks are displayed: "¯" is used for Unix style new line and "¬" is used for Windows style new line.
===Web Browser===
* Added <e>is_browser_usable</e> to know if the browser library is available.
* Simplified compilation of unix side of the library to load the webkit shared library at runtime without requiring it at compile time.
===XML===
* Fixed XML cases where we have <foo att/> or <foo att> ... take into account the attribute `att` but report missing value for attribute `att`.
* Add report_unsupported_bom_value routine to report unsupported BOM value error.
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,98 @@
[[Property:title|Release notes for EiffelStudio 14.05]]
[[Property:link_title|14.05]]
[[Property:weight|8]]
[[Property:uuid|f82eb6d2-c4ee-7243-7295-80dcdc584db7]]
==Graphical environment==
===What's new===
* ''' [[Eiffel Inspector]]''': A static analysis tool to help you maintain a high code quality. Currently there are 35 rules that can detect coding style, performance, or runtime issues.
* '''Automatic Fixing''': EiffelStudio can fix some class of errors automatically. Currently we fix unused local variables and missing types to the declaration of local variables.
* Added support for SSL to EiffelNet.
===Improvements===
* Made sure to show the groups content very early in the compilation process.
* Reduced size of project file in EIFGENs directory to speed up loading and saving of Eiffel projects after each compilation.
* Better handling of multiple monitor to ensure EiffelStudio is opened on the same screen as it was at last launch.
* AutoTest: Made it possible to run test cases outside of the AutoTest framework by simply calling them from a normal class.
* compile_all: Made it easier to compile a project for the various platforms we support. This is done by using the new '''-platform''' option where a platform name can be either ''unix'', ''windows'', ''macintosh'', or ''vxworks''. If you suffix the platform name with '''!''' it will only compile projects that are sets for this platform. If a project specify a platform and the '''-platform''' has been set and is different, the project will be ignored.
===Changes===
* Support for .ACE and .EPR files have been dropped from EiffelStudio. A tool '''ace2ecf''' is now available to convert .ACE to .ECF if needed.
* AutoTest: EiffelStudio will never saved generated test classes in the EIFGENs directory, user will have to specify a directory. This is to avoid losing tests after deleting an EIFGENs directory.
* New created projects are set to the complete void-safety level.
===Bug fixes===
* Fixed slow formatting of classes/features after editing the corresponding class.
* Made sure to show the feature comment when showing the contracts during code completion.
* Fixed improper display of conditions in task and external nodes of the Eiffel Project Settings dialog.
* Fixed an issue with preferences where setting them to a value, you will never be able to set it back to its default value.
* Fixed an editor issue where saving a class would force a refresh of the editor instead of just saving.
* Fixed an editor where copy/pasting code containing new lines with some leading tabs, the cursor would be improperly positioned after pasting.
* Fixed crash when searching for a feature while the editor hasn't finished loading (bug#18792, bug#18501, and bug#17626)
* Fixed wrong newline characters on Windows when creating a new class from our templates.
* Fixed the "Evaluator Died" error when running AutoTest on Unix systems (bug#18078).
* Prevented a crash when trying to run AutoTest and no executable is present (e.g. case of compiling a project as a library instead of as an application) (bug#18838).
* Fixed crash when you start running a test that was just renamed it (bug#18686).
==Compiler==
* Click [[Major changes between ISE Eiffel 13.11 and ISE Eiffel 14.05|here]] for the compiler release notes.
==Debugger==
N/A
==EiffelBuild==
* Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes.
==Libraries==
===General===
Most libraries do now compile in the highest level of void-safety except the following ones:
* docking
* editor
* edk
* graph
* memory_analyzer
===Arguments ===
* Changed the default display of help by showing first the option arguments and then the non-switched arguments.
===Base===
* Added <e>{READABLE_STRING_GENERAL}.is_whitespace</e> and <e>{READABLE_STRING_GENERAL}.is_substring_whitespace</e>.
* Added <e>epsilon</e> and <e>machine_epsilon</e> queries as requested by users in REAL_32 and REAL_64.
* Added missing <e>min_value</e> and <e>max_value</e> from the .NET version of REAL_32 and REAL_64.
* Removed obsolete feature <e>{TUPLE}.make</e>.
* Fixed <e>{FILE_UTILITIES}.files_end_with</e> to respect the depth level specified in argument.
* Fixed issues with the handling of the Unicode escape character. If the escaped UTF-32 string contains the escape sequence and it is trying to escape something that could fit the UTF-16 or UTF-8 encoding, then we store the content as is. This is to avoid the case for UTF-16 where if you have: '''?61''' it would yield '''a''' after round-tripping. Now if the UTF-16 or UTF-8, contains the escape character, the resulting string would have it twice, which again preventing proper roundtriping.
===Internationalization===
* Removed <e>get_locale</e> and <e>get_language</e> from <e>I18N_FILE_SCOPE_INFORMATION</e> to use the Eiffel naming convention <e>locale</e> and <e>language</e> and also changed the types to be detachable. This requires updating callers to the new names and to also perform a check that the request yields an attached entity.
===Regexp===
* Renamed CHARACTER_SET and BYTE_CODE into PCRE_CHARACTER_SET and PCRE_BYTE_CODE to avoid name conflicts with libraries that have the same class names.
===Ribbon===
* Added ability to assign hot keys to ribbon elements.
===Store===
* Improved the behavior of storing binary data by not imposing the user to convert its binary stream to hexadecimal in the case of stored procedures and prepared statements. This is a breaking change as now it will store whatever you provide as is. For traditional SQL statements it remains the same and binary data needs to be converted.
* Better handling of conversion of REAL_32 and REAL_64 to decimal when the associated column is a decimal.
* Removed precondition <e>is_allocatable</e>, <e>descriptor_available</e>, or <e>descriptor_is_available</e> to many EiffelStore routines. If a descriptor cannot be allocated, the execution of the routine will fail and an error code and message will be reported.
* Fixed issue with ODBC when storing large strings when using a prepared statement or a stored procedure, only the first 4000 bytes would be stored.
* Fixed issue with ODBC when storing a string into a binary column of the database which would fail with a mismatch.
* Fixed issue when the length of a table or column name is more than 50 characters.
* Fixed issue with ODBC where a large ASCII data would have their first byte missing.
* Added support for handling NULL values in a database using ODBC when using a mapping in DB_SELECTION, DB_DYN_SELECTION, DB_CHANGE or DB_DYN_CHANGE.
===Vision2===
* [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]]
===WEL===
* Optimized performance of <e>WEL_RICH_EDIT_BUFFER_SAVER</e>.
* Fixed issue in <e>{WEL_STRING}.set_string_with_newline_conversion</e> with Unicode characters above the 65535 range, the result of the conversion to UTF-16 requires more space and when you have to replace %N into %R%N we forgot to resize the content before inserting the %R%N characters.
* Fixed issue in <e>{WEL_STRING}.set_string_with_newline_conversion</e> where if the input string had only one character after the last %N, that character would be discarded. That is to say "%Na" would yield "%R%N" instead of "%R%Na" (bug#18783).
* Fixed incorrect signatures for the wrapping of PostMessage, GetCurrentProcessId and GetWindowThreadProcessID which do not return a pointer but an integer type.
===XML===
* Fixed XML parser when the input file is exactly the same size as the xml file input stream chunk size (default 4096 bytes).
[[EiffelStudio release notes|Click here to check out what was new in other versions]]

View File

@@ -0,0 +1,8 @@
[[Property:uuid|D8B8E272-0AA0-4050-BC9C-2D026E90320C]]
[[Property:title|Release notes for EiffelStudio 15.01]]
[[Property:link_title|15.01]]
[[Property:weight|7]]
In Progress ...
* In the meantime, please visit the [https://dev.eiffel.com/EiffelStudio_15.01_Releases 15.01 changelog].

View File

@@ -0,0 +1,9 @@
[[Property:uuid|840A8543-D111-4339-9232-43ABDC21C4D1]]
[[Property:title|Release notes for EiffelStudio 15.08]]
[[Property:link_title|15.08]]
[[Property:weight|6]]
* See [[Release notes for EiffelStudio 15.12]].
* Please visit the [https://dev.eiffel.com/EiffelStudio_15.08_Releases 15.08 changelog].