Difference between revisions of "EiffelStudio 20.11 Releases"

(EiffelStudio 20.11.x Releases)
m (20.11.xx.yyyy (Month Day 2020): Updated the version and the release date.)
 
(27 intermediate revisions by 2 users not shown)
Line 7: Line 7:
 
Beta download: https://ftp.eiffel.com/pub/beta/
 
Beta download: https://ftp.eiffel.com/pub/beta/
  
== 20.11.xx.yyyy (Month Day 2020) ==
+
== 20.11.10.5048 (December 21st 2020) ==
  
 
===New features===
 
===New features===
 +
* compiler: Supported once classes.
 +
* EiffelStudio (wizards): Added WrapC wizard.
 +
* EiffelStudio: Added pretty printer notification.
 +
 
===Improvements===
 
===Improvements===
* studio: added a zoom indicator in the Zoom menu.
+
* EiffelStudio: Added a zoom indicator in the Zoom menu.
 +
* EiffelStudio (AutoTest): Updated to make it compatible with void safety.
 +
* compiler: Extended the message about successful compilation with a notification if warnings were reported.
 +
* EiffelStudio (editor): Made start and stop symbols from Unicode forms of loop instructions to be pairs of matching "parentheses".
 +
* EiffelStudio (editor): Updated grammar rules for syntax highlighting to match those used by teh compiler.
 +
* EiffelStudio (debugger): Added preferences to control default values of CAT-call detection in the debugger and reporting in the console.
  
 
===Bug fixes===
 
===Bug fixes===
 
* compiler (pretty printer): Fixed bug#19667 (test#pretty033) by making sure a space is printed before delayed arguments of an agent.
 
* compiler (pretty printer): Fixed bug#19667 (test#pretty033) by making sure a space is printed before delayed arguments of an agent.
* studio: Restore focus to previous focused widget when raising a message notification.
+
* compiler (pretty printer): Fixed test#pretty034 by correcting output for feature export adaptation clause.
* eiffel script: fixed cache location when using an ECF file with multiple application targets.
+
* EiffelStudio: Restore focus to previous focused widget when raising a message notification.
* studio: fixed the customized formatter editor dialog.
+
* tool (Eiffel script): Fixed cache location when using an ECF file with multiple application targets.
* studio: fixed crash while using the project settings on linux (bug#19687).
+
* EiffelStudio: Fixed the customized formatter editor dialog.
 +
* EiffelStudio: Fixed crash while using the project settings on linux (bug#19687).
 +
* EiffelStudio (AutoTest): Fixed issue with AutoTest Extracted Test Cases
 +
* EiffelStudio (AutoTest): Fixed issue, feature call on void target with Autotest Random generator
 +
* compiler (code analyzer): Significantly reduced the number of false positives when checking for <code>CA022</code> violations (unreachable code).
 +
* EiffelStudio (debugger): Fixed a bug that prevented correct saving and restoring of CAT-call handling settings.
  
 
===Feature removed===
 
===Feature removed===
Line 26: Line 40:
  
 
===User changes===
 
===User changes===
* delivery: removed the "experimental" folder from the delivery
+
* delivery: removed the "experimental" folder from the delivery.
* studio: added scripts (for unices) in tools/spec/../bin to open external editor, launch url, and open terminal.
+
* EiffelStudio: Added scripts (for Unixes) in <code>tools/spec/../bin</code> to open external editor, launch URL, and open terminal.
 +
* EiffelStudio: Updated Features tools, collapsing inheritance sub-tree by default.
 +
* library (vision): Marked <e>{EV_ANY}.copy</e> as obsolete (it is non-obsolete only in descendants that redefine it).
  
 
===Libraries improvements===
 
===Libraries improvements===
Line 38: Line 54:
 
* web cms: improved web form manipulation and html generation
 
* web cms: improved web form manipulation and html generation
 
* vision2: added EV_LINK_LABEL and EV_HIGHLIGHT_LINK_LABEL (to mimic web link)
 
* vision2: added EV_LINK_LABEL and EV_HIGHLIGHT_LINK_LABEL (to mimic web link)
 +
* uri_launcher: Moved uri_launcher library from Eiffel framework to library/runtime/process/uri_launcher
 +
* base_extension: Added  class TOPOLOGICAL_SORTER used to produce a total order on a set of elements having only a partial order.
 +
* base_extension (unstable): extended with library classes for Graphs, B-Trees and union-find, based on the thesis work [https://www.research-collection.ethz.ch/handle/20.500.11850/149025 Extending the Eiffel Library for data structures and algorithms: EiffelBase]
 +
* base: Added a feature `to_hexa_digit` to character classes to convert a hexadecimal (Unicode) digit character to the corresponding numeric value.
 +
 +
===New libraries===
 +
* Multiple new wrappers for C libraries:
 +
{| style="border: solid 1px #ccc;"
 +
!Wrapper
 +
!Description of C library
 +
|-
 +
|[https://iron.eiffel.com/repository/20.11/package/99BB5A06-CBC6-4C32-952A-9BD014E135B2 wrap_mpack]
 +
|mpack is a C implementation of an encoder and decoder for the [MessagePack](https://msgpack.org/) serialization format.
 +
|-
 +
|[https://iron.eiffel.com/repository/20.11/package/691C5109-A19B-47B7-8976-4E60AEB4FD87 wrap_cairo]
 +
|Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window
 +
System (via both Xlib and XCB), quartz, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends
 +
include OpenGL, BeOS, OS/2, and DirectFB.
 +
|-
 +
|[https://iron.eiffel.com/repository/20.11/package/B3D0D18C-84CE-4021-98A5-E2E84C8722A6 wrap_rsvg]
 +
|This is librsvg - A small library to render Scalable Vector Graphics (SVG), associated with the GNOME Project. It renders SVG files to Cairo surfaces. Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to the screen or to generate output for printing.
 +
|}
 +
  
 
===Libraries bug fixes===
 
===Libraries bug fixes===
* sqlite3: fixed SQLITE text containing null character
+
* sqlite3: Fixed SQLITE text containing null character
* web cms: updated core and authentication modules to remove potential vulnerabilities (js, svg script in url).
+
* web cms: Updated core and authentication modules to remove potential vulnerabilities (js, svg script in url).
* web cms: fixed a crash of the "roc" installer tool when a module had no "site" folder.
+
* web cms: Fixed a crash of the "roc" installer tool when a module had no "site" folder.
 +
* base: Corrected preconditions of shift operations on integral numbers that might not work when shift count is equal to the number of bits.
  
 
===Developer changes===
 
===Developer changes===
* libraries: removed the *-safe.ecf as they are useless thanks to the notion of capabilities of ecf files.
+
* libraries: Removed the <code>*-safe.ecf</code> configuration files because they became useless with introduction of capabilities.

Latest revision as of 06:40, 11 January 2021

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

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

20.11.10.5048 (December 21st 2020)

New features

  • compiler: Supported once classes.
  • EiffelStudio (wizards): Added WrapC wizard.
  • EiffelStudio: Added pretty printer notification.

Improvements

  • EiffelStudio: Added a zoom indicator in the Zoom menu.
  • EiffelStudio (AutoTest): Updated to make it compatible with void safety.
  • compiler: Extended the message about successful compilation with a notification if warnings were reported.
  • EiffelStudio (editor): Made start and stop symbols from Unicode forms of loop instructions to be pairs of matching "parentheses".
  • EiffelStudio (editor): Updated grammar rules for syntax highlighting to match those used by teh compiler.
  • EiffelStudio (debugger): Added preferences to control default values of CAT-call detection in the debugger and reporting in the console.

Bug fixes

  • compiler (pretty printer): Fixed bug#19667 (test#pretty033) by making sure a space is printed before delayed arguments of an agent.
  • compiler (pretty printer): Fixed test#pretty034 by correcting output for feature export adaptation clause.
  • EiffelStudio: Restore focus to previous focused widget when raising a message notification.
  • tool (Eiffel script): Fixed cache location when using an ECF file with multiple application targets.
  • EiffelStudio: Fixed the customized formatter editor dialog.
  • EiffelStudio: Fixed crash while using the project settings on linux (bug#19687).
  • EiffelStudio (AutoTest): Fixed issue with AutoTest Extracted Test Cases
  • EiffelStudio (AutoTest): Fixed issue, feature call on void target with Autotest Random generator
  • compiler (code analyzer): Significantly reduced the number of false positives when checking for CA022 violations (unreachable code).
  • EiffelStudio (debugger): Fixed a bug that prevented correct saving and restoring of CAT-call handling settings.

Feature removed

  • compiler: Dropped support for obsolete syntax with exclamation marks:
    • creation instruction/expression: use create x and create {FOO} bar.make instead of !!x and !FOO!bar.make;
    • type attachment marks: use attached and detachable instead of marks ! and ? respectively.

User changes

  • delivery: removed the "experimental" folder from the delivery.
  • EiffelStudio: Added scripts (for Unixes) in tools/spec/../bin to open external editor, launch URL, and open terminal.
  • EiffelStudio: Updated Features tools, collapsing inheritance sub-tree by default.
  • library (vision): Marked {EV_ANY}.copy as obsolete (it is non-obsolete only in descendants that redefine it).

Libraries improvements

  • http: Improved support for RFC 3339 (a profile of ISO 8601)
  • web cms: improved random value generation
  • web cms: improved authentication related to user not yet validated
  • eiffelweb: "application/force-download" is not a standard MIME content type, so use "application_octet_stream" instead as default.
  • web cms: added support for recaptcha v3
  • web cms: improved the custom block module
  • web cms: improved web form manipulation and html generation
  • vision2: added EV_LINK_LABEL and EV_HIGHLIGHT_LINK_LABEL (to mimic web link)
  • uri_launcher: Moved uri_launcher library from Eiffel framework to library/runtime/process/uri_launcher
  • base_extension: Added class TOPOLOGICAL_SORTER used to produce a total order on a set of elements having only a partial order.
  • base_extension (unstable): extended with library classes for Graphs, B-Trees and union-find, based on the thesis work Extending the Eiffel Library for data structures and algorithms: EiffelBase
  • base: Added a feature `to_hexa_digit` to character classes to convert a hexadecimal (Unicode) digit character to the corresponding numeric value.

New libraries

  • Multiple new wrappers for C libraries:
Wrapper Description of C library
wrap_mpack mpack is a C implementation of an encoder and decoder for the [MessagePack](https://msgpack.org/) serialization format.
wrap_cairo Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window

System (via both Xlib and XCB), quartz, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.

wrap_rsvg This is librsvg - A small library to render Scalable Vector Graphics (SVG), associated with the GNOME Project. It renders SVG files to Cairo surfaces. Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to the screen or to generate output for printing.


Libraries bug fixes

  • sqlite3: Fixed SQLITE text containing null character
  • web cms: Updated core and authentication modules to remove potential vulnerabilities (js, svg script in url).
  • web cms: Fixed a crash of the "roc" installer tool when a module had no "site" folder.
  • base: Corrected preconditions of shift operations on integral numbers that might not work when shift count is equal to the number of bits.

Developer changes

  • libraries: Removed the *-safe.ecf configuration files because they became useless with introduction of capabilities.