Difference between revisions of "EiffelStudio 19.05 Releases"
(→User changes) |
m (→19.05.10.3187 (May 21st 2019, beta 19.05): Removed empty sections.) |
||
(36 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}} | [[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}} | ||
+ | |||
+ | __NOTOC__ | ||
= 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.10.3187 (May 21st 2019, beta 19.05)== | ||
+ | |||
+ | ===Bug fixes=== | ||
+ | * compiler: test#exec374 — Made sure that features <e>is_deep_equal</e>, <e>is_equal</e> and <e>standard_is_equal</e> for real numbers work the same way as equality tests. | ||
+ | |||
+ | ===Developer changes=== | ||
+ | * compiler and run-time: test#final130, test#final131, test#final132 — Ensured that an object of a class that has been removed due to dead code removal cannot be created via reflection, deserialization or storable facilities. | ||
− | ==19.05. | + | ==19.05.10.3131 (May 06th 2019, beta 19.04)== |
===New features=== | ===New features=== | ||
+ | * studio: Added "Symbols" panel in feature completion dialog (in addition to features, and templates), it lists all available Unicode symbols. | ||
+ | * studio: Added "Update manager" to handle EiffelStudio update notifications of new releases (beta|stable). | ||
+ | * library (uri): Added support for IDNA (Internationalized Domain Names in Applications), using Punycode encoding. | ||
+ | * library (scoop_patterns): Added an example to demonstrate CP_SED_CONTAINER which adds a simple solution to copy an object from a scoop processor to another using SED facilities. | ||
+ | * library (base): Added features to <e>REAL_32</e> and <e>REAL_64</e> to perform comparison compliant to the standard IEEE 754 (the feature names start with <code lang="text">ieee_</code>, e.g. <e>ieee_is_less</e>). | ||
− | === | + | ===Bug fixes=== |
+ | * compiler: bug#16555 (test#final088) — Fixed a bug that caused missing void target checks when inlining in finalized mode was enabled. | ||
+ | * compiler: Fixed minor issues with capabilities settings when manually edited, and capability comes before option declaration. | ||
+ | * wizards: Fixed EiffelWeb wizard execution that was hanging EiffelStudio. | ||
+ | * compiler: Fixed AST character position for Unicode operator (issue raised when the token has only one Unicode character). | ||
+ | * compiler: test#exec374 — Made sure comparison of REAL numbers works the same way for classic and .NET mode. | ||
+ | * compiler: test#exec374 — Corrected code generation for REAL numbers to handle total order as well as IEEE 754 standard as expected. | ||
+ | |||
+ | ===User changes=== | ||
+ | * compiler: Added a warning <code lang="text">VD81</code> for compiling a project when the setting for total order on reals is disabled. {{Recommended | Existing projects should be updated to enable total order on reals because otherwise they will be flagged with an error in the future releases.}} | ||
+ | * compiler: Unless specified otherwise (explicitly, or implicitly when using project configurations created by an earlier version of EiffelStudio), the setting for total order on reals is enabled by default. | ||
+ | |||
+ | ===Developer changes=== | ||
+ | * run-time: Replaced <code lang="C">sys_siglist[sig]</code> by <code lang="C">strsignal(sig)</code> to allow compiling the run-time on wider set of platforms. | ||
+ | * library (base): Used built-in feature instead of external ones in <e>ISE_RUNTIME</e>, <e>REFLECTED_COPY_SEMANTICS_OBJECT</e>, <e>REFLECTOR</e>. | ||
+ | * run-time: Added macros for built-in features for <e>ISE_RUNTIME</e>, <e>REFLECTED_COPY_SEMANTICS_OBJECT</e>, <e>REFLECTOR</e>. | ||
+ | * compiler: Made settings dependent on ECF schema version. | ||
+ | |||
+ | ==19.05.10.3044 (April 02nd 2019, beta 19.03)== | ||
+ | |||
+ | ===New features=== | ||
+ | |||
+ | * compiler: Added a new dead code removal level, now there are 3 possible variants of the optimization: | ||
+ | ** none — code removal is not performed; | ||
+ | ** feature — code removal is based on feature call graph analysis; | ||
+ | ** all — in addition to the feature call analysis, only classes that are used as targets as object creation or marked as visible are kept in the system. | ||
===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. | ||
+ | * compiler: test#final045 — Fixed a bug that caused the compiler to terminate with an exception when finalizing code after incremental changes in the buggy source code using formal generics' creation constrains combined with renaming. | ||
+ | * studio: bug#19531 Fixed metrics tool by ensuring class browser set the 3rd column text only if it exists. | ||
− | === | + | ==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#19520 remote parent target is not readonly. | ||
+ | * compiler: bug#16951 (test#incr368), bug#17257 (test#incr403), bug#17305 (test#incr410), bug#17308 (test#incr412) — Fixed a bug causing incorrect recompilation for code involving qualified anchored types. | ||
===User changes=== | ===User changes=== | ||
+ | * Added output of classes that are empty or removed to the file <code lang="text">REMOVED</code> in finalized mode. | ||
===Developer changes=== | ===Developer changes=== | ||
+ | * Updated contrib/library/gobo to Gobo v4.3 . {{Red|*WARNING:* you may need to add to your ecf file the libraries <code lang="text">gobo_(lexical|parse)_skl.ecf</code>, in addition to <code lang="text">gobo_(lexical|parse)</code>.}} | ||
− | ==19.05.10.2756 (February 01st 2019 | + | ==19.05.10.2756 (February 01st 2019, beta 19.01)== |
− | + | ||
===New features=== | ===New features=== | ||
Line 28: | Line 94: | ||
*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 (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 (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=== | ===Improvements=== | ||
Line 45: | Line 113: | ||
* EiffelStudio: fixed regression on features tool, when toggling signature display. | * 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. | * EiffelStudio: fixed issue on gtk (linux, ...) with code completion that was not focusing back to the editor. | ||
− | |||
− | |||
===User changes=== | ===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 (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 | * library (base): Marked the class <e>FILE_NAME</e> as obsolete use class <e>PATH</e> instead | ||
− | |||
− |
Latest revision as of 07:05, 22 May 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.10.3187 (May 21st 2019, beta 19.05)
Bug fixes
- compiler: test#exec374 — Made sure that features
is_deep_equal
,is_equal
andstandard_is_equal
for real numbers work the same way as equality tests.
Developer changes
- compiler and run-time: test#final130, test#final131, test#final132 — Ensured that an object of a class that has been removed due to dead code removal cannot be created via reflection, deserialization or storable facilities.
19.05.10.3131 (May 06th 2019, beta 19.04)
New features
- studio: Added "Symbols" panel in feature completion dialog (in addition to features, and templates), it lists all available Unicode symbols.
- studio: Added "Update manager" to handle EiffelStudio update notifications of new releases (beta|stable).
- library (uri): Added support for IDNA (Internationalized Domain Names in Applications), using Punycode encoding.
- library (scoop_patterns): Added an example to demonstrate CP_SED_CONTAINER which adds a simple solution to copy an object from a scoop processor to another using SED facilities.
- library (base): Added features to
REAL_32
andREAL_64
to perform comparison compliant to the standard IEEE 754 (the feature names start withieee_
, e.g.ieee_is_less
).
Bug fixes
- compiler: bug#16555 (test#final088) — Fixed a bug that caused missing void target checks when inlining in finalized mode was enabled.
- compiler: Fixed minor issues with capabilities settings when manually edited, and capability comes before option declaration.
- wizards: Fixed EiffelWeb wizard execution that was hanging EiffelStudio.
- compiler: Fixed AST character position for Unicode operator (issue raised when the token has only one Unicode character).
- compiler: test#exec374 — Made sure comparison of REAL numbers works the same way for classic and .NET mode.
- compiler: test#exec374 — Corrected code generation for REAL numbers to handle total order as well as IEEE 754 standard as expected.
User changes
- compiler: Added a warning
VD81
for compiling a project when the setting for total order on reals is disabled.Recommended: Existing projects should be updated to enable total order on reals because otherwise they will be flagged with an error in the future releases.
- compiler: Unless specified otherwise (explicitly, or implicitly when using project configurations created by an earlier version of EiffelStudio), the setting for total order on reals is enabled by default.
Developer changes
- run-time: Replaced
sys_siglist[sig]
bystrsignal(sig)
to allow compiling the run-time on wider set of platforms. - library (base): Used built-in feature instead of external ones in
ISE_RUNTIME
,REFLECTED_COPY_SEMANTICS_OBJECT
,REFLECTOR
. - run-time: Added macros for built-in features for
ISE_RUNTIME
,REFLECTED_COPY_SEMANTICS_OBJECT
,REFLECTOR
. - compiler: Made settings dependent on ECF schema version.
19.05.10.3044 (April 02nd 2019, beta 19.03)
New features
- compiler: Added a new dead code removal level, now there are 3 possible variants of the optimization:
- none — code removal is not performed;
- feature — code removal is based on feature call graph analysis;
- all — in addition to the feature call analysis, only classes that are used as targets as object creation or marked as visible are kept in the system.
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.
- compiler: test#final045 — Fixed a bug that caused the compiler to terminate with an exception when finalizing code after incremental changes in the buggy source code using formal generics' creation constrains combined with renaming.
- studio: bug#19531 Fixed metrics tool by ensuring class browser set the 3rd column text only if it exists.
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 obsoleteFILE_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#19520 remote parent target is not readonly.
- compiler: bug#16951 (test#incr368), bug#17257 (test#incr403), bug#17305 (test#incr410), bug#17308 (test#incr412) — Fixed a bug causing incorrect recompilation for code involving qualified anchored types.
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|parse)_skl.ecf
, in addition togobo_(lexical|parse)
.
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 subclauseredefine
. - library (base): Added creation procedures
make_open_temporary
andmake_open_temporary_with_prefix
to the classFILE
to create temporary files. - library (base): Added class features
null_path
andnull_name
to the classFILE
. - library (OpenSSL): Added TLSv1.3 support, added creation procedures
make_as_tls_server
andmake_as_tls_client
to the classSSL_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 andclear_options
to clear CTX options,set_max_protocol_version
,set_min_protocol_version
,max_proto_version
andmin_proto_version
for configured version or 0 for auto-configuration of highest/lowest protocol to the classSSL_SOCKET
. - library (WEL): Added features
dpi_for_monitor
to get dots per inch (dpi) of a display andset_process_dpi_awaerness_per_monitor
to classWEL_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 triggerVDRS(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 betweenEV_CURSOR
andEV_POINTER_STYLE
completely toEV_CURSOR
. - library (base): Marked the class
FILE_NAME
as obsolete use classPATH
instead