Difference between revisions of "EiffelStudio 19.05 Releases"

(Created a change log page for 19.05 release.)
 
m (Bug fixes: Added a note about fixing bug#19507 (test#scoop082).)
(37 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
= EiffelStudio 19.05.x Releases=
 
= EiffelStudio 19.05.x Releases=
  
Beta download: https://ftp.eiffel.com/pub/beta/19.05/
+
Beta download: https://ftp.eiffel.com/pub/beta/
  
 
==19.05.xx.yyyy ()==
 
==19.05.xx.yyyy ()==
Line 12: Line 12:
  
 
===Bug fixes===
 
===Bug fixes===
 +
* compiler: bug#15876 (test#final081) — Fixed a bug causing compiler crash when compiling code a redeclaration of an external feature into a constant in finalized mode with inlining.
 +
* compiler: bug#17957 (test#final111) — Fixed a bug causing incorrect behavior at run-time for a non-object call on a qualified anchored type with a formal generic when inlining is enabled is finalized mode.
 +
* compiler: bug#19532 (test#final127) — Fixed a bug causing an object call to a wrong feature in finalized mode when the original feature is an external one.
 +
* compiler: bug#15853 (test#exec313) — Fixed a bug causing a non-object call to a wrong feature on the type <e>like Curent</e> in finalized mode when the original feature is an external one.
 +
* compiler: bug#19507 (test#scoop082) — Fixed a bug causing incorrect C code generation for a separate instruction in a feature without arguments triggering C compilation errors under certain conditions.
  
 
===Feature removed===
 
===Feature removed===
Line 18: Line 23:
  
 
===Developer changes===
 
===Developer changes===
 +
 +
 +
==19.05.10.2945 (March 08th 2019, beta 19.02)==
 +
 +
===New features===
 +
* Added the possibility to insert unicode symbols using the IDE feature completion (see $ISE_EIFFEL/eifinit/unicode_symbols.cfg).
 +
* New <e>EXECUTION_ENVIRONMENT.temporary_directory_path</e>.
 +
* New feature <e>FILE.make_open_temporary(_with_prefix)</e> to create temporary file or folder. This should be used to replace obsolete <e>FILE_NAME.make_temporary</e>.
 +
* Dead code removal detects when instances of classes are not created and removes code associated with them. If a class should be part of the system because it is created indirectly (using reflection or storable mechanism), it should be marked as visible in the project configuration. With this option, executable size becomes 10% smaller on average (on Windows).
 +
 +
===Improvements===
 +
* Optimized code generation in finalized mode for feature calls by considering polymorphic status of calls to routines and attributes separately.
 +
 +
===Bug fixes===
 +
* library (json): REAL NaN, Negative and Positive Infinity values are serialized as "null" (as JSON has no support for such values)
 +
* compiler: consider that empty value or unset environment variables represent the same value for ecf variables.
 +
* compiler: bug#17331 (test#once021) — Fixed a bug causing unresolved symbols at link time when a once-per-object calls a precursor with a formal generic return type.
 +
* compiler: bug#15874 (test#final080), bug#18012 (test#final113), test#final124 — Fixed a bug that led to ignoring an attribute body when inlining in finalized mode was enabled.
 +
* compiler: bug#16555 (test#final088) — Fixed a bug that caused missing void target checks when inlining in finalized mode was enabled.
 +
 +
===User changes===
 +
* Added output of classes that are empty or removed to the file <code lang="text">REMOVED</code> in finalized mode.
 +
 +
===Developer changes===
 +
* Updated contrib/library/gobo to Gobo v4.3 . {{Red|*WARNING:* you may need to add to your ecf file the libraries gobo_(lexical|parse)_skl.ecf -- in addition to gobo_(lexical|parse).}}
 +
 +
 +
==19.05.10.2756 (February 01st 2019, beta 19.01)==
 +
 +
===New features===
 +
*EiffelStudio (error): Added an automated fix for violation of <code lang="text">VDRS(4)</code> that removes the associated feature name from the corresponding subclause <e>redefine</e>.
 +
*library (base): Added creation procedures <e>make_open_temporary</e> and <e>make_open_temporary_with_prefix</e> to the class <e>FILE</e> to create temporary files.
 +
*library (base): Added class features <e>null_path</e> and <e>null_name</e> to the class <e>FILE</e>.
 +
*library (OpenSSL): Added TLSv1.3 support, added creation procedures <e>make_as_tls_server</e> and <e>make_as_tls_client</e> to the class <e>SSL_CONTEXT</e> to create flexible TLS capable server/client context, the supported protocols are SSLv3, TLSv1, TLSv1.1, TLSv1.2 and TLSv1.3.
 +
*library (EiffelNetSSL): Added features <e>set_options</e> to change the SSL ctx options as defined here [https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_options.html SSL_CTX_set_options] and <e>clear_options</e> to clear CTX options, <e>set_max_protocol_version</e>, <e>set_min_protocol_version</e>, <e>max_proto_version</e> and <e>min_proto_version</e> for configured version or 0 for auto-configuration of highest/lowest protocol to the class <e>SSL_SOCKET</e>.
 +
*library (WEL): Added features <e>dpi_for_monitor</e> to get dots per inch (dpi) of a display and <e>set_process_dpi_awaerness_per_monitor</e> to class <e>WEL_API</e>
 +
*compiler: Workbench C code is not generated when performing finalized compilation.
 +
 +
===Improvements===
 +
* EiffelStudio (error): Provided location for violations of <code lang="text">VDRS (4)</code>.
 +
* EiffelStudio (error): Supported a possibility to open all classes that are fixed automatically in the editor and to remember this choice for all subsequent fixes. The setting is also available in the preferences.
 +
* EiffelStudio (dpi): Added basic support for high dpi only on Windows.
 +
* Library (wikitext): accepts absolute path in external wiki link (such as [/path/to/page a page]).
 +
* Debugger: extended support for local variable stone in relation with the debugger.
 +
 +
===Bug fixes===
 +
* library (logging): Fixed a C compiler warning for the call to the feature <code lang="C">syslog</code> that might lead to potential vulnerability if a message has embedded format specifiers.
 +
* compiler: bug#19437 (test#free025) — Fixed a bug preventing validity checks for class status of features used in unqualified calls in arguments to qualified calls inside a class feature (<code lang="text">VUCR</code>).
 +
* compiler: bug#19502 — Fixed a bug with checking target dependency in project settings (ECF) when only the first occurrence of a target was checked though some other dependencies could be invalid instead.
 +
* compiler: test#valid019, test#valid233, test#vdrs401, test#vdrs402, test#vdrs403 — Added missing checks for <code lang="text">VDRS(4)</code> when a deferred feature listed in the redefine subclause is effected or merged rather than redefined. {{Red|This may trigger <code lang="text">VDRS(4)</code> errors for existing code. The automatic fix associated with the bug report is backward compatible with previous versions of EiffelStudio and can be safely applied.}}
 +
* EiffelStudio: Avoided a crash when all editors are closed during the first compilation of a project.
 +
* Compiler: fixed compilation with remote target and no root class.
 +
* EiffelStudio: fixed regression on features tool, when toggling signature display.
 +
* EiffelStudio: fixed issue on gtk (linux, ...) with code completion that was not focusing back to the editor.
 +
 +
===User changes===
 +
* library (vision): Removed references to the obsolete class <e>EV_CURSOR</e>, and moved conversion between <e>EV_CURSOR</e> and <e>EV_POINTER_STYLE</e> completely to <e>EV_CURSOR</e>.
 +
* library (base): Marked the class <e>FILE_NAME</e> as obsolete use class <e>PATH</e> instead

Revision as of 11:51, 21 March 2019

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

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

19.05.xx.yyyy ()

New features

Improvements

Bug fixes

  • compiler: bug#15876 (test#final081) — Fixed a bug causing compiler crash when compiling code a redeclaration of an external feature into a constant in finalized mode with inlining.
  • compiler: bug#17957 (test#final111) — Fixed a bug causing incorrect behavior at run-time for a non-object call on a qualified anchored type with a formal generic when inlining is enabled is finalized mode.
  • compiler: bug#19532 (test#final127) — Fixed a bug causing an object call to a wrong feature in finalized mode when the original feature is an external one.
  • compiler: bug#15853 (test#exec313) — Fixed a bug causing a non-object call to a wrong feature on the type like Curent in finalized mode when the original feature is an external one.
  • compiler: bug#19507 (test#scoop082) — Fixed a bug causing incorrect C code generation for a separate instruction in a feature without arguments triggering C compilation errors under certain conditions.

Feature removed

User changes

Developer changes

19.05.10.2945 (March 08th 2019, beta 19.02)

New features

  • Added the possibility to insert unicode symbols using the IDE feature completion (see $ISE_EIFFEL/eifinit/unicode_symbols.cfg).
  • New EXECUTION_ENVIRONMENT.temporary_directory_path.
  • New feature FILE.make_open_temporary(_with_prefix) to create temporary file or folder. This should be used to replace obsolete FILE_NAME.make_temporary.
  • Dead code removal detects when instances of classes are not created and removes code associated with them. If a class should be part of the system because it is created indirectly (using reflection or storable mechanism), it should be marked as visible in the project configuration. With this option, executable size becomes 10% smaller on average (on Windows).

Improvements

  • Optimized code generation in finalized mode for feature calls by considering polymorphic status of calls to routines and attributes separately.

Bug fixes

  • library (json): REAL NaN, Negative and Positive Infinity values are serialized as "null" (as JSON has no support for such values)
  • compiler: consider that empty value or unset environment variables represent the same value for ecf variables.
  • compiler: bug#17331 (test#once021) — Fixed a bug causing unresolved symbols at link time when a once-per-object calls a precursor with a formal generic return type.
  • compiler: bug#15874 (test#final080), bug#18012 (test#final113), test#final124 — Fixed a bug that led to ignoring an attribute body when inlining in finalized mode was enabled.
  • compiler: bug#16555 (test#final088) — Fixed a bug that caused missing void target checks when inlining in finalized mode was enabled.

User changes

  • Added output of classes that are empty or removed to the file REMOVED in finalized mode.

Developer changes

  • Updated contrib/library/gobo to Gobo v4.3 . *WARNING:* you may need to add to your ecf file the libraries gobo_(lexical


19.05.10.2756 (February 01st 2019, beta 19.01)

New features

  • EiffelStudio (error): Added an automated fix for violation of VDRS(4) that removes the associated feature name from the corresponding subclause redefine.
  • library (base): Added creation procedures make_open_temporary and make_open_temporary_with_prefix to the class FILE to create temporary files.
  • library (base): Added class features null_path and null_name to the class FILE.
  • library (OpenSSL): Added TLSv1.3 support, added creation procedures make_as_tls_server and make_as_tls_client to the class SSL_CONTEXT to create flexible TLS capable server/client context, the supported protocols are SSLv3, TLSv1, TLSv1.1, TLSv1.2 and TLSv1.3.
  • library (EiffelNetSSL): Added features set_options to change the SSL ctx options as defined here SSL_CTX_set_options and clear_options to clear CTX options, set_max_protocol_version, set_min_protocol_version, max_proto_version and min_proto_version for configured version or 0 for auto-configuration of highest/lowest protocol to the class SSL_SOCKET.
  • library (WEL): Added features dpi_for_monitor to get dots per inch (dpi) of a display and set_process_dpi_awaerness_per_monitor to class WEL_API
  • compiler: Workbench C code is not generated when performing finalized compilation.

Improvements

  • EiffelStudio (error): Provided location for violations of VDRS (4).
  • EiffelStudio (error): Supported a possibility to open all classes that are fixed automatically in the editor and to remember this choice for all subsequent fixes. The setting is also available in the preferences.
  • EiffelStudio (dpi): Added basic support for high dpi only on Windows.
  • Library (wikitext): accepts absolute path in external wiki link (such as [/path/to/page a page]).
  • Debugger: extended support for local variable stone in relation with the debugger.

Bug fixes

  • library (logging): Fixed a C compiler warning for the call to the feature syslog that might lead to potential vulnerability if a message has embedded format specifiers.
  • compiler: bug#19437 (test#free025) — Fixed a bug preventing validity checks for class status of features used in unqualified calls in arguments to qualified calls inside a class feature (VUCR).
  • compiler: bug#19502 — Fixed a bug with checking target dependency in project settings (ECF) when only the first occurrence of a target was checked though some other dependencies could be invalid instead.
  • compiler: test#valid019, test#valid233, test#vdrs401, test#vdrs402, test#vdrs403 — Added missing checks for VDRS(4) when a deferred feature listed in the redefine subclause is effected or merged rather than redefined. This may trigger VDRS(4) errors for existing code. The automatic fix associated with the bug report is backward compatible with previous versions of EiffelStudio and can be safely applied.
  • EiffelStudio: Avoided a crash when all editors are closed during the first compilation of a project.
  • Compiler: fixed compilation with remote target and no root class.
  • EiffelStudio: fixed regression on features tool, when toggling signature display.
  • EiffelStudio: fixed issue on gtk (linux, ...) with code completion that was not focusing back to the editor.

User changes

  • library (vision): Removed references to the obsolete class EV_CURSOR, and moved conversion between EV_CURSOR and EV_POINTER_STYLE completely to EV_CURSOR.
  • library (base): Marked the class FILE_NAME as obsolete use class PATH instead