https://dev.eiffel.com/api.php?action=feedcontributions&user=Alexander+Kogtenkov&feedformat=atomEiffelStudio: an EiffelSoftware project - User contributions [en]2024-03-28T12:11:49ZUser contributionsMediaWiki 1.24.1https://dev.eiffel.com/index.php?title=EiffelStudio_Releases&diff=15994EiffelStudio Releases2022-05-13T12:33:03Z<p>Alexander Kogtenkov: Changed the redirection link to point to the list of releases.</p>
<hr />
<div>#REDIRECT [[Category:Releases]]</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=Main_Page&diff=15993Main Page2022-05-13T12:29:18Z<p>Alexander Kogtenkov: /* Getting Started */ Updated a link to the current release changelog.</p>
<hr />
<div>[[Category:General]]__NOTOC__<br />
<h1 class="firstHeading">EiffelStudio Integrated Development Environment</h1><br />
<br />
[[Image:EiffelStudioScreenshot.png|thumb|250px|right|EiffelStudio IDE ([http://eiffel.com/products/studio/screenshots.html more screenshots]) ]]<br />
<br />
Welcome to the central resource for EiffelStudio developers and contributors.<br />
==News==<br />
*''November 2021'': EiffelStudio [[EiffelStudio 21.11 Releases|21.11]] is available for download at https://www.eiffel.org/downloads<br />
*''December 2020'': EiffelStudio [[EiffelStudio 20.11 Releases|20.11]] is available for download at https://www.eiffel.org/downloads<br />
*''May 2019'': EiffelStudio [[EiffelStudio 19.05 Releases|19.05]] is available for download at https://www.eiffel.org/downloads<br />
<br />
==Background==<br />
<br />
EiffelStudio is an open-source IDE for the [http://en.wikipedia.org/wiki/Eiffel_programming_language Eiffel programming language]. [http://www.eiffel.com Eiffel Software] is the principal contributor and hosts the subversion repository. EiffelStudio is maintained and developed by Eiffel Software as well many contributors, including ETH Zurich.<br />
<br />
EiffelStudio is a full-featured IDE offering the following features, many of them unique:<br />
<br />
* Complete compiler for the Eiffel programming language, with Design By Contract (DBC) support and both high compile-time speed and high-performance executables, based on the Melting Ice Technology.<br />
* Full portability (including graphics) across Windows, MacOS X, Linux, *BSD, Solaris and other operating systems<br />
* Smart code editor<br />
* Sophisticated multi-view browsing and viewing facilities<br />
* Interactive debugger<br />
* Graphical modeling tool for UML and BON with full roundtrip<br />
* Refactoring support<br />
* GUI development tool (EiffelBuild) and fully portable GUI library (EiffelVision)<br />
* Many other libraries of reusable component.<br />
<br />
The Eiffel compiler creates C code that is then handed to a standard C compiler. As a result, Eiffel programs have a run-time performance comparable to those directly written in C or C++, but with the benefits of an advanced object-oriented model and strong typing. EiffelStudio uses a highly efficient compacting garbage collector to free the developer from the burden of memory management.<br />
<br />
<center>If you want to know more about the unique features of Eiffel and EiffelStudio, check out our [[Reasons for using Eiffel]] page.</center><br />
<br />
{|style="font-size:80%;" bgcolor=white|<br />
{| cellspacing=8 width="100%"<br />
|- valign="top"<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
<br />
== Getting Started ==<br />
<br />
* [[Downloads]]<br />
* [[EiffelStudio_ChangeLog|Changelog of current release (release branch)]]<br />
* [http://docs.eiffel.com/book/eiffelstudio/software-installation-eiffelstudio Installing EiffelStudio]<br />
* [[Compiling Hello World]]<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
<br />
== Working with EiffelStudio ==<br />
<br />
* [[Frequently Asked Questions]]<br />
* [[Eiffel Glossary]]<br />
* [[Eiffel Compilation Explained]]<br />
* [[EiffelStudio Wish List]]<br />
<br />
|- valign="top"<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
== Contributing! ==<br />
<br />
* [[:Category:Projects|How to contribute: the Projects page]]<br />
* [[:Category:Testing|EiffelStudio testing process: you can participate!]]<br />
* [[EiffelStudio ChangeLog|Changelog of latest development version]]<br />
* [[Repository|Getting the source: Subversion repository]]<br />
* [[Compiling EiffelStudio]]<br />
* [[:Category:Tools|Developer's tools]]<br />
* [[Language_Roadmap|Language roadmap]]<br />
* [[Environment_Roadmap|Environment roadmap]]<br />
* [[Design_and_coding_rules|Design and coding rules]]<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
<br />
== Community ==<br />
<br />
* [https://www.eiffel.org Eiffel.org]<br />
* [[Spread_the_word|Spread the word]]<br />
* [[Eiffel Sites and Links]]<br />
* [[Mailing Lists]]<br />
* [[:Category:News|News]]<br />
* Join us on gitter https://gitter.im/EiffelSoftware/EiffelStudio or through https://groups.eiffel.com/<br />
<br />
<br />
|}</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=Main_Page&diff=15992Main Page2022-05-13T12:20:02Z<p>Alexander Kogtenkov: /* News */ Added a note about 20.11 release.</p>
<hr />
<div>[[Category:General]]__NOTOC__<br />
<h1 class="firstHeading">EiffelStudio Integrated Development Environment</h1><br />
<br />
[[Image:EiffelStudioScreenshot.png|thumb|250px|right|EiffelStudio IDE ([http://eiffel.com/products/studio/screenshots.html more screenshots]) ]]<br />
<br />
Welcome to the central resource for EiffelStudio developers and contributors.<br />
==News==<br />
*''November 2021'': EiffelStudio [[EiffelStudio 21.11 Releases|21.11]] is available for download at https://www.eiffel.org/downloads<br />
*''December 2020'': EiffelStudio [[EiffelStudio 20.11 Releases|20.11]] is available for download at https://www.eiffel.org/downloads<br />
*''May 2019'': EiffelStudio [[EiffelStudio 19.05 Releases|19.05]] is available for download at https://www.eiffel.org/downloads<br />
<br />
==Background==<br />
<br />
EiffelStudio is an open-source IDE for the [http://en.wikipedia.org/wiki/Eiffel_programming_language Eiffel programming language]. [http://www.eiffel.com Eiffel Software] is the principal contributor and hosts the subversion repository. EiffelStudio is maintained and developed by Eiffel Software as well many contributors, including ETH Zurich.<br />
<br />
EiffelStudio is a full-featured IDE offering the following features, many of them unique:<br />
<br />
* Complete compiler for the Eiffel programming language, with Design By Contract (DBC) support and both high compile-time speed and high-performance executables, based on the Melting Ice Technology.<br />
* Full portability (including graphics) across Windows, MacOS X, Linux, *BSD, Solaris and other operating systems<br />
* Smart code editor<br />
* Sophisticated multi-view browsing and viewing facilities<br />
* Interactive debugger<br />
* Graphical modeling tool for UML and BON with full roundtrip<br />
* Refactoring support<br />
* GUI development tool (EiffelBuild) and fully portable GUI library (EiffelVision)<br />
* Many other libraries of reusable component.<br />
<br />
The Eiffel compiler creates C code that is then handed to a standard C compiler. As a result, Eiffel programs have a run-time performance comparable to those directly written in C or C++, but with the benefits of an advanced object-oriented model and strong typing. EiffelStudio uses a highly efficient compacting garbage collector to free the developer from the burden of memory management.<br />
<br />
<center>If you want to know more about the unique features of Eiffel and EiffelStudio, check out our [[Reasons for using Eiffel]] page.</center><br />
<br />
{|style="font-size:80%;" bgcolor=white|<br />
{| cellspacing=8 width="100%"<br />
|- valign="top"<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
<br />
== Getting Started ==<br />
<br />
* [[Downloads]]<br />
* [[EiffelStudio 20.11 Releases|Changelog of current release (release branch)]]<br />
* [http://docs.eiffel.com/book/eiffelstudio/software-installation-eiffelstudio Installing EiffelStudio]<br />
* [[Compiling Hello World]]<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
<br />
== Working with EiffelStudio ==<br />
<br />
* [[Frequently Asked Questions]]<br />
* [[Eiffel Glossary]]<br />
* [[Eiffel Compilation Explained]]<br />
* [[EiffelStudio Wish List]]<br />
<br />
|- valign="top"<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
== Contributing! ==<br />
<br />
* [[:Category:Projects|How to contribute: the Projects page]]<br />
* [[:Category:Testing|EiffelStudio testing process: you can participate!]]<br />
* [[EiffelStudio ChangeLog|Changelog of latest development version]]<br />
* [[Repository|Getting the source: Subversion repository]]<br />
* [[Compiling EiffelStudio]]<br />
* [[:Category:Tools|Developer's tools]]<br />
* [[Language_Roadmap|Language roadmap]]<br />
* [[Environment_Roadmap|Environment roadmap]]<br />
* [[Design_and_coding_rules|Design and coding rules]]<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
<br />
== Community ==<br />
<br />
* [https://www.eiffel.org Eiffel.org]<br />
* [[Spread_the_word|Spread the word]]<br />
* [[Eiffel Sites and Links]]<br />
* [[Mailing Lists]]<br />
* [[:Category:News|News]]<br />
* Join us on gitter https://gitter.im/EiffelSoftware/EiffelStudio or through https://groups.eiffel.com/<br />
<br />
<br />
|}</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15987EiffelStudio 21.11 Releases2021-11-26T20:36:09Z<p>Alexander Kogtenkov: /* New features */ Fixed a typo.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Indexed by person name.<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Extended the error report <code>VWOE</code> about using an operator with an operand of an unexpected type with the operator name and the associated feature name.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* tool: Ensured that <code>po_generation_tool</code> returns a non-zero error code if processing triggers any errors.<br />
<br />
===Bug fixes===<br />
* compiler: test#once029 — Taken into account predefined once keys specified for once creation procedures in SCOOP mode. In particular, the key <code>PROCESS</code> guarantees that a most one object can be created for the whole system.<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that may lead to showing wrong source code context when reported issues are associated with different files.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: Corrected code generation for <e>CHARACTER_32.is_space</e> to use properties defined by the Unicode standard.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#lib050 — Ensured that the behavior of <e>CHARACTER_8_REF.is_space</e> and <e>CHARACTER_8.is_space</e> does not depend on the current locale.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with <e>JSON_BASIC_SERIALIZATION</e>.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15986EiffelStudio 21.11 Releases2021-11-26T20:33:16Z<p>Alexander Kogtenkov: /* Developer changes */ Formatting.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Extended the error report <code>VWOE</code> about using an operator with an operand of an unexpected type with the operator name and the associated feature name.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* tool: Ensured that <code>po_generation_tool</code> returns a non-zero error code if processing triggers any errors.<br />
<br />
===Bug fixes===<br />
* compiler: test#once029 — Taken into account predefined once keys specified for once creation procedures in SCOOP mode. In particular, the key <code>PROCESS</code> guarantees that a most one object can be created for the whole system.<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that may lead to showing wrong source code context when reported issues are associated with different files.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: Corrected code generation for <e>CHARACTER_32.is_space</e> to use properties defined by the Unicode standard.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#lib050 — Ensured that the behavior of <e>CHARACTER_8_REF.is_space</e> and <e>CHARACTER_8.is_space</e> does not depend on the current locale.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with <e>JSON_BASIC_SERIALIZATION</e>.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15985EiffelStudio 21.11 Releases2021-11-26T20:31:55Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note about taking once keys into account when creating objects of once classes.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Extended the error report <code>VWOE</code> about using an operator with an operand of an unexpected type with the operator name and the associated feature name.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* tool: Ensured that <code>po_generation_tool</code> returns a non-zero error code if processing triggers any errors.<br />
<br />
===Bug fixes===<br />
* compiler: test#once029 — Taken into account predefined once keys specified for once creation procedures in SCOOP mode. In particular, the key <code>PROCESS</code> guarantees that a most one object can be created for the whole system.<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that may lead to showing wrong source code context when reported issues are associated with different files.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: Corrected code generation for <e>CHARACTER_32.is_space</e> to use properties defined by the Unicode standard.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#lib050 — Ensured that the behavior of <e>CHARACTER_8_REF.is_space</e> and <e>CHARACTER_8.is_space</e> does not depend on the current locale.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15984EiffelStudio 21.11 Releases2021-11-26T20:14:39Z<p>Alexander Kogtenkov: /* User changes */ Added a note on making the bahavior of CHARACTER_8.is_space independent of the current locale.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Extended the error report <code>VWOE</code> about using an operator with an operand of an unexpected type with the operator name and the associated feature name.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* tool: Ensured that <code>po_generation_tool</code> returns a non-zero error code if processing triggers any errors.<br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that may lead to showing wrong source code context when reported issues are associated with different files.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: Corrected code generation for <e>CHARACTER_32.is_space</e> to use properties defined by the Unicode standard.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#lib050 — Ensured that the behavior of <e>CHARACTER_8_REF.is_space</e> and <e>CHARACTER_8.is_space</e> does not depend on the current locale.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15983EiffelStudio 21.11 Releases2021-11-26T20:11:14Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note about fixing CHARACTER_32.is_space.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Extended the error report <code>VWOE</code> about using an operator with an operand of an unexpected type with the operator name and the associated feature name.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* tool: Ensured that <code>po_generation_tool</code> returns a non-zero error code if processing triggers any errors.<br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that may lead to showing wrong source code context when reported issues are associated with different files.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: Corrected code generation for <e>CHARACTER_32.is_space</e> to use properties defined by the Unicode standard.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15982EiffelStudio 21.11 Releases2021-11-26T19:55:40Z<p>Alexander Kogtenkov: /* Improvements */ Added a note on return code of po_generation_tool.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Extended the error report <code>VWOE</code> about using an operator with an operand of an unexpected type with the operator name and the associated feature name.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* tool: Ensured that <code>po_generation_tool</code> returns a non-zero error code if processing triggers any errors.<br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that may lead to showing wrong source code context when reported issues are associated with different files.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15981EiffelStudio 21.11 Releases2021-11-26T19:51:42Z<p>Alexander Kogtenkov: Moved notes about new conversion features to another section.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Extended the error report <code>VWOE</code> about using an operator with an operand of an unexpected type with the operator name and the associated feature name.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that may lead to showing wrong source code context when reported issues are associated with different files.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15980EiffelStudio 21.11 Releases2021-11-26T19:42:38Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note about fixing a bug taht can lead to showing wrong error context.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Extended the error report <code>VWOE</code> about using an operator with an operand of an unexpected type with the operator name and the associated feature name.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that may lead to showing wrong source code context when reported issues are associated with different files.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15979EiffelStudio 21.11 Releases2021-11-26T19:37:37Z<p>Alexander Kogtenkov: /* Improvements */ Added a note about extending information reported with VWOE.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Extended the error report <code>VWOE</code> about using an operator with an operand of an unexpected type with the operator name and the associated feature name.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15978EiffelStudio 21.11 Releases2021-11-26T19:30:17Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note on fixing false positives when detecting unreachable code after conditional instructions.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (code analyzer): test#codeanalysis033 — Avoided false positives for unreachable code after a conditional instruction when only one branch of the instruction makes the successive code unreachable.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15977EiffelStudio 21.11 Releases2021-11-26T19:24:43Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note on handling inheritance from a frozen class.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15976EiffelStudio 21.11 Releases2021-11-26T19:17:53Z<p>Alexander Kogtenkov: /* User changes */ Added a note on removing replication when using non-conforming inheritance.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15975EiffelStudio 21.11 Releases2021-11-26T19:08:16Z<p>Alexander Kogtenkov: /* Bug fixes */ Fixed a typo (period instead of a semicolon).</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15974EiffelStudio 21.11 Releases2021-11-26T19:07:14Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note about fixes for non-conforming inheritance.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:<br />
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;<br />
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;<br />
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;<br />
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;<br />
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary.<br />
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15973EiffelStudio 21.11 Releases2021-11-26T18:52:33Z<p>Alexander Kogtenkov: /* Improvements */ Added a note about handling white-space characters when pretty-printing.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15972EiffelStudio 21.11 Releases2021-11-26T18:48:45Z<p>Alexander Kogtenkov: /* User changes */ Added a note about replacing conforming inheritance with non-conforming one.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15971EiffelStudio 21.11 Releases2021-11-26T18:47:00Z<p>Alexander Kogtenkov: /* Improvements */ Added test names for pretty printing of unindented comments.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): test#pretty015, test#pretty028 — Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15970EiffelStudio 21.11 Releases2021-11-26T18:45:44Z<p>Alexander Kogtenkov: /* Improvements */ Added a note about pretty printing unindented comments.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Added a preference to control pretty printing of unindented comments (often used for commenting out code). Such comments can keep the (absent) indentation (the default) or be indented using the general rules.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15969EiffelStudio 21.11 Releases2021-11-26T16:16:03Z<p>Alexander Kogtenkov: /* Improvements */ Added a note about detecting TODO and FIXME.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (code analyzer): Disabled detection of the phrase "to do" unless it is written in capitals and without spaces, and enabled detection of "FIXME" in the comments.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15968EiffelStudio 21.11 Releases2021-11-26T16:12:09Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note on fixing incorrect .NET code generation for a non-object call.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15967EiffelStudio 21.11 Releases2021-11-26T16:08:08Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note on fixing a bug that could lead to a crash when generating for .NET.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15966EiffelStudio 21.11 Releases2021-11-26T15:45:40Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note on fixing bug#15451 (test#attach055).</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent <code>VEVI</code> error for the feature <e>default</e> when a reference class inherits from an expanded one.<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15965EiffelStudio 21.11 Releases2021-11-26T15:35:00Z<p>Alexander Kogtenkov: /* Improvements */ Fixed a typo.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEANS</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15964EiffelStudio 21.11 Releases2021-11-26T15:34:37Z<p>Alexander Kogtenkov: /* Improvements */ Added a note on improvements in PACKED_BOOLEAN.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Added features <e>set</e>, <e>clear</e>, <e>set_all</e> and optimized features <e>item</e> and <e>put</e> in <e>PACKED_BOOLEAN</e>.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15963EiffelStudio 21.11 Releases2021-11-26T15:30:04Z<p>Alexander Kogtenkov: /* Improvements */ Clarified the content of manifest arrays.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization from manifest arrays of tuples, for example:<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15962EiffelStudio 21.11 Releases2021-11-26T15:27:22Z<p>Alexander Kogtenkov: /* Improvements */ Added a note on the possibility to initialize a hash table from a manifest array.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
* library (base): Added <e>{HASH_TABLE}.make_from_iterable_tuples</e> as a creation and conversion procedure from <e>ARRAY</e> to enable initialization using manifest arrays.<br />
<e><br />
y: HASH_TABLE [INTEGER, STRING]<br />
...<br />
y := <<[23, "Peter"], [19, "Mary"], [36, "Tom"], [32, "Alice"]>> -- Index by person name.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15961EiffelStudio 21.11 Releases2021-11-26T15:00:07Z<p>Alexander Kogtenkov: /* Improvements */ Added an example of initialization of a list from a manifest array.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays by reattachment. This enables writing<br />
<e><br />
x: LINKED_LIST [INTEGER]<br />
...<br />
x := <<1, 1, 2, 3, 5, 8>> -- Create a list with elements 1, 1, 2, 3, 5, 8.<br />
</e><br />
<br />
===Bug fixes===<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15960EiffelStudio 21.11 Releases2021-11-26T14:50:53Z<p>Alexander Kogtenkov: /* Improvements */ Added a note on marking `make_from_iterable` as a conversion procedure from ARRAY for some container classes.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
* library (base): Marked <e>make_from_iterable</e> as a conversion procedure from <e>ARRAY</e> for some container classes to enable initialization of the corresponding entities from manifest arrays by reattachment.<br />
<br />
===Bug fixes===<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15959EiffelStudio 21.11 Releases2021-11-26T14:35:10Z<p>Alexander Kogtenkov: /* New features */ Mentioned how to update existing code to use new loop syntax.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
:The existing code can be updated with <code>syntax_updater</code> invoked with option <code>-i</code>.<br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15958EiffelStudio 21.11 Releases2021-11-26T14:31:05Z<p>Alexander Kogtenkov: /* Improvements */ Added a note on providing completion for Unicode operators defined in standard classes.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15957EiffelStudio 21.11 Releases2021-11-26T14:27:34Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note about corrected output of the pretty printer for once manifest strings.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
* compiler (pretty-printer): Corrected output for once manifest strings.<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15956EiffelStudio 21.11 Releases2021-11-26T14:26:25Z<p>Alexander Kogtenkov: /* Improvements */ Added a note on improving indentation in the output of pretty-printer.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler (pretty-printer): Harmonized indentation for identifier lists, tagged note entries, export clauses, feature signatures, multi-line lists in parentheses, mandatory check instructions, agents, delayed operands, components of a loop expression, manifest arrays, actual arguments, nested feature calls.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15955EiffelStudio 21.11 Releases2021-11-26T14:20:18Z<p>Alexander Kogtenkov: /* User changes */ Added a note on changing the defaults for the loop syntax.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15954EiffelStudio 21.11 Releases2021-11-26T14:13:42Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note on fixing test#attach131 and preventing using inline locals in old expressions.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (November Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.<br />
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.<br />
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15951EiffelStudio 21.11 Releases2021-11-26T13:49:42Z<p>Alexander Kogtenkov: /* User changes */ Added a note on marking @ as obsolete.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example:<br />
<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting Subversion and Git.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
* compiler: Changed to report a user-defined operator <e>@</e> as obsolete (in many cases, the bracket operator replaces it).<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15949EiffelStudio 21.11 Releases2021-11-26T13:43:20Z<p>Alexander Kogtenkov: /* User changes */ Added a note on marking loops with keyword "is" as obsolete.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example,<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting Subversion and Git.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
* compiler: Changed to report an iteration form of a loop with keyword <e>is</e> as obsolete. The contemporary syntax is to use the loop with keyword <e>as</e> and symbol <e>@</e> to access cursor features.<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15948EiffelStudio 21.11 Releases2021-11-26T13:33:55Z<p>Alexander Kogtenkov: /* New features */ Added a note on supporting the syntax to access loop cursor features.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
* compiler: Supported a unified syntax to access loop cursor features inside an iteration form of a loop for both keyword-based and Unicode-based loop variants. The current item is accessed by the cursor name. The cursor feature is accessed by preceding the cursor name with the symbol <e>@</e>. For example,<e><br />
∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x > 0) -- All elements at even positions are positive.<br />
<br />
-- Print all elements of a table prefixed with their keys.<br />
across table as y loop<br />
print (@ y.key)<br />
print (": ")<br />
print (y)<br />
io.put_new_line<br />
end<br />
</e><br />
* EiffelStudio: Added a source control management tool, supporting Subversion and Git.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15947EiffelStudio 21.11 Releases2021-11-26T13:14:41Z<p>Alexander Kogtenkov: Added a note on using the same indentation for assertions subclauses.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
* EiffelStudio: Added a source control management tool, supporting Subversion and Git.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.<br />
<br />
===Bug fixes===<br />
compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15946EiffelStudio 21.11 Releases2021-11-26T13:05:45Z<p>Alexander Kogtenkov: /* Improvements */ Added a note on using the same indentation for assertions subclauses.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
* EiffelStudio: Added a source control management tool, supporting Subversion and Git.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
* EiffelStudio: Used the same indentation for assertion subclauses with and without tags.<br />
<br />
===Bug fixes===<br />
compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15945EiffelStudio 21.11 Releases2021-11-26T13:00:01Z<p>Alexander Kogtenkov: /* 21.11.xx.yyyy (Month Day 2021) */ Applied the same style to all entries.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
* EiffelStudio: Added a source control management tool, supporting Subversion and Git.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.<br />
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).<br />
* EiffelStudio: Used user-controlled editor font in several tools.<br />
<br />
===Bug fixes===<br />
compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.<br />
<br />
===Developer changes===<br />
* library (json): Added a date time serializer.<br />
* library (json): Added the possibility to use the reflector serializer with JSON_BASIC_SERIALIZATION.<br />
* library (vision2): Updated the checkbox drawing, and added a new <e>is_indeterminate</e> state.<br />
* library (EiffelWeb): Fixed <e>WSF_REQUEST</e> when searching for a table item with the name such as <code>tb[k1][k2]</code>.<br />
* library (cms): Improved the administration part, and followed recommendation for email sending.<br />
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable <code>vision_implementation</code> to <code>gtk2</code>).</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15944EiffelStudio 21.11 Releases2021-11-26T12:33:32Z<p>Alexander Kogtenkov: /* Bug fixes */ Added a note on fixing test#syntax076.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
* studio: new source control management tool (svn and git support)<br />
<br />
===Improvements===<br />
* studio: Added scripts (for unices) to open external editor, launch url, and open terminal.<br />
* studio: on unices (linux, macos, ...) platforms, EiffelStudio is based on GTK3 (and not anymore GTK2)<br />
* studio: extended font zoom support to more tools (especially the one based on grid, debugging tools)<br />
<br />
===Bug fixes===<br />
compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: <e>\\</e>, <e>/</e>, <e>//</e> can only be used as binary operators).<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode (test#attach130).<br />
* studio: added font-zoom support for a few more tools' grid.<br />
<br />
===Developer changes===<br />
* library(json): Added data time serializer.<br />
* library(json): added the possibility to also use the reflector serializer with JSON_BASIC_SERIALIZATION<br />
* library(vision2): updated the checkbox drawing, and added a new `is_indeterminate` state.<br />
* library(EiffelWeb): Fixed WSF_REQUEST when searching for table item with name such as tb[k1][k2].<br />
* library(cms): Improved the administration part, and followed recommendation for email sending.<br />
* library(vision2): updated gtk3 support (warning: gtk3 is the new default on non Windows platforms, to use previous GTK2, please set the variable vision_implementation=gtk2 )</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15943EiffelStudio 21.11 Releases2021-11-26T12:28:23Z<p>Alexander Kogtenkov: Removed an extraneous empty line.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.11.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
* studio: new source control management tool (svn and git support)<br />
<br />
===Improvements===<br />
* studio: Added scripts (for unices) to open external editor, launch url, and open terminal.<br />
* studio: on unices (linux, macos, ...) platforms, EiffelStudio is based on GTK3 (and not anymore GTK2)<br />
* studio: extended font zoom support to more tools (especially the one based on grid, debugging tools)<br />
<br />
===Bug fixes===<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode (test#attach130).<br />
* studio: added font-zoom support for a few more tools' grid.<br />
<br />
===Developer changes===<br />
* library(json): Added data time serializer.<br />
* library(json): added the possibility to also use the reflector serializer with JSON_BASIC_SERIALIZATION<br />
* library(vision2): updated the checkbox drawing, and added a new `is_indeterminate` state.<br />
* library(EiffelWeb): Fixed WSF_REQUEST when searching for table item with name such as tb[k1][k2].<br />
* library(cms): Improved the administration part, and followed recommendation for email sending.<br />
* library(vision2): updated gtk3 support (warning: gtk3 is the new default on non Windows platforms, to use previous GTK2, please set the variable vision_implementation=gtk2 )</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_ChangeLog&diff=15933EiffelStudio ChangeLog2021-01-11T15:50:46Z<p>Alexander Kogtenkov: Added a change log for 21.05.</p>
<hr />
<div>#REDIRECT [[EiffelStudio 21.05 Releases]]</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15932EiffelStudio 21.11 Releases2021-01-11T15:43:40Z<p>Alexander Kogtenkov: /* User changes */ Added a note about a validity check that the type of an inspect expression should be attached.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.05.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.05.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
<br />
===Improvements===<br />
<br />
===Bug fixes===<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
* compiler: Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode (test#attach130).<br />
<br />
===Developer changes===</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=Main_Page&diff=15931Main Page2021-01-11T14:46:06Z<p>Alexander Kogtenkov: /* Getting Started */</p>
<hr />
<div>[[Category:General]]__NOTOC__<br />
<h1 class="firstHeading">EiffelStudio Integrated Development Environment</h1><br />
<br />
[[Image:EiffelStudioScreenshot.png|thumb|250px|right|EiffelStudio IDE ([http://eiffel.com/products/studio/screenshots.html more screenshots]) ]]<br />
<br />
Welcome to the central resource for EiffelStudio developers and contributors.<br />
==News==<br />
*''December 2020'': EiffelStudio [[EiffelStudio 20.11 Releases|20.11]] is available for download at https://www.eiffel.org/downloads<br />
*''May 2019'': EiffelStudio [[EiffelStudio 19.05 Releases|19.05]] is available for download at https://www.eiffel.org/downloads<br />
*''December 2018'': EiffelStudio [[EiffelStudio 18.11 Releases|18.11]] is available for download at https://www.eiffel.org/downloads<br />
<br />
==Background==<br />
<br />
EiffelStudio is an open-source IDE for the [http://en.wikipedia.org/wiki/Eiffel_programming_language Eiffel programming language]. [http://www.eiffel.com Eiffel Software] is the principal contributor and hosts the subversion repository. EiffelStudio is maintained and developed by Eiffel Software as well many contributors, including ETH Zurich.<br />
<br />
EiffelStudio is a full-featured IDE offering the following features, many of them unique:<br />
<br />
* Complete compiler for the Eiffel programming language, with Design By Contract (DBC) support and both high compile-time speed and high-performance executables, based on the Melting Ice Technology.<br />
* Full portability (including graphics) across Windows, MacOS X, Linux, *BSD, Solaris and other operating systems<br />
* Smart code editor<br />
* Sophisticated multi-view browsing and viewing facilities<br />
* Interactive debugger<br />
* Graphical modeling tool for UML and BON with full roundtrip<br />
* Refactoring support<br />
* GUI development tool (EiffelBuild) and fully portable GUI library (EiffelVision)<br />
* Many other libraries of reusable component.<br />
<br />
The Eiffel compiler creates C code that is then handed to a standard C compiler. As a result, Eiffel programs have a run-time performance comparable to those directly written in C or C++, but with the benefits of an advanced object-oriented model and strong typing. EiffelStudio uses a highly efficient compacting garbage collector to free the developer from the burden of memory management.<br />
<br />
<center>If you want to know more about the unique features of Eiffel and EiffelStudio, check out our [[Reasons for using Eiffel]] page.</center><br />
<br />
{|style="font-size:80%;" bgcolor=white|<br />
{| cellspacing=8 width="100%"<br />
|- valign="top"<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
<br />
== Getting Started ==<br />
<br />
* [[Downloads]]<br />
* [[EiffelStudio 20.11 Releases|Changelog of current release (release branch)]]<br />
* [http://docs.eiffel.com/book/eiffelstudio/software-installation-eiffelstudio Installing EiffelStudio]<br />
* [[Compiling Hello World]]<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
<br />
== Working with EiffelStudio ==<br />
<br />
* [[Frequently Asked Questions]]<br />
* [[Eiffel Glossary]]<br />
* [[Eiffel Compilation Explained]]<br />
* [[EiffelStudio Wish List]]<br />
<br />
|- valign="top"<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
== Contributing! ==<br />
<br />
* [[:Category:Projects|How to contribute: the Projects page]]<br />
* [[:Category:Testing|EiffelStudio testing process: you can participate!]]<br />
* [[EiffelStudio ChangeLog|Changelog of latest development version]]<br />
* [[Repository|Getting the source: Subversion repository]]<br />
* [[Compiling EiffelStudio]]<br />
* [[:Category:Tools|Developer's tools]]<br />
* [[Language_Roadmap|Language roadmap]]<br />
* [[Environment_Roadmap|Environment roadmap]]<br />
* [[Design_and_coding_rules|Design and coding rules]]<br />
|width="50%" bgcolor="#f6f9fb" style="border:1px solid #8f8f8f;padding:0 .5em .5em .5em;"|<br />
<br />
== Community ==<br />
<br />
* [https://www.eiffel.org Eiffel.org]<br />
* [[Spread_the_word|Spread the word]]<br />
* [[Eiffel Sites and Links]]<br />
* [[Mailing Lists]]<br />
* [[:Category:News|News]]<br />
* Join us on gitter https://gitter.im/EiffelSoftware/EiffelStudio or through https://groups.eiffel.com/<br />
<br />
<br />
|}</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_21.11_Releases&diff=15930EiffelStudio 21.11 Releases2021-01-11T14:44:06Z<p>Alexander Kogtenkov: Added a change log for 21.05.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 21.05.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 21.05.xx.yyyy (Month Day 2021) ==<br />
<br />
===New features===<br />
<br />
===Improvements===<br />
<br />
===Bug fixes===<br />
<br />
===Feature removed===<br />
<br />
===User changes===<br />
<br />
===Developer changes===</div>Alexander Kogtenkovhttps://dev.eiffel.com/index.php?title=EiffelStudio_20.11_Releases&diff=15929EiffelStudio 20.11 Releases2021-01-11T14:40:18Z<p>Alexander Kogtenkov: /* 20.11.xx.yyyy (Month Day 2020) */ Updated the version and the release date.</p>
<hr />
<div>[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}<br />
<br />
__NOTOC__<br />
<br />
= EiffelStudio 20.11.x Releases=<br />
<br />
Beta download: https://ftp.eiffel.com/pub/beta/<br />
<br />
== 20.11.10.5048 (December 21st 2020) ==<br />
<br />
===New features===<br />
* compiler: Supported once classes.<br />
* EiffelStudio (wizards): Added WrapC wizard.<br />
* EiffelStudio: Added pretty printer notification.<br />
<br />
===Improvements===<br />
* EiffelStudio: Added a zoom indicator in the Zoom menu.<br />
* EiffelStudio (AutoTest): Updated to make it compatible with void safety.<br />
* compiler: Extended the message about successful compilation with a notification if warnings were reported.<br />
* EiffelStudio (editor): Made start and stop symbols from Unicode forms of loop instructions to be pairs of matching "parentheses".<br />
* EiffelStudio (editor): Updated grammar rules for syntax highlighting to match those used by teh compiler.<br />
* EiffelStudio (debugger): Added preferences to control default values of CAT-call detection in the debugger and reporting in the console.<br />
<br />
===Bug fixes===<br />
* compiler (pretty printer): Fixed bug#19667 (test#pretty033) by making sure a space is printed before delayed arguments of an agent.<br />
* compiler (pretty printer): Fixed test#pretty034 by correcting output for feature export adaptation clause.<br />
* EiffelStudio: Restore focus to previous focused widget when raising a message notification.<br />
* tool (Eiffel script): Fixed cache location when using an ECF file with multiple application targets.<br />
* EiffelStudio: Fixed the customized formatter editor dialog.<br />
* EiffelStudio: Fixed crash while using the project settings on linux (bug#19687).<br />
* EiffelStudio (AutoTest): Fixed issue with AutoTest Extracted Test Cases<br />
* EiffelStudio (AutoTest): Fixed issue, feature call on void target with Autotest Random generator<br />
* compiler (code analyzer): Significantly reduced the number of false positives when checking for <code>CA022</code> violations (unreachable code).<br />
* EiffelStudio (debugger): Fixed a bug that prevented correct saving and restoring of CAT-call handling settings.<br />
<br />
===Feature removed===<br />
* compiler: Dropped support for obsolete syntax with exclamation marks:<br />
** creation instruction/expression: use <e>create x</e> and <e>create {FOO} bar.make</e> instead of <e>!!x</e> and <e>!FOO!bar.make</e>;<br />
** type attachment marks: use <e>attached</e> and <e>detachable</e> instead of marks <code>!</code> and <code>?</code> respectively.<br />
<br />
===User changes===<br />
* delivery: removed the "experimental" folder from the delivery.<br />
* EiffelStudio: Added scripts (for Unixes) in <code>tools/spec/../bin</code> to open external editor, launch URL, and open terminal.<br />
* EiffelStudio: Updated Features tools, collapsing inheritance sub-tree by default.<br />
* library (vision): Marked <e>{EV_ANY}.copy</e> as obsolete (it is non-obsolete only in descendants that redefine it).<br />
<br />
===Libraries improvements===<br />
* http: Improved support for RFC 3339 (a profile of ISO 8601)<br />
* web cms: improved random value generation<br />
* web cms: improved authentication related to user not yet validated<br />
* eiffelweb: "application/force-download" is not a standard MIME content type, so use "application_octet_stream" instead as default.<br />
* web cms: added support for recaptcha v3<br />
* web cms: improved the custom block module<br />
* web cms: improved web form manipulation and html generation<br />
* vision2: added EV_LINK_LABEL and EV_HIGHLIGHT_LINK_LABEL (to mimic web link)<br />
* uri_launcher: Moved uri_launcher library from Eiffel framework to library/runtime/process/uri_launcher<br />
* base_extension: Added class TOPOLOGICAL_SORTER used to produce a total order on a set of elements having only a partial order.<br />
* 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]<br />
* base: Added a feature `to_hexa_digit` to character classes to convert a hexadecimal (Unicode) digit character to the corresponding numeric value.<br />
<br />
===New libraries===<br />
* Multiple new wrappers for C libraries:<br />
{| style="border: solid 1px #ccc;"<br />
!Wrapper<br />
!Description of C library<br />
|-<br />
|[https://iron.eiffel.com/repository/20.11/package/99BB5A06-CBC6-4C32-952A-9BD014E135B2 wrap_mpack]<br />
|mpack is a C implementation of an encoder and decoder for the [MessagePack](https://msgpack.org/) serialization format.<br />
|-<br />
|[https://iron.eiffel.com/repository/20.11/package/691C5109-A19B-47B7-8976-4E60AEB4FD87 wrap_cairo]<br />
|Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window<br />
System (via both Xlib and XCB), quartz, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends<br />
include OpenGL, BeOS, OS/2, and DirectFB.<br />
|-<br />
|[https://iron.eiffel.com/repository/20.11/package/B3D0D18C-84CE-4021-98A5-E2E84C8722A6 wrap_rsvg]<br />
|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.<br />
|}<br />
<br />
<br />
===Libraries bug fixes===<br />
* sqlite3: Fixed SQLITE text containing null character<br />
* web cms: Updated core and authentication modules to remove potential vulnerabilities (js, svg script in url).<br />
* web cms: Fixed a crash of the "roc" installer tool when a module had no "site" folder.<br />
* base: Corrected preconditions of shift operations on integral numbers that might not work when shift count is equal to the number of bits.<br />
<br />
===Developer changes===<br />
* libraries: Removed the <code>*-safe.ecf</code> configuration files because they became useless with introduction of capabilities.</div>Alexander Kogtenkov