EiffelStudio 17.05 Releases

Below are not the release notes of EiffelStudio. It is the change log of EiffelStudio intermediate releases and the most important changes are highlighted in green or in red (for breaking changes). The release notes of EiffelStudio can be found at the following URL. You can also download the latest revision here. Information about other version can be found under Category:Releases.

EiffelStudio 17.05.x Releases

Beta download: https://ftp.eiffel.com/pub/beta/17.05/

17.05.10.0416 (Final Release, May 29th 2017)

New features

  • studio: Add Visual Studio 2017 support for C compilation.
  • library (base): Added new creation procedure `{*_STRING_8}.make_from_c_substring (...)`
  • EiffelStudio (IDE): arguments and local variables are pickable (P&D: you can pick the associated stone, and drop it in editor). Note: for now only normal feature locals are supported.

Improvements

  • library (docking): Docking library is now completely void-safe. Breaking changes: some creation features now require a docking manager object as an argument.
  • compiler: Obsolete calls are detected and reported for features used as binary and unary operators and in conversions.
  • compiler: Messages about obsolete calls provide information about source code location.
  • EiffelStudio (inspector): Obsolete messages are checked for presence of a date in format [yyyy-mm-dd] that tells when the feature is considered obsolete and call to it should be removed. If the date is not specified, a warning is reported and a default value [2017-05-31] is used.
  • EiffelStudio (inspector): Obsolete calls are detected and reported with different severity levels depending on the message date:
    suggestion - in the future
    warning - less than 1 year old
    error - more than 1 year old
  • EiffelStudio (inspector): Obsolete features reported with different severity levels depending on the message date:
    nothing - less than 1.5 year old
    warning - more than 1.5 year old
  • EiffelStudio error and warning tree is always expanded showing the first N errors, by default N=1.
  • EiffelStudio: Added contextual menu to restore: recently closed tabs.
  • compiler: Improved performance of object initialization checks in complete void safe mode when a class has hundreds of attributes and features (including inherited ones).
  • library: Updated libraries and examples included with EiffelStudio installation to avoid obsolete feature calls.
  • library (cms): Improved the CMS library with
  • library (EiffelWeb/wsf): Fixed computation of path info, in extreme condition.
  • library (uri): improved path and query url encoding, supported various exceptions.
  • library (http_client): fixed query and url encoded form-data generation, to follow RFC.
    fixed port number support for EiffelNet implementation.
    fixed redirection behavior, should follow only for 3** status code.
    Allow forcing multipart/form-data or application/x-www-form-urlencoded to choose how the form data should be sent.
  • library (json): Added JSON_VALUE.is_string, is_number, ..., is_null boolean queries for convenience.
  • library (crypto): Fixed and improved BASE32 and BASE64 implementation.
  • library (wikitext): Improved support for wiki table and wiki images.
  • library (cms): many improvements and additions
    splitted administration pages from main site page.
    improved editing workflow, with better control on (un)published entries.
    added sitemap generation
    added notion of author vs editor (WARNING: requires database update)
    added support for Google Custom Search 2.0
    format can be customized with available filters.
    feed aggregation: added possibility to embed view, added possibility to order by date.
    new messaging module to send message to web site users.
    added support for profile name, in addition to standard user name (so now, for security, username can be hidden from posts)
  • library (C_library/png): Updated libpng library to version 1.6.28
  • library (C_library/zlib): Updated zlib library to version 1.2.11
  • compiler: test#vwce002 - Relaxed typing rules for conditional expressions to allow for different types to be used in different branches as soon as they are pair-wise conforming. Special care is taken about attachment and separateness statuses so that the expression if foo then "Bar" else Void end is valid and is of type detachable STRING.

Bug fixes

  • compiler: bug#19333 (test#melt110) - Fixed a bug that caused melted code to fail when it had a call to {CHARACTER_32}.is_character_8.
  • library (base): test#reflection010 - Fixed a postcondition dynamic_type_set of the feature {REFLECTOR}.new_instance_of that did not take into account a possibility that the supplied type ID may have an attachment mark.
  • library (vision): - Fixed a precondition violation that may be triggered by dropping selected file names on Windows into a Vision widget.
  • library (base): bug#19277 (test#lib044) - Fixed bugs in traversal of HASH_TABLE using ITERABLE cursors when some elements are removed: incorrect evaluation of cursor_index that may cause a postcondition violation when advancing to the next item, incorrect backward traversal that may produce spurious items.
  • compiler: test#attach124, test#attach125, test#attach126 - Fixed a bug that might lead to a call on void target in a completely void-safe program if newly created objects are created, passed to once functions and are returned as their result but then fail to finish their initialization because of an exception.
  • EiffelStudio: bug#19336 - Fixed a bug that might cause a crash when Windows drag and drop mechanism is used to a drop a file name to the IDE when no project is open.
  • compiler: test#attach127 - Fixed a bug that might cause access on void target in a completely void-safe application that passes an incompletely initialized object inside an expanded argument to a creation procedure that makes a qualified call on the incompletely initialized object.
  • compiler: test#attach045 - Fixed a bug that might lead to undetected void safety issue when compiling in complete void safety mode and there is a test that an argument or a stable attribute is not void in an inherited precondition. Now attachment status of these variables does not depend on preconditions.
  • library: test#lib045 - Fixed a bug in HEXADECIMAL_STRING_TO_INTEGER_CONVERTER that caused incorrect processing of negative numbers when requested type was (a sized variant of) NATURAL.
  • compiler: test#codeanalysis025 - Fixed a bug that might cause code analyzer to finish with an error when checks involve inline agents or built-in features.
  • run-time: test#scoop080 - Fixed a bug that might cause evaluation of a class invariant on a separate object before executing its creation procedure body.
  • run-time: test#store045 - Allowed retrieval of old storables containing agent objects (PROCEDURE/FUNCTION or PREDICATE) when they still had an extra first generic parameter in version 15.08 and older, or before the change of internal representation in version 14.05.
  • compiler: test#scoop081 - Fixed a bug that might cause infinite recursion when evaluating preconditions with agents in SCOOP mode when the system is frozen or finalized.
  • library: scoop_patterns - Fixed inline C code that used a run-time macro that was renamed earlier.
  • library: pcre - Fixed postconditions that used reference comparison instead of string value comparison to compare arguments with attributes initialized with the argument values.
  • library (thread)/run-time: bug#19356 (test#thread025) - Fixed a bug that might cause incorrect behavior during thread termination if attribute terminated of class THREAD is renamed in a descendant.
  • EiffelStudio (editor): fixed completion when inline agent or inline separate are before the cursor.
  • EiffelStudio (IDE): fixed issue when importing EiffelStudio layout (also concerns previous settings importation).
  • EiffelStudio (compiler): fixed tracing support, now the tracing starts from the beginning of the execution (as expected).
  • library (json): Fixed parsing of integer 64 value (when it is not an integer 32).
  • c_compilation: Enabled C compilation on Windows of code using winsock2 (See message to user's list for more detail).

User changes

  • library (docking): Some creation procedures in the Docking library now require a docking manager object as an argument.