mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-06 14:52:03 +01:00
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@2128 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
47 lines
3.8 KiB
Plaintext
47 lines
3.8 KiB
Plaintext
[[Property:modification_date|Fri, 04 Jan 2019 15:52:42 GMT]]
|
|
[[Property:publication_date|Mon, 26 Nov 2018 10:45:37 GMT]]
|
|
[[Property:uuid|4452B417-C538-49AF-960F-C3C2473A3AF8]]
|
|
[[Property:title|Release notes for EiffelStudio 18.11]]
|
|
[[Property:link_title|18.11]]
|
|
[[Property:weight|-1]]
|
|
|
|
==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...'' ({{Key|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 <e>ITERABLE</e> that allows for iterating over them with the <e>across</e> loop and simplifies conversions between different types of containers. {{Inline-Warning|Potential incompatibility}} for descendant classes that did not implement <e>new_cursor</e>.
|
|
* <e>duplicate</e>, <e>duplicate_all</e> 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 <e>make_from_iterable</e>.
|
|
* Figures in Vision can be drawn with anti-aliasing (on Windows).
|
|
* <e>HASH_TABLE</e> now takes arguments of type <e>G</e> instead of <e>detachable G</e> and introduces a feature <e>definite_item</e> of type <e>G</e> (in addition to the existing feature <e>item</e> of type <e>detachable G</e>).
|
|
* OpenSSL binding uses <code lang="text">OpenSSL 1.1.1a</code> 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 <e>JSON_VALUE.chained_item (a_key): JSON_VALUE</e> allows for expressions <e>json @ "person" @ "address" @ "city" </e> to get associated JSON value.
|
|
* ''ROC CMS'' implements protection against cross-site scripting attacks.
|
|
* ''EiffelWeb'' adopts nanoseconds timeout precision and supports suffixes <code lang="text">ns</code>, <code lang="text">us</code>, <code lang="text">ms</code>, <code lang="text">s</code> for the standalone connector in the initialization file.
|
|
* ''EiffelWeb'' correctly uses the setting <code lang="text">socket.timeout</code> for ''httpd'' (before the misuse of the setting caused high CPU usage for WebSocket).
|
|
* Creation procedures of some container classes are now secret. {{Inline-Warning|Potential incompatibility}} for clients of the classes.
|
|
|
|
==Tools==
|
|
* Code analyzer does not report false positives for the rules about an unread variable (<code lang="text">CA020</code>) and replacement of a regular loop with an iterative form (<code lang="text">CA024</code>).
|
|
|
|
==Examples==
|
|
* <e>processor_pool</e> demonstrates how a pool of active SCOOP processors can be used to execute tasks from passive regions.
|
|
----
|
|
|
|
See [https://dev.eiffel.com/EiffelStudio_18.11_Releases change log] for more details.
|