Release notes for EiffelStudio 18.11

Graphical environment

  • The debugger marks a class routine with a special icon in the call stack and prevents using non-class features in the watch tool inside a class routine.
  • The completion popup dialog shows the associated target class (if any) at the top of the dialog.
  • The class tool displays description of classes (if enabled).
  • The diagram tool has improved drawing of figures and connectors.
  • After refactoring, the editor restores current position as expected.
  • A project can be recompiled from scratch from the Project menu.
  • Editor tabs can be exported and imported via the hidden experimental menu Service > Import/Export tabs... (Ctrl+Alt+D ).

Compiler

  • Assertion expressions are used as tags for assertions without explicit tags.
  • Concurrency and void-safety project settings can be overridden when compiling from the command line.
  • Project settings can use conditions based on void safety level.
  • Checks for void safety of object initialization take into account an assigner command.
  • Exception traces in final and workbench mode use the same breakpoint indexes.
  • Several code-generation and run-time bugs are fixed.

Libraries

  • All container classes are now ITERABLE that allows for iterating over them with the across loop and simplifies conversions between different types of containers. Potential incompatibility for descendant classes that did not implement new_cursor.
  • duplicate, duplicate_all and related features of container classes are now obsolete to simplify inheritance from these classes in the future. The affected effective classes now have the feature make_from_iterable.
  • Figures in Vision can be drawn with anti-aliasing (on Windows).
  • HASH_TABLE now takes arguments of type G instead of detachable G and introduces a feature definite_item of type G (in addition to the existing feature item of type detachable G).
  • OpenSSL binding uses OpenSSL 1.1.1a and supports new asymmetric algorithms (RSA).
  • JWT (JSON Web Token) supports custom JWT algorithms. The associated extension library provides RSA signing algorithms.
  • Performance of the JSON parser is improved by 40% on large regular files.
  • The new function JSON_VALUE.chained_item (a_key): JSON_VALUE allows for expressions json @ "person" @ "address" @ "city" to get associated JSON value.
  • ROC CMS implements protection against cross-site scripting attacks.
  • EiffelWeb adopts nanoseconds timeout precision and supports suffixes ns, us, ms, s for the standalone connector in the initialization file.
  • EiffelWeb correctly uses the setting socket.timeout for httpd (before the misuse of the setting caused high CPU usage for WebSocket).
  • Creation procedures of some container classes are now secret. Potential incompatibility for clients of the classes.

Tools

  • Code analyzer does not report false positives for the rules about an unread variable (CA020) and replacement of a regular loop with an iterative form (CA024).

Examples

  • processor_pool demonstrates how a pool of active SCOOP processors can be used to execute tasks from passive regions.

See change log for more details.