Difference between revisions of "EiffelStudio 19.12 Releases"
m (→User changes: Added a note about marking `as_string_8` as obsolete.) |
m (→Bug fixes: Added a note about fixing bug#19596 (test#scoop083).) |
||
(30 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
__NOTOC__ | __NOTOC__ | ||
− | = EiffelStudio 19. | + | = EiffelStudio 19.12.x Releases= |
Beta download: https://ftp.eiffel.com/pub/beta/ | Beta download: https://ftp.eiffel.com/pub/beta/ | ||
− | == 19. | + | == 19.12.10.3842 (December 30th 2019, beta 19.12) == |
===New features=== | ===New features=== | ||
+ | * compiler: Supported multiple aliases of the same feature. | ||
+ | * compiler: Added a new validity rule for duplicate alias names specified for the same feature. | ||
+ | * compiler: Added a command-line option to set a preference value: <code lang="text">-preference name value</code>. | ||
+ | * compiler: Added a preference to control processing of new lines when pretty printing: | ||
+ | ** keep — keep line breaks unchanged; | ||
+ | ** wrap — wrap long constructs (such as expressions) if they do not fit a given line length limit (not supported yet); | ||
+ | ** inline — format long expressions on a single line | ||
+ | * compiler: Added a preference to control processing of loops when pretty printing: | ||
+ | ** keep — keep loop style unchanged; | ||
+ | ** keyword — use keyword-based notation; | ||
+ | ** symbolic — use symbolic notation if possible. | ||
===Improvements=== | ===Improvements=== | ||
+ | * library (base): Added features <e>TUPLE.real_32*</e> and <e>TUPLE.real_64*</e>. | ||
+ | * EiffelStudio: Supported auto completion for aliases by providing a list of suitable Unicode operators. | ||
+ | * EiffelStudio: Added a new dialog to insert (Unicode) symbols with activation by <code lang="text">Ctrl+Alt+Space</code>. | ||
+ | * tool (eiffel): Added an option (short version: <code lang="text">-o</code>, long version: <code lang="text">--executable-output</code>) to control how output of the executable is processed. | ||
+ | * library (preferences): Supported selection of a single value in a choice preference. | ||
===Bug fixes=== | ===Bug fixes=== | ||
+ | * EiffelBuild: Fixed regressions (various exceptions) occurring related to value changes and pick-and-drop behavior. | ||
+ | * library (Vision2 demo): Avoided crashing during execution (caused by removal of dead code reachable through reflection). | ||
+ | * tool (eiffel): Prevented compilation of a system with multiple targets unless the required one is specified. | ||
+ | * EiffelStudio: Corrected import of the settings from <code lang=text">.ini</code> files. | ||
+ | * library (net): Ensured <e>{SOCKET}.last_string.count</e> has the expected value when using <e>{SOCKET}.read_stream</e>. | ||
+ | * tool (finish_freezing/espawn): Made the detection of C compiler on Windows more robust. | ||
+ | * library (eiffelweb/wsf): Corrected default value of <code lang="text">SERVER_PORT</code> for HTTPS connection to be 443. | ||
+ | * EiffelStudio: Fixed display of the hidden toolbar items. | ||
+ | * compiler: test#valid082, test#valid083 — Fixed validity checks for export status of operators by using current class rather than target one. | ||
+ | * compiler: test#term218 — Fixed computation of a common ancestor type to avoid an infinite loop when one of element types is a mark-free formal generic type. | ||
+ | * library (base): Removed redefinitions in implementations of <e>CURSOR_TREE</e> that violated VDRS(4) because a feature was effected rather than redefined. | ||
+ | * compiler: bug#19596 (test#scoop083) — Fixed a bug that might cause a SCOOP program to crash when a separate call is passed an address of a variable. | ||
===Features removed=== | ===Features removed=== | ||
===User changes=== | ===User changes=== | ||
+ | * EiffelStudio: reorganized and simplified the breakpoint context menu | ||
+ | * EiffelStudio: the version update checker is using the new notification system. | ||
===Developer changes=== | ===Developer changes=== | ||
+ | * compiler: Removed support for <e>infix</e> and <e>prefix</e> features. | ||
+ | * library(eiffelweb/wsf): Improved WSF_FILE_SYSTEM_HANDLER to redirect "/subdir" on directory to "/subdir/" so that relative URLs are correctly handled. | ||
+ | * library(eiffelweb/wsf): Improved the CGI handler from wsf_extension. | ||
+ | * compiler: Reordered <code lang="text">VFAV</code> rules to match most recent version of the standard. | ||
+ | |||
+ | == 19.09.10.3472 (September 10th 2019, beta 19.08) == | ||
+ | |||
+ | ===Bug fixes=== | ||
+ | * EiffelStudio: Fixed a bug causing an exception when showing a context menu. | ||
== 19.08.10.3451 (September 2nd 2019, beta 19.08)== | == 19.08.10.3451 (September 2nd 2019, beta 19.08)== | ||
Line 27: | Line 66: | ||
===Improvements=== | ===Improvements=== | ||
− | * EiffelStudio: Recorded | + | * EiffelStudio: Recorded acceptance of a GPL license immediately, so that the next instance of EiffelStudio does not repeat the licensing question even when the first one is still running. |
+ | * library (base): Changed signature of <e>{IO_MEDIUM}.put_string</e> and associated features to accept <e>READABLE_STRING_8</e> instead of <e>STRING_8</e>. | ||
+ | * library (api_wrapper): Supported non-ASCII library names. | ||
===Bug fixes=== | ===Bug fixes=== | ||
− | * EiffelBuild: Fixed | + | * EiffelBuild: Fixed a bug that caused an exception when editing text value of a field. |
− | * EiffelBuild: Fixed | + | * EiffelBuild: Fixed a bug that caused an exception when loading a project that was moved from its original folder. |
===Features removed=== | ===Features removed=== | ||
Line 37: | Line 78: | ||
===User changes=== | ===User changes=== | ||
* library (base): Marked <e>{READABLE_STRING_GENERAL}.as_string_8</e> as obsolete to avoid hidden conversion from 32-bit strings to 8-bit ones and from immutable 8-bit strings to mutable ones. | * library (base): Marked <e>{READABLE_STRING_GENERAL}.as_string_8</e> as obsolete to avoid hidden conversion from 32-bit strings to 8-bit ones and from immutable 8-bit strings to mutable ones. | ||
+ | * library (base): Marked <e>{INTERNAL}.type_name</e> as obsolete with a suggestion to use <e>type_name_32</e> instead. | ||
===Developer changes=== | ===Developer changes=== | ||
Line 55: | Line 97: | ||
===New features=== | ===New features=== | ||
− | * compiler: | + | * compiler: bug#17597 (test#syntax065) — Supported non-decimal character codes in manifest strings, so that decimal <code>%/8704/</code>, hexadecimal <code>%/0x2200/</code>, octal <code>%/0c21000/</code> and binary <code>%/0b0010001000000000/</code> can be used in a manifest string, e.g. <code>{STRING_32} "for all %/0x2200/"</code>. |
* library (base): Added a class <code>DYNAMIC_TABLE</code> with a feature <code>remove</code> that is implemented by descendants supporting removal of table items. In particular, <code>ARRAYED_LIST</code> redeclares it as <code>remove_i_th</code> that is more efficient than a sequence of calls to features <code>goto_i_th</code>, <code>remove</code>. | * library (base): Added a class <code>DYNAMIC_TABLE</code> with a feature <code>remove</code> that is implemented by descendants supporting removal of table items. In particular, <code>ARRAYED_LIST</code> redeclares it as <code>remove_i_th</code> that is more efficient than a sequence of calls to features <code>goto_i_th</code>, <code>remove</code>. | ||
* library (base): Added Unicode aliases <code>∋</code>, <code>⊆</code> and <code>⊇</code> to features <code>has</code>, <code>is_subset</code> and <code>is_superset</code> respectively in descendants of classes <code>SET</code> and <code>SUBSET</code>. | * library (base): Added Unicode aliases <code>∋</code>, <code>⊆</code> and <code>⊇</code> to features <code>has</code>, <code>is_subset</code> and <code>is_superset</code> respectively in descendants of classes <code>SET</code> and <code>SUBSET</code>. |
Latest revision as of 03:54, 12 June 2020
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.12.x Releases
Beta download: https://ftp.eiffel.com/pub/beta/
19.12.10.3842 (December 30th 2019, beta 19.12)
New features
- compiler: Supported multiple aliases of the same feature.
- compiler: Added a new validity rule for duplicate alias names specified for the same feature.
- compiler: Added a command-line option to set a preference value:
-preference name value
. - compiler: Added a preference to control processing of new lines when pretty printing:
- keep — keep line breaks unchanged;
- wrap — wrap long constructs (such as expressions) if they do not fit a given line length limit (not supported yet);
- inline — format long expressions on a single line
- compiler: Added a preference to control processing of loops when pretty printing:
- keep — keep loop style unchanged;
- keyword — use keyword-based notation;
- symbolic — use symbolic notation if possible.
Improvements
- library (base): Added features
TUPLE.real_32*
andTUPLE.real_64*
. - EiffelStudio: Supported auto completion for aliases by providing a list of suitable Unicode operators.
- EiffelStudio: Added a new dialog to insert (Unicode) symbols with activation by
Ctrl+Alt+Space
. - tool (eiffel): Added an option (short version:
-o
, long version:--executable-output
) to control how output of the executable is processed. - library (preferences): Supported selection of a single value in a choice preference.
Bug fixes
- EiffelBuild: Fixed regressions (various exceptions) occurring related to value changes and pick-and-drop behavior.
- library (Vision2 demo): Avoided crashing during execution (caused by removal of dead code reachable through reflection).
- tool (eiffel): Prevented compilation of a system with multiple targets unless the required one is specified.
- EiffelStudio: Corrected import of the settings from
.ini
files. - library (net): Ensured
{SOCKET}.last_string.count
has the expected value when using{SOCKET}.read_stream
. - tool (finish_freezing/espawn): Made the detection of C compiler on Windows more robust.
- library (eiffelweb/wsf): Corrected default value of
SERVER_PORT
for HTTPS connection to be 443. - EiffelStudio: Fixed display of the hidden toolbar items.
- compiler: test#valid082, test#valid083 — Fixed validity checks for export status of operators by using current class rather than target one.
- compiler: test#term218 — Fixed computation of a common ancestor type to avoid an infinite loop when one of element types is a mark-free formal generic type.
- library (base): Removed redefinitions in implementations of
CURSOR_TREE
that violated VDRS(4) because a feature was effected rather than redefined. - compiler: bug#19596 (test#scoop083) — Fixed a bug that might cause a SCOOP program to crash when a separate call is passed an address of a variable.
Features removed
User changes
- EiffelStudio: reorganized and simplified the breakpoint context menu
- EiffelStudio: the version update checker is using the new notification system.
Developer changes
- compiler: Removed support for
infix
andprefix
features. - library(eiffelweb/wsf): Improved WSF_FILE_SYSTEM_HANDLER to redirect "/subdir" on directory to "/subdir/" so that relative URLs are correctly handled.
- library(eiffelweb/wsf): Improved the CGI handler from wsf_extension.
- compiler: Reordered
VFAV
rules to match most recent version of the standard.
19.09.10.3472 (September 10th 2019, beta 19.08)
Bug fixes
- EiffelStudio: Fixed a bug causing an exception when showing a context menu.
19.08.10.3451 (September 2nd 2019, beta 19.08)
New features
- EiffelStudio: Added a first version of a dialog to insert a Unicode symbol.
Improvements
- EiffelStudio: Recorded acceptance of a GPL license immediately, so that the next instance of EiffelStudio does not repeat the licensing question even when the first one is still running.
- library (base): Changed signature of
{IO_MEDIUM}.put_string
and associated features to acceptREADABLE_STRING_8
instead ofSTRING_8
. - library (api_wrapper): Supported non-ASCII library names.
Bug fixes
- EiffelBuild: Fixed a bug that caused an exception when editing text value of a field.
- EiffelBuild: Fixed a bug that caused an exception when loading a project that was moved from its original folder.
Features removed
User changes
- library (base): Marked
{READABLE_STRING_GENERAL}.as_string_8
as obsolete to avoid hidden conversion from 32-bit strings to 8-bit ones and from immutable 8-bit strings to mutable ones. - library (base): Marked
{INTERNAL}.type_name
as obsolete with a suggestion to usetype_name_32
instead.
Developer changes
19.07.10.3368 (July 31st 2019, beta 19.07)
New features
- compiler: Added support for manifest immutable strings, once manifest immutable strings, and immutable string constants. Examples:
{IMMUTABLE_STRING_32} "Unicode string..."
,once {IMMUTABLE_STRING_8} "once value"
,id: IMMUTABLE_STRING_8 = "abc"
.
Improvements
- compiler: test#valid297, test#valid298 — Changed rules how export status of features is computed to follow the standard to avoid CAT calls: a feature could be made available only to more classes, not fewer.
Bug fixes
- editor: bug#19527 — Fixed issue with verbatim strings followed by a character.
- editor: bug#19527 — Fixed editor issue with manifest strings ending with
%%
such as"foo%%"
.
19.06.10.3318 (July 1st 2019, beta 19.06)
New features
- compiler: bug#17597 (test#syntax065) — Supported non-decimal character codes in manifest strings, so that decimal
%/8704/
, hexadecimal%/0x2200/
, octal%/0c21000/
and binary%/0b0010001000000000/
can be used in a manifest string, e.g.{STRING_32} "for all %/0x2200/"
. - library (base): Added a class
DYNAMIC_TABLE
with a featureremove
that is implemented by descendants supporting removal of table items. In particular,ARRAYED_LIST
redeclares it asremove_i_th
that is more efficient than a sequence of calls to featuresgoto_i_th
,remove
. - library (base): Added Unicode aliases
∋
,⊆
and⊇
to featureshas
,is_subset
andis_superset
respectively in descendants of classesSET
andSUBSET
.
Developer changes
- library (preferences): Removed previous duplication with preferences_xml.ecf and preferences_reg.ecf that was causing conflicts. Now the default preferences storage is XML, except on Windows where it is Registry keys. And it is possible to override that default for Windows, using the custom variable
<custom name="pref_default_storage" value="xml"/>
. - library (EiffelWeb): Improved the simple WSF proxy component with support for X-Forwarded-For ..., and Forwarded header.