<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://dev.eiffel.com/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages</id>
		<title>EiffelStudio: an EiffelSoftware project - New pages [en]</title>
		<link rel="self" type="application/atom+xml" href="https://dev.eiffel.com/index.php?feed=atom&amp;namespace=0&amp;title=Special%3ANewPages"/>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/Special:NewPages"/>
		<updated>2026-06-01T21:00:47Z</updated>
		<subtitle>From EiffelStudio: an EiffelSoftware project</subtitle>
		<generator>MediaWiki 1.24.1</generator>

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_25.12_Releases</id>
		<title>EiffelStudio 25.12 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_25.12_Releases"/>
				<updated>2026-01-20T17:21:39Z</updated>
		
		<summary type="html">&lt;p&gt;Jfiat: Created page with &amp;quot;Category:Releases__NOTOC__{{ReleaseHistoryHeader}}  __NOTOC__   Beta download: https://account.eiffel.com/downloads/channel/beta  Stable download: https://account.eiffel.c...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beta download: https://account.eiffel.com/downloads/channel/beta&lt;br /&gt;
&lt;br /&gt;
Stable download: https://account.eiffel.com/downloads/channel/stable&lt;br /&gt;
&lt;br /&gt;
== Release 25.12.9.8922 (Dec 2025) ==&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
This changelog documents the changes between Eiffel 25.02 and Eiffel 25.12 releases.&lt;br /&gt;
&lt;br /&gt;
'''Statistics:'''&lt;br /&gt;
* Total commits: 200+&lt;br /&gt;
* Files changed: 8,259&lt;br /&gt;
* Insertions: 1,376,161&lt;br /&gt;
* Deletions: 1,013,579&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Major New Features ==&lt;br /&gt;
&lt;br /&gt;
=== 1. PostgreSQL Support for EiffelStore ===&lt;br /&gt;
* '''NEW''': Complete PostgreSQL database driver implementation&lt;br /&gt;
* Added native PostgreSQL binding for EiffelStore library&lt;br /&gt;
* Includes C library wrapper (&amp;lt;code&amp;gt;eif_postgresql.c/h&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Docker compose support for testing&lt;br /&gt;
* Full CRUD operations support&lt;br /&gt;
* Test suite with comprehensive coverage&lt;br /&gt;
&lt;br /&gt;
'''Files Added:'''&lt;br /&gt;
* &amp;lt;code&amp;gt;Src/library/store/dbms/rdbms/postgresql/&amp;lt;/code&amp;gt; (complete new directory)&lt;br /&gt;
* PostgreSQL C bindings and Eiffel wrapper classes&lt;br /&gt;
* Test infrastructure with Docker support&lt;br /&gt;
&lt;br /&gt;
=== 2. PostgreSQL Support for CMS ===&lt;br /&gt;
* Added PostgreSQL storage backend for CMS (Content Management System)&lt;br /&gt;
* New &amp;lt;code&amp;gt;cms_storage_store_postgresql&amp;lt;/code&amp;gt; implementation&lt;br /&gt;
* SQL converter for PostgreSQL-specific syntax&lt;br /&gt;
* Database connection handler for PostgreSQL&lt;br /&gt;
* Full integration with CMS modules&lt;br /&gt;
&lt;br /&gt;
'''Files Added:'''&lt;br /&gt;
* &amp;lt;code&amp;gt;Src/unstable/library/web/cms/library/persistence/store_postgresql/&amp;lt;/code&amp;gt;&lt;br /&gt;
* Complete test suite for CMS PostgreSQL storage&lt;br /&gt;
&lt;br /&gt;
=== 3. AWS S3 Client Library ===&lt;br /&gt;
* '''NEW''': First version of S3 client library&lt;br /&gt;
* Enables interaction with Amazon S3 storage services&lt;br /&gt;
* Support for basic S3 operations&lt;br /&gt;
&lt;br /&gt;
=== 4. CMS API Key Authentication Module ===&lt;br /&gt;
* '''NEW''': API key-based authentication for CMS&lt;br /&gt;
* Token management system&lt;br /&gt;
* Scope-based access control&lt;br /&gt;
* WebAPI integration&lt;br /&gt;
* SQL storage backend&lt;br /&gt;
&lt;br /&gt;
'''Files Added:'''&lt;br /&gt;
* &amp;lt;code&amp;gt;Src/unstable/library/web/cms/modules/api_key_auth/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. CMS Storage Browser Module ===&lt;br /&gt;
* '''NEW''': Database browser module for CMS&lt;br /&gt;
* Query execution interface&lt;br /&gt;
* Table schema inspection&lt;br /&gt;
* Data browsing capabilities&lt;br /&gt;
* WebAPI handlers for storage operations&lt;br /&gt;
&lt;br /&gt;
'''Files Added:'''&lt;br /&gt;
* &amp;lt;code&amp;gt;Src/unstable/library/web/cms/modules/storage/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 6. CMS Command Line Interface (CLI) ===&lt;br /&gt;
* '''NEW''': CLI execution mode for CMS&lt;br /&gt;
* Interactive shell with ANSI control support&lt;br /&gt;
* Admin commands for users and modules&lt;br /&gt;
* Module-specific CLI extensions&lt;br /&gt;
* Command utility framework&lt;br /&gt;
&lt;br /&gt;
'''Files Added:'''&lt;br /&gt;
* &amp;lt;code&amp;gt;Src/unstable/library/web/cms/cli/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Library Updates ==&lt;br /&gt;
&lt;br /&gt;
=== Gobo Library ===&lt;br /&gt;
* Updated to Gobo 25.12&lt;br /&gt;
* Added new libraries: langserver, storable, thread&lt;br /&gt;
* Extensive documentation updates&lt;br /&gt;
&lt;br /&gt;
=== EiffelVision2 ===&lt;br /&gt;
* '''SECURITY FIX''': Fixed potential buffer overflow in GTK binding&lt;br /&gt;
* Fixed erroneous precondition in &amp;lt;code&amp;gt;EV_FONT_I.copy_font&amp;lt;/code&amp;gt;&lt;br /&gt;
* Updated GTK3 C utilities&lt;br /&gt;
&lt;br /&gt;
=== SQLite ===&lt;br /&gt;
* '''MAJOR UPDATE''': Updated SQLite C driver to latest version&lt;br /&gt;
* Significant improvements and bug fixes (96,794 lines changed)&lt;br /&gt;
* Added JSON example for SQLite&lt;br /&gt;
&lt;br /&gt;
=== EiffelWeb Framework (EWF) ===&lt;br /&gt;
* Improved &amp;lt;code&amp;gt;WSF_ROUTER&amp;lt;/code&amp;gt; with default handler support&lt;br /&gt;
* Enhanced &amp;lt;code&amp;gt;WSF_FILE_SYSTEM_HANDLER&amp;lt;/code&amp;gt; for index.html support&lt;br /&gt;
* Better OPTIONS request handling&lt;br /&gt;
* Added &amp;lt;code&amp;gt;WSF_OPTIONS_RESPONSE&amp;lt;/code&amp;gt;&lt;br /&gt;
* Improved CORS support&lt;br /&gt;
* Enhanced request information handling (path_info, request_uri)&lt;br /&gt;
&lt;br /&gt;
=== URI Library ===&lt;br /&gt;
* Made &amp;lt;code&amp;gt;URI_PERCENT_ENCODER&amp;lt;/code&amp;gt; visible for reuse&lt;br /&gt;
* Improved percent encoding utilities&lt;br /&gt;
&lt;br /&gt;
=== Text Filter Library ===&lt;br /&gt;
* Enhanced &amp;lt;code&amp;gt;URL_CONTENT_FILTER&amp;lt;/code&amp;gt;&lt;br /&gt;
* Improved HTML content filtering&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== CMS (Content Management System) Enhancements ==&lt;br /&gt;
&lt;br /&gt;
=== Authentication &amp;amp; Security ===&lt;br /&gt;
* '''NEW''': &amp;quot;Sign In With Email&amp;quot; magic link authentication&lt;br /&gt;
* Enhanced JWT authentication with magic links&lt;br /&gt;
* Improved email verification system&lt;br /&gt;
* Better user registration workflow&lt;br /&gt;
* Enhanced OAuth 2.0 support (added GitHub predefined config)&lt;br /&gt;
* Improved session authentication&lt;br /&gt;
* Better password reset functionality&lt;br /&gt;
&lt;br /&gt;
=== Email System ===&lt;br /&gt;
* Restructured email templates&lt;br /&gt;
* Added &amp;lt;code&amp;gt;send_at&amp;lt;/code&amp;gt; information to CMS emails&lt;br /&gt;
* Improved email confirmation pages&lt;br /&gt;
* Better mail template organization&lt;br /&gt;
* Enhanced authenticated email notifications&lt;br /&gt;
&lt;br /&gt;
=== User Management ===&lt;br /&gt;
* Improved user profile handling&lt;br /&gt;
* Enhanced user deletion support&lt;br /&gt;
* Better temporary user management&lt;br /&gt;
* Improved user activation workflow&lt;br /&gt;
* Enhanced user registration process&lt;br /&gt;
&lt;br /&gt;
=== Module System ===&lt;br /&gt;
* Better module initialization and update operations&lt;br /&gt;
* Improved module override capabilities&lt;br /&gt;
* Enhanced module installation process&lt;br /&gt;
* Better error handling in module operations&lt;br /&gt;
&lt;br /&gt;
=== Storage &amp;amp; Database ===&lt;br /&gt;
* Better database connection handling&lt;br /&gt;
* Improved transaction support&lt;br /&gt;
* Enhanced query execution&lt;br /&gt;
* Better error reporting&lt;br /&gt;
&lt;br /&gt;
=== WebAPI ===&lt;br /&gt;
* Improved router with default response handling&lt;br /&gt;
* Better JSON response formatting&lt;br /&gt;
* Enhanced WebAPI filter system&lt;br /&gt;
* Improved status code handling&lt;br /&gt;
* Better error responses&lt;br /&gt;
&lt;br /&gt;
=== Admin Interface ===&lt;br /&gt;
* Enhanced admin info page with request details&lt;br /&gt;
* Improved module management interface&lt;br /&gt;
* Better user management tools&lt;br /&gt;
* Enhanced log viewing&lt;br /&gt;
* Improved mail handling interface&lt;br /&gt;
&lt;br /&gt;
=== CMS / Block System ===&lt;br /&gt;
* '''NEW''': Mustache template block support&lt;br /&gt;
* Enhanced custom block with template engine selection&lt;br /&gt;
* Improved block condition expressions (added negation support)&lt;br /&gt;
* Better modal content blocks&lt;br /&gt;
* Enhanced Smarty template blocks&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous CMS Improvements ===&lt;br /&gt;
* Added CMS version information&lt;br /&gt;
* Improved environment variable handling&lt;br /&gt;
* Better reverse proxy support&lt;br /&gt;
* Enhanced HTTPS detection&lt;br /&gt;
* Improved file serving (www directory)&lt;br /&gt;
* Better RSS feed generation&lt;br /&gt;
* Enhanced URL utilities&lt;br /&gt;
* Improved pagination&lt;br /&gt;
* Better theme error reporting&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Compiler &amp;amp; IDE Improvements ==&lt;br /&gt;
&lt;br /&gt;
=== EiffelStudio ===&lt;br /&gt;
* Fixed autocompletion matching logic&lt;br /&gt;
* Improved code completion window&lt;br /&gt;
* Fixed various UI issues&lt;br /&gt;
&lt;br /&gt;
=== Compiler ===&lt;br /&gt;
* Fixed type conformance test signatures&lt;br /&gt;
* Improved error context printing&lt;br /&gt;
* Fixed execution of except016 test&lt;br /&gt;
&lt;br /&gt;
=== C Runtime ===&lt;br /&gt;
* Fixed memory corruption in &amp;lt;code&amp;gt;MultiByteToWideChar&amp;lt;/code&amp;gt; calls&lt;br /&gt;
* Fixed C warnings in various components&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Database &amp;amp; Storage ==&lt;br /&gt;
&lt;br /&gt;
=== MySQL/MariaDB ===&lt;br /&gt;
* Updated to use latest C connector (msvcrt.lib on Windows)&lt;br /&gt;
* Improved connection handling&lt;br /&gt;
* Better error reporting&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Bug Fixes ===&lt;br /&gt;
* Fixed postcondition of &amp;lt;code&amp;gt;MUTEX.destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
* Fixed potential buffer overflow in EiffelVision GTK&lt;br /&gt;
* Fixed memory corruption issues&lt;br /&gt;
* Fixed STRING_32 vs STRING_8 conversion issues&lt;br /&gt;
* Fixed warning removals throughout codebase&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Deprecated &amp;amp; Removed Features ==&lt;br /&gt;
&lt;br /&gt;
* Removed obsolete reverse assignment attempts (replaced with object tests)&lt;br /&gt;
* Removed obsolete iteration cursor usage&lt;br /&gt;
* Cleaned up unused local variables throughout codebase&lt;br /&gt;
* Removed specific OPTIONS HTTP request handling (now uses default)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Security Fixes ==&lt;br /&gt;
&lt;br /&gt;
* Fixed potential buffer overflow in EiffelVision GTK binding&lt;br /&gt;
* Fixed memory corruption in Windows API calls&lt;br /&gt;
* Enhanced input validation&lt;br /&gt;
* Better SQL injection prevention&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Breaking Changes ==&lt;br /&gt;
&lt;br /&gt;
* Updated method signatures for type conformance tests&lt;br /&gt;
* Changed &amp;lt;code&amp;gt;convert_to_stream&amp;lt;/code&amp;gt; signature (encoding may be Void)&lt;br /&gt;
* Updated various storage API signatures&lt;br /&gt;
* Modified authentication email service parameters&lt;/div&gt;</summary>
		<author><name>Jfiat</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_25.02_Releases</id>
		<title>EiffelStudio 25.02 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_25.02_Releases"/>
				<updated>2025-02-11T12:12:35Z</updated>
		
		<summary type="html">&lt;p&gt;Jfiat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beta download: https://account.eiffel.com/downloads/channel/beta&lt;br /&gt;
&lt;br /&gt;
Stable download: https://account.eiffel.com/downloads/channel/stable&lt;br /&gt;
&lt;br /&gt;
== 25.02.9.8732 (Feb 2025) ==&lt;br /&gt;
* IDE: fixed import of settings on non Windows platforms&lt;br /&gt;
* IDE: improved implementation of variable files in the execution parameters dialog&lt;br /&gt;
* library: updated the MongoDB set of libraries&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 25.02.9.8723 (Feb 2025) ==&lt;br /&gt;
&lt;br /&gt;
===Compiler===&lt;br /&gt;
* Added support for $(path_separator) for the external locations (in ECF files)&lt;br /&gt;
* Fixed C code generation related to generic type based on basic types such as TYPE [TYPED_POINTER [NATURAL_8]]&lt;br /&gt;
&lt;br /&gt;
===IDE===&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* Execution parameters: added the possibility to group execution profiles (in the execution parameters dialog)&lt;br /&gt;
* Execution parameters: added support for environment files in the execution parameters. In addition to be able to add environment variables directly, it is now also possible to &amp;quot;include&amp;quot; a variables file (multi-line name=value  content). This way  it gets simpler to reuse the same environment variables for different execution profiles.&lt;br /&gt;
* persistence: added MongoDB wrapper&lt;br /&gt;
* persistence: added MariaDB support to EiffelStore.&lt;br /&gt;
* Diagram tool: implemented export to SVG file.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* IDE: added the EIFDATA directory, inside the project location, to store EiffelStudio data that is not dependent on one session, and that could be committed as source code.&lt;br /&gt;
* Diagram tool: the diagram XML files are not stored inside the new EIFDATA directory and not anymore in the EIFGENs directory.&lt;br /&gt;
* IDE: fixed the importation of the last opened projects list when the user launches a new version of EiffelStudio for the first time.&lt;br /&gt;
* Source control tool: minor improvement for the SCM tool, related to the project setup control.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: avoid unwanted precomp-estudio, precomp-iron, ... directories.&lt;br /&gt;
* compiler: fixed argument processing for -metadata_cache_path when it is in last position&lt;br /&gt;
* diagram tool: fixed loading of diagram links&lt;br /&gt;
* diagram tool: fixed angle moving behavior: it is now possible to select an angle and move it.&lt;br /&gt;
* IDE: fixed and improved the Add Class dialog for the inheritance class selection.&lt;br /&gt;
* diagram tool: fixed the expected zoom in/out behavior using the mouse scrolling (before it was reversed behavior).&lt;br /&gt;
* dependency tool: fixed an infinite loop&lt;br /&gt;
* autotest: fixed various autotest UI issues.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
&lt;br /&gt;
===Libraries Improvements===&lt;br /&gt;
* wikitext: improved support for &amp;lt;nowiki&amp;gt;[[File:...]]&amp;lt;/nowiki&amp;gt; to display images (following mediawiki behavior)&lt;br /&gt;
* http_client: added feature to remove query or form parameters with a given name&lt;br /&gt;
* json: added JSON_SERIALIZABLE and associated JSON_SERIALIZABLE_SERIALIZER to make a class JSON serializable&lt;br /&gt;
* json: added convenient classes (JSON_PRETTY_FILE_VISITOR and JSON_FILE_SERIALIZATION_VISITOR) to serialize JSON values directly to files&lt;br /&gt;
* cms: expand the environment variable ${VARNAME} in the application configuration &amp;quot;env.json&amp;quot;. With support for syntax: ${VARNAME-default}  and ${VARNAME:-default}&lt;br /&gt;
* cms: added support for &amp;quot;environment&amp;quot;  in the server.ini file. (note: add for instance &amp;quot;environment=.env&amp;quot; and the name=value variables from the .env file will be applied when running the server. The .env content should be multilines NAME=VALUE ).&lt;br /&gt;
* crypto: added implementation for the Advanced Encryption Standard (AES) algorithm&lt;br /&gt;
* crypto: made BASE64 from the crypto library visible and reuse it in other libraries that need base64 encoding.&lt;br /&gt;
* vision2 / model: added support for EV_PIXEL_BUFFER on EV_MODEL_PICTURE&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* refactoring: now by default the &amp;quot;rename class&amp;quot; refactoring operation also rename files.&lt;br /&gt;
* diagram tool: updated toolbar layout and style (client/supplier links are now blue, and associated labels are green. Note: those colors can be changed via the Preferences)&lt;br /&gt;
* diagram tool: by default, do not include the figures for ANY and the common types when generating diagrams.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* migrated from subversion to git for the main EiffelStudio repository (various mirrors will be updated)&lt;/div&gt;</summary>
		<author><name>Jfiat</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_24.05_Releases</id>
		<title>EiffelStudio 24.05 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_24.05_Releases"/>
				<updated>2024-06-03T13:10:39Z</updated>
		
		<summary type="html">&lt;p&gt;Jfiat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beta download: https://account.eiffel.com/downloads/channel/beta&lt;br /&gt;
&lt;br /&gt;
Stable download: https://account.eiffel.com/downloads/channel/stable&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio 24.05.... (May 2024) ==&lt;br /&gt;
&lt;br /&gt;
===Compiler===&lt;br /&gt;
* dotnet: many improvements in the support of '''.NETCore (net6.0, net7.0, net8.0, ...)''' (see the online documentation for current limitations).&lt;br /&gt;
* compiler: fixed type error in class ELSIF_EXPRESSION_B, related to BYTE_LIST.enlarge_tree&lt;br /&gt;
* compiler: Added debugging support for Eiffel .NETCore applications on Windows.&lt;br /&gt;
* dotnet: new warning to report that SCOOP concurrency is not yet available for .NET project and use instead the thread concurrency.&lt;br /&gt;
* dotnet: updated generated csproj file (used to build &amp;quot;native&amp;quot; executable, and also make it simpler to debug Eiffel .NETCore applications with VisualStudio Code).&lt;br /&gt;
* dotnet: Added pdb file generation for Eiffel .NETCore applications.&lt;br /&gt;
* dotnet: added partial support for .Net generic methods.&lt;br /&gt;
&lt;br /&gt;
===IDE===&lt;br /&gt;
* studio: added [Ctrl]+[Up] and [Ctrl]+[Down] shortcuts to scroll up or down the editor by one line.&lt;br /&gt;
* studio: added 3 '''composer''' commands (add attribute setter procedure, remove feature, add creation procedure) to assistant user in editor (see menu `Edit &amp;gt; Composer`...)&lt;br /&gt;
* studio: Added a new way to '''authentication''', using a '''&amp;quot;Sign in&amp;quot; challenge''' with the browser authentication system&lt;br /&gt;
* studio: updated the release update checker to take into account the revision number for the full version.&lt;br /&gt;
* compiler: ensure the IL environments also include the short name &amp;quot;net6.0, net7.0, ...&amp;quot; and not only the full version.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* studio: fixed regression, about displaying text longer than grid item width (fixed the ellipsis implementation)&lt;br /&gt;
* studio: fixed EiffelStudio layout deletion operation&lt;br /&gt;
* studio: fixed diagram tool &amp;quot;cancel export to PNG&amp;quot;, to really cancel and stop any export action.&lt;br /&gt;
* dotnet: fixed implementation of PLATFORM for dotnet on non Windows platforms.&lt;br /&gt;
* dotnet: improved detection of the dotnet root directory (such as $HOME/.dotnet/ , ...)&lt;br /&gt;
* espawn: fixed and improved the usage of espawn temporary file name&lt;br /&gt;
* dotnet wizard: fixed the dotnet wizard implementation.&lt;br /&gt;
* dotnet: improved implementation of object test for descendant of generic type.&lt;br /&gt;
* dotnet: fixed instance free call on inherited external features.&lt;br /&gt;
* dotnet: fixed Eiffel .Net support for builtin static features. &lt;br /&gt;
* debugger: when starting an execution via the Execution parameters dialog, always apply changes if any.&lt;br /&gt;
* various minor bug fixes (including as well typo, ...)&lt;br /&gt;
&lt;br /&gt;
===Libraries Bug fixes===&lt;br /&gt;
* vision2: do not modify anymore the EV_KEY_CONTANTS values, when used in relation with EV_KEY and EV_ACCELERATOR&lt;br /&gt;
* process: use buffer.capacity instead of .count when calling read in order to use the full capacity.&lt;br /&gt;
* docking: Fixed SD_TOOL_BAR_CONTENT.is_menu_bar if items is empty&lt;br /&gt;
* WEL, vision2: ensures wel and vision2 applications are supported by Eiffel .NETCore compilation.&lt;br /&gt;
&lt;br /&gt;
===Libraries Improvements===&lt;br /&gt;
* compression/zlib: Added ZLIB_UTILITIES to make it simpler to (un)compress a file &lt;br /&gt;
* CMS: improved the Eiffel CMS library (new cleanup hook, better redirection system, admin for node module, ...)&lt;br /&gt;
* EiffelStore: Updated implementation and configuration to make it simpler to use on unices (priority to the MYSQLINC and MYSQLLIB variables if defined, otherwise try to use the msql-config script.)&lt;br /&gt;
* EiffelWeb: Ignore the query part for URI mapping&lt;br /&gt;
* JSON: Added JSON_BASIC_SERIALIZER for convenience.&lt;br /&gt;
* JSON: The field name for type information is now customizable via the JSON_(DE)SERIALIZER_CONTEXT interface (default is &amp;quot;$TYPE&amp;quot;).&lt;br /&gt;
* Eiffel cURL: updated to version 8.5.0 of libcurl.&lt;br /&gt;
* openSSL: Eiffel OpenSSL library updated to use the version 3.2.&lt;br /&gt;
* EiffelVision2: added support for `pick_actions` on `EV_MODEL`&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* EiffelBase: Do not check anymore for VERSIONABLE conformance anymore in READABLE_INDEXABLE_ITERATION_CURSOR (rev#107717).&lt;br /&gt;
* dotnet: Added &amp;quot;-metadata_cache_path&amp;quot; description in the compiler help message.&lt;br /&gt;
* dotnet: Added a new environment variable ISE_DOTNET_ASSEMBLIES_PATH to overwrite the default location of the .Net MD Cache (under Eiffel User Files/.../dotnet/assemblies)&lt;br /&gt;
* command line: added -appinfo to get information about Eiffelstudio installation (i.e: ?, version, short_version, version_type, layout, layout.install_path, layout.user_files_path, layout.hidden_files_path, environment).&lt;br /&gt;
* compiler: on unices, to compile generated C code, use the compiler (usually gcc) instead of the specific 'ld' tool&lt;/div&gt;</summary>
		<author><name>Jfiat</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_23.09_Releases</id>
		<title>EiffelStudio 23.09 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_23.09_Releases"/>
				<updated>2023-09-27T16:32:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jfiat: /* Compiler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beta download: https://account.eiffel.com/downloads/channel/beta&lt;br /&gt;
&lt;br /&gt;
Stable download: https://account.eiffel.com/downloads/channel/stable&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio 23.09.10.7325 (September 2023) ==&lt;br /&gt;
&lt;br /&gt;
===Compiler===&lt;br /&gt;
* dotnet: added compilation support for '''.NETCore (net6.0, net7.0)''' (see the online documentation for current limitations).&lt;br /&gt;
* dotnet: removed support for .NET frameworks older than v4.0&lt;br /&gt;
&lt;br /&gt;
===IDE===&lt;br /&gt;
&lt;br /&gt;
* studio: using the environment variable `ES_CLOUD_PREFERRED_HTTP_CLIENT`, the user can force EiffelStudio to use the &amp;quot;curl&amp;quot; executable instead of libcurl or EiffelNet for the cloud account webapi client.&lt;br /&gt;
* Compiler: the compiler creates required directory recursively, including the `-project_path ..` location if it does not exist.&lt;br /&gt;
* studio: fixed the behavior of EiffelStudio when the user tries to compile first inside a read-only directory, and then to select a better one. EiffelStudio was still reporting the permission denied until EiffelStudio is relaunched.&lt;br /&gt;
* various minor bug fixes&lt;br /&gt;
&lt;br /&gt;
===Libraries Bug fixes===&lt;br /&gt;
&lt;br /&gt;
* EiffelBase: fixed the implementation of `SPECIAL.same_items` when Current and other is the same object (noticed when using same_items with immutable string objects built from `shared_substring` function).&lt;br /&gt;
* EiffelBase: fixed assertions on `TRAVERSABLE_SUBSET` and `LINEAR_SUBSET`&lt;br /&gt;
* EiffelBase: fixed implementation of `disjoint` and `symdif` from class `SUBSET_STRATEGY_GENERIC`.&lt;br /&gt;
* EiffelBase: fixed implementation of `move_item` from `LINEAR_SUBSET`&lt;br /&gt;
* http_client: fixed the `connect_timeout` implementation for the &amp;quot;libcurl&amp;quot; case.&lt;br /&gt;
&lt;br /&gt;
===Libraries Improvements===&lt;br /&gt;
* http_client: added an new implementation of http_client library using the `curl` executable (in addition to `libcurl`, `net`, there is now `curl`)&lt;br /&gt;
* http_client: when using DEFAULT_HTTP_CLIENT, it is possible to use `{HTTP_CLIENT}.force_default_client (READABLE_STRING_GENERAL)` to start testing with a specific implementation, instead of using first `libcurl`, then `net`, then `curl`.&lt;br /&gt;
&lt;br /&gt;
== BETA 23.08.10.7218 (August 2023) ==&lt;br /&gt;
* IDE: Added more information in the debugger output (modified environment variables, and timestamp for launched,stopped and quit events)&lt;br /&gt;
* dotnet: Added support for renaming and prefixing .NET classes based on namespaces (instead of assemblies)&lt;br /&gt;
* various bug fixes related to Autotest.&lt;br /&gt;
&lt;br /&gt;
== BETA 23.04.10.6768 (April 2023) ==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* IDE: Added &amp;quot;Toggle comment&amp;quot; to comment/uncomment current line/selection. The associated accelerator is Ctrl+/ .&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* IDE: Improved the impact of the zoom factor on EiffelStudio tools (especially features tool and errors&amp;amp;warnings tool)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: fixed a bug in {CONF_MODIFIED_VISITOR}.handle_class that caused random behavior of test#incr263 by unexpectedly flipping a state flag.&lt;br /&gt;
* syntax_updaer: Corrected a bug with conversion of an old ECF when an option was set to a default, but this default was different in the new ECF version, by setting an explicit value instead.&lt;br /&gt;
* EiffelBase: Fixed code iterating directly on the READABLE_STRING_(8|32).area by starting at the expected `area_lower` instead of 0. Otherwise strings created by IMMUTABLE_STRING_(8|12).shared_substring (...)  were not correctly processed by those converters.&lt;br /&gt;
* IDE: Fixed the uncomment of Eiffel lines when there was more than one block &amp;quot;--&amp;quot;.&lt;br /&gt;
* .Net (framework): Fixing location of dotnet (framework) executable in SDKs (resgen, ...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
* IDE: removed &amp;quot;Recompile overrides&amp;quot; command and associated menu/toolbar/shortcut entries because override clusters should be always recompiled, including &amp;quot;quick_melt&amp;quot; compilation mode.&lt;br /&gt;
&lt;br /&gt;
===Libraries Improvements===&lt;br /&gt;
* EiffelBase: Made classes immune to default string/character size.&lt;br /&gt;
* EiffelWEL: Improved the memory management for WEL_GDIP_IMAGE.&lt;br /&gt;
* CMS: Updated feed management to restore the `title` if set in the feed aggregration (potentially update the description as well).&lt;br /&gt;
* CMS: added basic CMS node management&lt;br /&gt;
* Gobo-Project: Updated to Gobo Eiffel version 22.01 (added gecc, geimage and gedoc)&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* IDE: import previous credential when installing a new EiffelStudio version.&lt;br /&gt;
* IDE: Updated color management when dark colors are used&lt;br /&gt;
** added various preferences to let the user choose its own colors for many UI and text elements.&lt;br /&gt;
** Use preferences for debugger tool\'s colors, so that user can choose their own colors.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* .Net: moved .Net consumer `emdc.exe` under `%ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin\emdc.exe`.&lt;br /&gt;
* .Net: added new .Net consumer `nemdc` tool to `%ISE_EIFFEL%\studio\spec\%ISE_PLATFORM%\bin\netcore` directory.&lt;br /&gt;
* Code template: added a new `to_utf_8_string_8.e` code template.&lt;/div&gt;</summary>
		<author><name>Jfiat</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_22.12_Releases</id>
		<title>EiffelStudio 22.12 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_22.12_Releases"/>
				<updated>2022-12-22T13:49:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jfiat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Current official release =&lt;br /&gt;
- See the Changelog of [[EiffelStudio 22.12 Releases]]&lt;br /&gt;
&lt;br /&gt;
= Next EiffelStudio Release=&lt;br /&gt;
&lt;br /&gt;
Beta download: https://account.eiffel.com/downloads/channel/beta&lt;br /&gt;
&lt;br /&gt;
Stable download: https://account.eiffel.com/downloads/channel/stable&lt;br /&gt;
&lt;br /&gt;
== 22.12.10.6463 (Dec 2022) ==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* New platform: macosx-armv6  (to support M1, M2)&lt;br /&gt;
* New platform: linux-arm64&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* editor: Added support for once classes in feature code completion.&lt;br /&gt;
* runtime and generated C code: updated C code to match clang expectations. Mostly related to clang optimization, and especially on ARM architecture.&lt;br /&gt;
** Fixed code generation for equality tests when the second operand is a call to a function that can allocate memory so that the first operand gets moved by GC (reproducible when compiled with clang as C compiler).&lt;br /&gt;
* wrapc: improved glue C code to support recent version of gcc.&lt;br /&gt;
* dotnet: enabled the use of the emdc.exe md consumer, as an alternative to the COM md consumer.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: fixed crash when a once class lists no creation procedures.&lt;br /&gt;
* studio: allow user to include ecf file that is a redirection (using the Browse button of the &amp;quot;Add Library&amp;quot; dialog)&lt;br /&gt;
* editor: Fixed crash on Windows, when first inserting Unicode symbol using the Symbols dialog.&lt;br /&gt;
* installation: On Windows, fixed issue preventing the EiffelStudio installations of both 32bit and 64bit versions at the same time on the same machine.&lt;br /&gt;
* studio: Fixed &amp;quot;Add cluster&amp;quot; in recursive cluster, and also allow to create a new top level cluster.&lt;br /&gt;
* dotnet: Fixed a bug that caused discarding a .NET namespace when saving an ECF from the project setting dialog.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
&lt;br /&gt;
===Libraries Improvements===&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* runtime: fixed typo preventing to use of LD environment variable to compile C code on Linux.&lt;/div&gt;</summary>
		<author><name>Jfiat</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_22.05_Releases</id>
		<title>EiffelStudio 22.05 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_22.05_Releases"/>
				<updated>2022-05-24T20:32:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jfiat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
Beta download: https://account.eiffel.com/downloads/channel/beta&lt;br /&gt;
&lt;br /&gt;
Stable download: https://account.eiffel.com/downloads/channel/stable&lt;br /&gt;
&lt;br /&gt;
== EiffelStudio 22.05.10.6292 (May 2022) ==&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*source control tool: UI enhancement (zoom support for grid and text, diff from any file in a repo), &lt;br /&gt;
*estudio(debugger): Updated debugger tools to better support editor zoom factor.&lt;br /&gt;
*wrapc: Updated wrapc/src/support/wrapc_wizard_function_generator.e class to extract only functions definitions. Added code to extract callbacks in the future.&lt;br /&gt;
*source control tool: Implemented post commit operations handling via the commit dialog (mostly git push for now)&lt;br /&gt;
*estudio(unix): fixed potential infinite recursion with modeless dialog&lt;br /&gt;
*source control tool: added &amp;quot;add&amp;quot; and &amp;quot;delete&amp;quot; scm operations&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*source control tool: fixed commit with message having double quotes, quotes, backquote for code.&lt;br /&gt;
*source control tool: Ensure any scm operation has output message. Improved the revert operation for git, by resetting added or deleted files. &lt;br /&gt;
*library(json): If no serializer has specific handling for strings, use as default JSON_STRING.&lt;br /&gt;
*iron: make sure temporary (archive) file are removed once it is uploaded.&lt;br /&gt;
&lt;br /&gt;
'''And all from previous BETA'''&lt;br /&gt;
&lt;br /&gt;
== BETA 22.04.10.6247 (April 2022) ==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
*source control: added &amp;quot;add&amp;quot; and &amp;quot;delete&amp;quot; scm operations&lt;br /&gt;
*source control: many minor UI improvements&lt;br /&gt;
*studio: added support for `{CLASS_NAME}.feature_name` in Eiffel comments.&lt;br /&gt;
*studio: include the feature indexing notes in clickable view.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
*compiler: ignore unexpected BOM character in .ecf file (fixed a crash of the compiler, if such BOM was wrongly added).&lt;br /&gt;
*compiler: Fixed bug#19838 (test#valid299) by looking through all routine IDs rather than using the first one to handle anchors on merged features.&lt;br /&gt;
*source control: Fixed usage of temp file for SVN and GIT commit, needed for multi-lines commit log.&lt;br /&gt;
*C compilation: Fixed crash of espawn and finish_freezing due to VS2022, and added support for VS2022.&lt;br /&gt;
*studio: fixed the output of creation expression in clickable view (missing end keyword, ..).&lt;br /&gt;
*tool(eiffel): added support for remote targets to the `eiffel` script tool.&lt;br /&gt;
*tool(compile_all): added support for remote targets.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
&lt;br /&gt;
===Libraries Improvements===&lt;br /&gt;
*library(jwt): Adjust token sub string (related to header, payload, and signature), to avoid unwanted spaces.&lt;br /&gt;
*library(base): Added routines to convert INTEGER_* and NATURAL_* to binary and octal string representations.&lt;br /&gt;
*library(web): if the port is already binded, the standalone httpd server will try for about 2 minutes before giving up and reporting the error. See the `max_bind_attempts` configuration. (note: mostly used on Linux during debugging session).&lt;br /&gt;
*library(json): Added a new JSON_PATH following JSON Path specification&lt;br /&gt;
*library(cms): Fixed various issues caused when the CMS url is subfolder (not at the domain.tld/ root).&lt;br /&gt;
*library(json): Added JSON_STREAM_WRITER interface to generate JSON content.&lt;br /&gt;
*library(json): Added JSON_EQUALITY_TESTER providing helper functions to compare JSON contents.&lt;br /&gt;
*library(cms): Added a back-end page to list emails sent to a specific user. Various minor UI improvements.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
*wrapc: Updated feature {EWG_C_AST_PRIMITIVE_TYPE}.corresponding_eiffel_type &lt;br /&gt;
** Mapping `unsigned` (it's a shorthand of `unsigned int`) as `NATURAL` in Eiffel.&lt;br /&gt;
** Mapping `unsigned char` as `NATURAL` in Eiffel. &lt;br /&gt;
*environment: support absolute path for EC_NAME, so it can use full path to the ec executable.&lt;br /&gt;
*compiler: Exit with -1 and unsuccessful workbench compilation (only when a system was open).&lt;/div&gt;</summary>
		<author><name>Jfiat</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_21.05_Releases</id>
		<title>EiffelStudio 21.05 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_21.05_Releases"/>
				<updated>2021-01-11T14:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jfiat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 21.11.10.6046 Releases=&lt;br /&gt;
&lt;br /&gt;
Beta download: https://ftp.eiffel.com/pub/beta/&lt;br /&gt;
&lt;br /&gt;
== 21.11.10.6046 (November 2021) ==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* 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 &amp;lt;e&amp;gt;@&amp;lt;/e&amp;gt;. For example:&lt;br /&gt;
&amp;lt;e&amp;gt;&lt;br /&gt;
    ∀ x: array ¦ (@ x.target_index \\ 2 = 0 ⇒ x &amp;gt; 0) -- All elements at even positions are positive.&lt;br /&gt;
&lt;br /&gt;
        -- Print all elements of a table prefixed with their keys.&lt;br /&gt;
    across table as y loop&lt;br /&gt;
        print (@ y.key)&lt;br /&gt;
        print (&amp;quot;: &amp;quot;)&lt;br /&gt;
        print (y)&lt;br /&gt;
        io.put_new_line&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/e&amp;gt;&lt;br /&gt;
:The existing code can be updated with &amp;lt;code&amp;gt;syntax_updater&amp;lt;/code&amp;gt; invoked with option &amp;lt;code&amp;gt;-i&amp;lt;/code&amp;gt;.&lt;br /&gt;
* library (base): Marked &amp;lt;e&amp;gt;make_from_iterable&amp;lt;/e&amp;gt; as a conversion procedure from &amp;lt;e&amp;gt;ARRAY&amp;lt;/e&amp;gt; for some container classes to enable initialization of the corresponding entities from manifest arrays of elements by reattachment. This enables writing&lt;br /&gt;
&amp;lt;e&amp;gt;&lt;br /&gt;
x: LINKED_LIST [INTEGER]&lt;br /&gt;
...&lt;br /&gt;
x := &amp;lt;&amp;lt;1, 1, 2, 3, 5, 8&amp;gt;&amp;gt; -- Create a list with elements 1, 1, 2, 3, 5, 8.&lt;br /&gt;
&amp;lt;/e&amp;gt;&lt;br /&gt;
* library (base): Added &amp;lt;e&amp;gt;{HASH_TABLE}.make_from_iterable_tuples&amp;lt;/e&amp;gt; as a creation and conversion procedure from &amp;lt;e&amp;gt;ARRAY&amp;lt;/e&amp;gt; to enable initialization from manifest arrays of tuples, for example:&lt;br /&gt;
&amp;lt;e&amp;gt;&lt;br /&gt;
y: HASH_TABLE [INTEGER, STRING]&lt;br /&gt;
...&lt;br /&gt;
y := &amp;lt;&amp;lt;[23, &amp;quot;Peter&amp;quot;], [19, &amp;quot;Mary&amp;quot;], [36, &amp;quot;Tom&amp;quot;], [32, &amp;quot;Alice&amp;quot;]&amp;gt;&amp;gt; -- Indexed by person name.&lt;br /&gt;
&amp;lt;/e&amp;gt;&lt;br /&gt;
* EiffelStudio: Added a source control management tool, supporting basic usage of Subversion and Git commands.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* EiffelStudio: Supported completion for Unicode operators defined in standard classes.&lt;br /&gt;
* EiffelStudio: Added scripts (for Unixes) to open an external editor, to open a URL, and to open a terminal.&lt;br /&gt;
* EiffelStudio: Migrated to GTK3 on non-Windows platforms (Linux, macOS, etc.).&lt;br /&gt;
* EiffelStudio: Used user-controlled editor font in several tools.&lt;br /&gt;
* compiler: Extended the error report &amp;lt;code&amp;gt;VWOE&amp;lt;/code&amp;gt; about using an operator with an operand of an unexpected type with the operator name and the associated feature name.&lt;br /&gt;
* compiler (pretty-printer): Taken any (Unicode) white-space characters into account when pretty-printing, not just a space character and a horizontal tabulation.&lt;br /&gt;
* 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.&lt;br /&gt;
* compiler (code analyzer): Disabled detection of the phrase &amp;quot;to do&amp;quot; unless it is written in capitals and without spaces, and enabled detection of &amp;quot;FIXME&amp;quot; in the comments.&lt;br /&gt;
* 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.&lt;br /&gt;
* compiler: Used the same indentation for assertion subclauses with and without tags in flat forms and pretty-printer output.&lt;br /&gt;
* library (base): Added features &amp;lt;e&amp;gt;set&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;clear&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;set_all&amp;lt;/e&amp;gt; and optimized features &amp;lt;e&amp;gt;item&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;put&amp;lt;/e&amp;gt; in &amp;lt;e&amp;gt;PACKED_BOOLEANS&amp;lt;/e&amp;gt;.&lt;br /&gt;
* tool: Ensured that &amp;lt;code&amp;gt;po_generation_tool&amp;lt;/code&amp;gt; returns a non-zero error code if processing triggers any errors.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: test#once029 — Taken into account predefined once keys specified for once creation procedures in SCOOP mode. In particular, the key &amp;lt;code&amp;gt;PROCESS&amp;lt;/code&amp;gt; guarantees that a most one object can be created for the whole system.&lt;br /&gt;
* compiler: Fixed multiple bugs related to non-conforming inheritance, making the latter usable in production code:&lt;br /&gt;
** test#noncon006 — inheritance from a frozen class triggers an error only when the corresponding parent is conforming;&lt;br /&gt;
** bug#13556 (test#noncon007) — an explicit conforming inheritance path is not necessary;&lt;br /&gt;
** bug#14381 (test#noncon010), bug#17619 (test#valid272) — selection of a replicated feature follows the conforming case;&lt;br /&gt;
** bug#17300 (test#incr408) — incremental changes to feature assertions should be handled like in the conforming case;&lt;br /&gt;
** bug#17315 (test#once020) — once-per-object features should be handled like in the conforming case;&lt;br /&gt;
** bug#18021 (test#noncon024) — dead code removal should keep features of non-conforming parents if necessary;&lt;br /&gt;
** test#noncon026 — non-conforming inheritance enables any changes to feature export status.&lt;br /&gt;
* compiler: Fixed a bug that may lead to showing wrong source code context when reported issues are associated with different files.&lt;br /&gt;
* compiler: Fixed a bug that in rare cases could lead to a crash or incorrect binaries when generating code for .NET.&lt;br /&gt;
* compiler: Fixed a bug that caused incorrect .NET code generation for a non-object call on an expanded base class.&lt;br /&gt;
* compiler: Corrected code generation for &amp;lt;e&amp;gt;CHARACTER_32.is_space&amp;lt;/e&amp;gt; to use properties defined by the Unicode standard.&lt;br /&gt;
* compiler: bug#15451 (test#attach055) — Fixed a bug that caused the compiler to report a non-existent &amp;lt;code&amp;gt;VEVI&amp;lt;/code&amp;gt; error for the feature &amp;lt;e&amp;gt;default&amp;lt;/e&amp;gt; when a reference class inherits from an expanded one.&lt;br /&gt;
* 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.&lt;br /&gt;
* compiler (pretty-printer): Corrected output for once manifest strings.&lt;br /&gt;
* compiler: test#attach131 — Fixed a bug in evaluation of the attachment status of an argument of a separate instruction.&lt;br /&gt;
* compiler: Prevented using inline local variables (iteration cursors, locals of separate instructions, object test locals) in old expressions.&lt;br /&gt;
* compiler: test#syntax076 — Removed a restriction on using forward and back-slashes for user-defined operators (the following restrictions still apply: &amp;lt;e&amp;gt;\\&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;/&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;//&amp;lt;/e&amp;gt; can only be used as binary operators).&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* compiler: Changed the semantics of non-conforming inheritance by removing automatic replication of inherited features.&lt;br /&gt;
* library (base): Replaced conforming inheritance with non-conforming one where possible and appropriate.&lt;br /&gt;
* compiler: test#lib050 — Ensured that the behavior of &amp;lt;e&amp;gt;CHARACTER_8_REF.is_space&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;CHARACTER_8.is_space&amp;lt;/e&amp;gt; does not depend on the current locale.&lt;br /&gt;
* compiler: test#attach130 — Added a validity check that the type of an inspect expression is attached when compiled in void-safe mode.&lt;br /&gt;
* compiler: Changed the defaults for the iteration loop syntax in newly created projects to access the current item by the cursor name.&lt;br /&gt;
* compiler: Changed to report an iteration form of a loop with keyword &amp;lt;e&amp;gt;is&amp;lt;/e&amp;gt; as obsolete. The contemporary syntax is to use the loop with keyword &amp;lt;e&amp;gt;as&amp;lt;/e&amp;gt; and symbol &amp;lt;e&amp;gt;@&amp;lt;/e&amp;gt; to access cursor features.&lt;br /&gt;
* compiler: Changed to report a user-defined operator &amp;lt;e&amp;gt;@&amp;lt;/e&amp;gt; as obsolete (in many cases, the bracket operator replaces it).&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* library (json): Added a date time serializer.&lt;br /&gt;
* library (json): Added the possibility to use the reflector serializer with &amp;lt;e&amp;gt;JSON_BASIC_SERIALIZATION&amp;lt;/e&amp;gt;.&lt;br /&gt;
* library (vision2): Updated the checkbox drawing, and added a new &amp;lt;e&amp;gt;is_indeterminate&amp;lt;/e&amp;gt; state.&lt;br /&gt;
* library (EiffelWeb): Fixed &amp;lt;e&amp;gt;WSF_REQUEST&amp;lt;/e&amp;gt; when searching for a table item with the name such as &amp;lt;code&amp;gt;tb[k1][k2]&amp;lt;/code&amp;gt;.&lt;br /&gt;
* library (cms): Improved the administration part, and followed recommendation for email sending.&lt;br /&gt;
* library (vision2): Switched to GTK3 on non-Windows platforms (to use GTK2, set the project variable &amp;lt;code&amp;gt;vision_implementation&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;gtk2&amp;lt;/code&amp;gt;).&lt;/div&gt;</summary>
		<author><name>Alexander Kogtenkov</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_20.11_Releases</id>
		<title>EiffelStudio 20.11 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_20.11_Releases"/>
				<updated>2020-08-31T14:50:58Z</updated>
		
		<summary type="html">&lt;p&gt;Alexander Kogtenkov: /* 20.11.xx.yyyy (Month Day 2020) */ Updated the version and the release date.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 20.11.x Releases=&lt;br /&gt;
&lt;br /&gt;
Beta download: https://ftp.eiffel.com/pub/beta/&lt;br /&gt;
&lt;br /&gt;
== 20.11.10.5048 (December 21st 2020) ==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* compiler: Supported once classes.&lt;br /&gt;
* EiffelStudio (wizards): Added WrapC wizard.&lt;br /&gt;
* EiffelStudio: Added pretty printer notification.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* EiffelStudio: Added a zoom indicator in the Zoom menu.&lt;br /&gt;
* EiffelStudio (AutoTest): Updated to make it compatible with void safety.&lt;br /&gt;
* compiler: Extended the message about successful compilation with a notification if warnings were reported.&lt;br /&gt;
* EiffelStudio (editor): Made start and stop symbols from Unicode forms of loop instructions to be pairs of matching &amp;quot;parentheses&amp;quot;.&lt;br /&gt;
* EiffelStudio (editor): Updated grammar rules for syntax highlighting to match those used by teh compiler.&lt;br /&gt;
* EiffelStudio (debugger): Added preferences to control default values of CAT-call detection in the debugger and reporting in the console.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler (pretty printer): Fixed bug#19667 (test#pretty033) by making sure a space is printed before delayed arguments of an agent.&lt;br /&gt;
* compiler (pretty printer): Fixed test#pretty034 by correcting output for feature export adaptation clause.&lt;br /&gt;
* EiffelStudio: Restore focus to previous focused widget when raising a message notification.&lt;br /&gt;
* tool (Eiffel script): Fixed cache location when using an ECF file with multiple application targets.&lt;br /&gt;
* EiffelStudio: Fixed the customized formatter editor dialog.&lt;br /&gt;
* EiffelStudio: Fixed crash while using the project settings on linux (bug#19687).&lt;br /&gt;
* EiffelStudio (AutoTest): Fixed issue with AutoTest Extracted Test Cases&lt;br /&gt;
* EiffelStudio (AutoTest): Fixed issue, feature call on void target with Autotest Random generator&lt;br /&gt;
* compiler (code analyzer): Significantly reduced the number of false positives when checking for &amp;lt;code&amp;gt;CA022&amp;lt;/code&amp;gt; violations (unreachable code).&lt;br /&gt;
* EiffelStudio (debugger): Fixed a bug that prevented correct saving and restoring of CAT-call handling settings.&lt;br /&gt;
&lt;br /&gt;
===Feature removed===&lt;br /&gt;
* compiler: Dropped support for obsolete syntax with exclamation marks:&lt;br /&gt;
** creation instruction/expression: use &amp;lt;e&amp;gt;create x&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;create {FOO} bar.make&amp;lt;/e&amp;gt; instead of &amp;lt;e&amp;gt;!!x&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;!FOO!bar.make&amp;lt;/e&amp;gt;;&lt;br /&gt;
** type attachment marks: use &amp;lt;e&amp;gt;attached&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;detachable&amp;lt;/e&amp;gt; instead of marks &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; respectively.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* delivery: removed the &amp;quot;experimental&amp;quot; folder from the delivery.&lt;br /&gt;
* EiffelStudio: Added scripts (for Unixes) in &amp;lt;code&amp;gt;tools/spec/../bin&amp;lt;/code&amp;gt; to open external editor, launch URL, and open terminal.&lt;br /&gt;
* EiffelStudio: Updated Features tools, collapsing inheritance sub-tree by default.&lt;br /&gt;
* library (vision): Marked &amp;lt;e&amp;gt;{EV_ANY}.copy&amp;lt;/e&amp;gt; as obsolete (it is non-obsolete only in descendants that redefine it).&lt;br /&gt;
&lt;br /&gt;
===Libraries improvements===&lt;br /&gt;
* http: Improved support for RFC 3339 (a profile of ISO 8601)&lt;br /&gt;
* web cms: improved random value generation&lt;br /&gt;
* web cms: improved authentication related to user not yet validated&lt;br /&gt;
* eiffelweb: &amp;quot;application/force-download&amp;quot; is not a standard MIME content type, so use &amp;quot;application_octet_stream&amp;quot; instead as default.&lt;br /&gt;
* web cms: added support for recaptcha v3&lt;br /&gt;
* web cms: improved the custom block module&lt;br /&gt;
* web cms: improved web form manipulation and html generation&lt;br /&gt;
* vision2: added EV_LINK_LABEL and EV_HIGHLIGHT_LINK_LABEL (to mimic web link)&lt;br /&gt;
* uri_launcher: Moved uri_launcher library from Eiffel framework to library/runtime/process/uri_launcher&lt;br /&gt;
* base_extension: Added  class TOPOLOGICAL_SORTER used to produce a total order on a set of elements having only a partial order.&lt;br /&gt;
* 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]&lt;br /&gt;
* base: Added a feature `to_hexa_digit` to character classes to convert a hexadecimal (Unicode) digit character to the corresponding numeric value.&lt;br /&gt;
&lt;br /&gt;
===New libraries===&lt;br /&gt;
* Multiple new wrappers for C libraries:&lt;br /&gt;
{| style=&amp;quot;border: solid 1px #ccc;&amp;quot;&lt;br /&gt;
!Wrapper&lt;br /&gt;
!Description of C library&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.11/package/99BB5A06-CBC6-4C32-952A-9BD014E135B2 wrap_mpack]&lt;br /&gt;
|mpack is a C implementation of an encoder and decoder for the [MessagePack](https://msgpack.org/) serialization format.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.11/package/691C5109-A19B-47B7-8976-4E60AEB4FD87 wrap_cairo]&lt;br /&gt;
|Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window&lt;br /&gt;
System (via both Xlib and XCB), quartz, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends&lt;br /&gt;
include OpenGL, BeOS, OS/2, and DirectFB.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.11/package/B3D0D18C-84CE-4021-98A5-E2E84C8722A6 wrap_rsvg]&lt;br /&gt;
|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.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Libraries bug fixes===&lt;br /&gt;
* sqlite3: Fixed SQLITE text containing null character&lt;br /&gt;
* web cms: Updated core and authentication modules to remove potential vulnerabilities (js, svg script in url).&lt;br /&gt;
* web cms: Fixed a crash of the &amp;quot;roc&amp;quot; installer tool when a module had no &amp;quot;site&amp;quot; folder.&lt;br /&gt;
* base: Corrected preconditions of shift operations on integral numbers that might not work when shift count is equal to the number of bits.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* libraries: Removed the &amp;lt;code&amp;gt;*-safe.ecf&amp;lt;/code&amp;gt; configuration files because they became useless with introduction of capabilities.&lt;/div&gt;</summary>
		<author><name>Alexander Kogtenkov</name></author>	</entry>

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_20.05_Releases</id>
		<title>EiffelStudio 20.05 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_20.05_Releases"/>
				<updated>2020-05-12T08:24:23Z</updated>
		
		<summary type="html">&lt;p&gt;Alexander Kogtenkov: /* 20.05.10.4470 (17/06/2020) */ Formatted date as in previous releases.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 20.05.x Releases=&lt;br /&gt;
&lt;br /&gt;
Beta download: https://ftp.eiffel.com/pub/beta/&lt;br /&gt;
&lt;br /&gt;
== 20.05.10.4470 (June 17th 2020) ==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* EiffelStudio: Added the new Wrap_c tool.&lt;br /&gt;
* EiffelStudio: Added command line option  &amp;lt;code&amp;gt;-reset_ide_layout&amp;lt;/code&amp;gt; to reset the IDE layout (mostly docking setting for now, usually to recover from bad crash).&lt;br /&gt;
* library (base): Added &amp;lt;e&amp;gt;READABLE_STRING&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;IMMUTABLE_STRING&amp;lt;/e&amp;gt; as aliases to sized versions of string classes.&lt;br /&gt;
* compiler: Supported a mapping from &amp;lt;e&amp;gt;STRING&amp;lt;/e&amp;gt; (and variations) to &amp;lt;e&amp;gt;STRING_32&amp;lt;/e&amp;gt; (and variations).&lt;br /&gt;
* compiler: Supported multi-branch expressions that are similar to multi-branch instructions, but &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;Then_part&amp;lt;/code&amp;gt;s and &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;Else_part&amp;lt;/code&amp;gt; contain expressions instead of instruction sequences.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* EiffelStudio: Added Unicode support in the editor search facilities.&lt;br /&gt;
* EiffelStudio: Improved account sign in solution.&lt;br /&gt;
* tools (eiffel): Improved detection of application targets.&lt;br /&gt;
* compiler (code analyzer): Avoided false positives for unneeded parentheses around expressions (&amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;CA023&amp;lt;/code&amp;gt;).&lt;br /&gt;
* library (base): Updated character properties to use Unicode 13.0.0.&lt;br /&gt;
* library: Updated some libraries to be compilable when &amp;lt;e&amp;gt;STRING&amp;lt;/e&amp;gt; (and variants) is mapped to &amp;lt;e&amp;gt;STRING_32&amp;lt;/e&amp;gt; (and variants): base, base_extension, time, base_process, process, net, diff, wel, testing.&lt;br /&gt;
* library (base): Added [https://www.eiffel.org/blog/Alexander%20Kogtenkov/2020/06/unicode-aliases Unicode aliases] for existing features in classes &amp;lt;e&amp;gt;BOOLEAN&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;COMPARABLE&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;NUMERIC&amp;lt;/e&amp;gt; and their descendants.&lt;br /&gt;
* compiler: Changed evaluation of untyped manifest strings to treat them as being of type &amp;lt;e&amp;gt;STRING_32&amp;lt;/e&amp;gt; if they contain characters with code points above 255.&lt;br /&gt;
&lt;br /&gt;
===Libraries Improvements===&lt;br /&gt;
* library (sqlite3): Updated SQLite3 C code to version 3.31.1 - 2020-01-27.&lt;br /&gt;
* library (eiffelweb): Improved web form html generation, especially for select and type checkbox&lt;br /&gt;
* library (smarty): Added support for manifest string in condition, such as {if expression=&amp;quot;$foo ~'bar'&amp;quot;} ...{/if}  .&lt;br /&gt;
* library (cms): improved database connection, and error handling during connection.&lt;br /&gt;
* library (wikitext): Updated wikitext xhtml generator to follow recommendations from https://validator.w3.org/&lt;br /&gt;
* library (curl): Updated cURL binaries using static linking of Microsoft's C RunTime (CRT) to avoid dependency on vcruntime140.dll.&lt;br /&gt;
* library (base): Moved built-in routines to &amp;lt;e&amp;gt;ISE_RUNTIME&amp;lt;/e&amp;gt;, and also from &amp;lt;e&amp;gt;WEL_IDENTIFIED&amp;lt;/e&amp;gt; to &amp;lt;e&amp;gt;IDENTIFIED_ROUTINES&amp;lt;/e&amp;gt;.&lt;br /&gt;
* library (base): Added support for simpler Unicode output in the console based on new &amp;lt;e&amp;gt;PLAIN_TEXT_FILE.put_string_32&amp;lt;/e&amp;gt;.&lt;br /&gt;
* library (cms): Improved authentication implementation.&lt;br /&gt;
&lt;br /&gt;
===New libraries===&lt;br /&gt;
* Multiple new wrappers for C libraries:&lt;br /&gt;
{| style=&amp;quot;border: solid 1px #ccc;&amp;quot;&lt;br /&gt;
!Wrapper&lt;br /&gt;
!Description of C library&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.05/package/67922189-E85C-4375-A4C3-7779E6000739 wrap_yaml]&lt;br /&gt;
|LibYAML is a YAML parser and emitter library.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.05/package/46827915-EF60-46E2-B953-BC0FE61CB8C6 wrap_sdl]&lt;br /&gt;
|Simple DirectMedia Layer is a cross-platform development library designed to provide low-level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award-winning catalog and many Humble Bundle games.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.05/package/DDB3B029-7254-47BE-BBC9-78EAFC432821 wrap_libusb]&lt;br /&gt;
|libusb is a C library that provides generic access to USB devices. It is intended to be used by developers to facilitate the production of applications that communicate with USB hardware. It is portable: Using a single cross-platform API, it provides access to USB devices on Linux, macOS, Windows, etc.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.05/package/0D27165B-283D-426D-B188-66B4742561D6 wrap_quirc]&lt;br /&gt;
|Quirc is a C library for scanning QR codes.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.05/package/62E8BE93-F29C-4F84-BF28-7F66350F4368 wrap_lz4]&lt;br /&gt;
|Extremely fast compression library.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.05/package/D7DE54E6-377F-4643-BFBD-683431455385 wrap_libqrencode]&lt;br /&gt;
|Libqrencode is a fast and compact library for encoding data in a QR Code, a 2D symbology that can be scanned by handy terminals such as a smartphone. The capacity of QR Code is up to 7000 digits or 4000 characters and has high robustness.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.05/package/9619DCEA-F6D5-41C9-9256-B52DBC389436 wrap_libgit2]&lt;br /&gt;
|libgit2 is a portable, pure C implementation of the Git core methods provided as a re-entrant linkable library with a solid API, allowing you to write native speed custom Git applications in any language which supports C bindings.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.05/package/ACF5FAB2-A405-42D0-8D46-137B3E1E901B wrap_gsl]&lt;br /&gt;
|The GNU Scientific Library (GSL) is a collection of routines for numerical computing.&lt;br /&gt;
|-&lt;br /&gt;
|[https://iron.eiffel.com/repository/20.05/package/9EBBF105-A717-4403-BFF7-BE26D28B0ADC wrap_tidy]&lt;br /&gt;
|Libtidy is a C static and dynamic library that developers can integrate into their applications in order to bring all of HTML Tidy's power to your favorite tools. libtidy is used today in desktop applications, web servers, and more.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* EiffelStudio: When forcing the reload of current editor (Ctrl-R), open a confirmation dialog if file is modified.&lt;br /&gt;
* EiffelStudio: Fixed display of variables and type mappings in project settings.&lt;br /&gt;
* EiffelStudio: Improved the code completion popup dialog (filter, Unicode, ...)&lt;br /&gt;
* library (feed): Improved RSS2 and ATOM implementation for validation.&lt;br /&gt;
* library (xml): Escape any non ASCII character.&lt;br /&gt;
* compiler: test#final134 — Fixed a bug that may cause memory corruption in finalized mode when a feature with an argument of a reference type has a single instruction with a single call which is instance-free and uses the argument.&lt;br /&gt;
* compiler: test#exec347 — Fixed a bug that might cause memory corruption or a crash if the application uses a feature argument as an anchor without using the argument value.&lt;br /&gt;
* EiffelStudio: Fixed bugs causing clickable formats to report an error when restricted or symbolic forms of loops are used.&lt;br /&gt;
* EiffelStudio: Fixed rendering of symbolic forms of loops in a clickable format and stepping through them in the debugger.&lt;br /&gt;
* compiler: bug#19647 (test#attach129) — Fixed a bug that might cause a self-initializing attribute of an attached type to remain void if it is not properly set by a creation procedure, has body, and the body does not set result to non-void value.&lt;br /&gt;
* compiler: bug#19637 (test#syntax075) — Fixed a bug that prevented from using multiple feature aliases in renaming.&lt;br /&gt;
* compiler: Fixed a potential bug when a wrong type can be computed for tuples, arrays, conditional and multi-branch expressions with mutual nesting.&lt;br /&gt;
* EiffelStudio: Fixed a bug when non-existing class options were checked against computed class options rather than explicitly specified ones that caused errors when a class from a parent cluster had options (sample scenario: compile cURL, open &amp;lt;e&amp;gt;CURL_CODES&amp;lt;/e&amp;gt; in the editor, and recompile: the class could not be found in nested clusters).&lt;br /&gt;
&lt;br /&gt;
===Features removed===&lt;br /&gt;
* library (base): Marked &amp;lt;e&amp;gt;{READABLE_STRING_GENERAL}.plus&amp;lt;/e&amp;gt; as obsolete to avoid potential data loss when precondition of the feature is not maintained.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* library (base): Changed behavior of &amp;lt;e&amp;gt;{CHARACTER_8}.to_lower&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;{CHARACTER_8}.to_upper&amp;lt;/e&amp;gt; (as well as versions for &amp;lt;e&amp;gt;CHARACTER_8_REF&amp;lt;/e&amp;gt;), as well as property queries, to interpret characters with codes 128-255 according to ISO 8859-1.&lt;br /&gt;
* library (base): Renamed &amp;lt;e&amp;gt;{READABLE_STRING_GENERAL}.plus&amp;lt;/e&amp;gt; in descendants and added sized variants of feature &amp;lt;e&amp;gt;plus&amp;lt;/e&amp;gt; to sized variants of strings.&lt;br /&gt;
* library (base): Added the following implicit conversions:&lt;br /&gt;
** &amp;lt;e&amp;gt;IMMUTABLE_STRING_8&amp;lt;/e&amp;gt; → &amp;lt;e&amp;gt;READABLE_STRING_32&amp;lt;/e&amp;gt;;&lt;br /&gt;
** &amp;lt;e&amp;gt;IMMUTABLE_STRING_GENERAL&amp;lt;/e&amp;gt; → &amp;lt;e&amp;gt;IMMUTABLE_STRING_32&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;READABLE_STRING_32&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;STRING_32&amp;lt;/e&amp;gt;;&lt;br /&gt;
** &amp;lt;e&amp;gt;READABLE_STRING_GENERAL&amp;lt;/e&amp;gt; → &amp;lt;e&amp;gt;IMMUTABLE_STRING_32&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;READABLE_STRING_32&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;STRING_32&amp;lt;/e&amp;gt;;&lt;br /&gt;
** &amp;lt;e&amp;gt;STRING_GENERAL&amp;lt;/e&amp;gt; → &amp;lt;e&amp;gt;IMMUTABLE_STRING_32&amp;lt;/e&amp;gt;.&lt;br /&gt;
* compiler: Changed the list of expressions that are allowed to be used in object tests without an explicit type, e.g. &amp;lt;e&amp;gt;Current&amp;lt;/e&amp;gt; cannot be used anymore, because it is always attached and most probably such an expression indicates an error, and allowed to use any expression in an object test as soon as there is an explicit type.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* library(curl): better error message.&lt;br /&gt;
* library(curl): added SFTP example.&lt;br /&gt;
* library(gobo): updated to Gobo 19.11&lt;/div&gt;</summary>
		<author><name>Jfiat</name></author>	</entry>

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

	<entry>
		<id>https://dev.eiffel.com/EiffelStudio_19.05_Releases</id>
		<title>EiffelStudio 19.05 Releases</title>
		<link rel="alternate" type="text/html" href="https://dev.eiffel.com/EiffelStudio_19.05_Releases"/>
				<updated>2018-12-12T12:41:14Z</updated>
		
		<summary type="html">&lt;p&gt;Alexander Kogtenkov: /* 19.05.10.3187 (May 21st 2019, beta 19.05) */ Removed empty sections.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Releases]]__NOTOC__{{ReleaseHistoryHeader}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= EiffelStudio 19.05.x Releases=&lt;br /&gt;
&lt;br /&gt;
Beta download: https://ftp.eiffel.com/pub/beta/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==19.05.10.3187 (May 21st 2019, beta 19.05)==&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: test#exec374 — Made sure that features &amp;lt;e&amp;gt;is_deep_equal&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;is_equal&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;standard_is_equal&amp;lt;/e&amp;gt; for real numbers work the same way as equality tests.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* compiler and run-time: test#final130, test#final131, test#final132 — Ensured that an object of a class that has been removed due to dead code removal cannot be created via reflection, deserialization or storable facilities.&lt;br /&gt;
&lt;br /&gt;
==19.05.10.3131 (May 06th 2019, beta 19.04)==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* studio: Added &amp;quot;Symbols&amp;quot; panel in feature completion dialog (in addition to features, and templates), it lists all available Unicode symbols.&lt;br /&gt;
* studio: Added &amp;quot;Update manager&amp;quot; to handle EiffelStudio update notifications of new releases (beta|stable).&lt;br /&gt;
* library (uri): Added support for IDNA (Internationalized Domain Names in Applications), using Punycode encoding.&lt;br /&gt;
* library (scoop_patterns): Added an example to demonstrate CP_SED_CONTAINER which adds a simple solution to copy an object from a scoop processor to another using SED facilities.&lt;br /&gt;
* library (base): Added features to &amp;lt;e&amp;gt;REAL_32&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;REAL_64&amp;lt;/e&amp;gt; to perform comparison compliant to the standard IEEE 754 (the feature names start with &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;ieee_&amp;lt;/code&amp;gt;, e.g. &amp;lt;e&amp;gt;ieee_is_less&amp;lt;/e&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: bug#16555 (test#final088) — Fixed a bug that caused missing void target checks when inlining in finalized mode was enabled.&lt;br /&gt;
* compiler: Fixed minor issues with capabilities settings when manually edited, and capability comes before option declaration.&lt;br /&gt;
* wizards: Fixed EiffelWeb wizard execution that was hanging EiffelStudio.&lt;br /&gt;
* compiler: Fixed AST character position for Unicode operator (issue raised when the token has only one Unicode character).&lt;br /&gt;
* compiler: test#exec374 — Made sure comparison of REAL numbers works the same way for classic and .NET mode.&lt;br /&gt;
* compiler: test#exec374 — Corrected code generation for REAL numbers to handle total order as well as IEEE 754 standard as expected.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* compiler: Added a warning &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;VD81&amp;lt;/code&amp;gt; for compiling a project when the setting for total order on reals is disabled. {{Recommended | Existing projects should be updated to enable total order on reals because otherwise they will be flagged with an error in the future releases.}}&lt;br /&gt;
* compiler: Unless specified otherwise (explicitly, or implicitly when using project configurations created by an earlier version of EiffelStudio), the setting for total order on reals is enabled by default.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* run-time: Replaced &amp;lt;code lang=&amp;quot;C&amp;quot;&amp;gt;sys_siglist[sig]&amp;lt;/code&amp;gt; by &amp;lt;code lang=&amp;quot;C&amp;quot;&amp;gt;strsignal(sig)&amp;lt;/code&amp;gt; to allow compiling the run-time on wider set of platforms.&lt;br /&gt;
* library (base): Used built-in feature instead of external ones in &amp;lt;e&amp;gt;ISE_RUNTIME&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;REFLECTED_COPY_SEMANTICS_OBJECT&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;REFLECTOR&amp;lt;/e&amp;gt;.&lt;br /&gt;
* run-time: Added macros for built-in features for &amp;lt;e&amp;gt;ISE_RUNTIME&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;REFLECTED_COPY_SEMANTICS_OBJECT&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;REFLECTOR&amp;lt;/e&amp;gt;.&lt;br /&gt;
* compiler: Made settings dependent on ECF schema version.&lt;br /&gt;
&lt;br /&gt;
==19.05.10.3044 (April 02nd 2019, beta 19.03)==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
&lt;br /&gt;
* compiler: Added a new dead code removal level, now there are 3 possible variants of the optimization:&lt;br /&gt;
** none — code removal is not performed;&lt;br /&gt;
** feature — code removal is based on feature call graph analysis;&lt;br /&gt;
** all — in addition to the feature call analysis, only classes that are used as targets as object creation or marked as visible are kept in the system.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* compiler: bug#15876 (test#final081) — Fixed a bug causing compiler crash when compiling code a redeclaration of an external feature into a constant in finalized mode with inlining.&lt;br /&gt;
* compiler: bug#17957 (test#final111) — Fixed a bug causing incorrect behavior at run-time for a non-object call on a qualified anchored type with a formal generic when inlining is enabled is finalized mode.&lt;br /&gt;
* compiler: bug#19532 (test#final127) — Fixed a bug causing an object call to a wrong feature in finalized mode when the original feature is an external one.&lt;br /&gt;
* compiler: bug#15853 (test#exec313) — Fixed a bug causing a non-object call to a wrong feature on the type &amp;lt;e&amp;gt;like Curent&amp;lt;/e&amp;gt; in finalized mode when the original feature is an external one.&lt;br /&gt;
* compiler: bug#19507 (test#scoop082) — Fixed a bug causing incorrect C code generation for a separate instruction in a feature without arguments triggering C compilation errors under certain conditions.&lt;br /&gt;
* compiler: test#final045 — Fixed a bug that caused the compiler to terminate with an exception when finalizing code after incremental changes in the buggy source code using formal generics' creation constrains combined with renaming.&lt;br /&gt;
* studio: bug#19531 Fixed metrics tool by ensuring class browser set the 3rd column text only if it exists.&lt;br /&gt;
&lt;br /&gt;
==19.05.10.2945 (March 08th 2019, beta 19.02)==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* Added the possibility to insert unicode symbols using the IDE feature completion (see $ISE_EIFFEL/eifinit/unicode_symbols.cfg).&lt;br /&gt;
* New &amp;lt;e&amp;gt;EXECUTION_ENVIRONMENT.temporary_directory_path&amp;lt;/e&amp;gt;.&lt;br /&gt;
* New feature &amp;lt;e&amp;gt;FILE.make_open_temporary(_with_prefix)&amp;lt;/e&amp;gt; to create temporary file or folder. This should be used to replace obsolete &amp;lt;e&amp;gt;FILE_NAME.make_temporary&amp;lt;/e&amp;gt;.&lt;br /&gt;
* Dead code removal detects when instances of classes are not created and removes code associated with them. If a class should be part of the system because it is created indirectly (using reflection or storable mechanism), it should be marked as visible in the project configuration. With this option, executable size becomes 10% smaller on average (on Windows).&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* Optimized code generation in finalized mode for feature calls by considering polymorphic status of calls to routines and attributes separately.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* library (json): REAL NaN, Negative and Positive Infinity values are serialized as &amp;quot;null&amp;quot; (as JSON has no support for such values)&lt;br /&gt;
* compiler: consider that empty value or unset environment variables represent the same value for ecf variables.&lt;br /&gt;
* compiler: bug#17331 (test#once021) — Fixed a bug causing unresolved symbols at link time when a once-per-object calls a precursor with a formal generic return type.&lt;br /&gt;
* compiler: bug#15874 (test#final080), bug#18012 (test#final113), test#final124 — Fixed a bug that led to ignoring an attribute body when inlining in finalized mode was enabled.&lt;br /&gt;
* compiler: bug#19520 remote parent target is not readonly.&lt;br /&gt;
* compiler: bug#16951 (test#incr368), bug#17257 (test#incr403), bug#17305 (test#incr410), bug#17308 (test#incr412) — Fixed a bug causing incorrect recompilation for code involving qualified anchored types.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* Added output of classes that are empty or removed to the file &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;REMOVED&amp;lt;/code&amp;gt; in finalized mode.&lt;br /&gt;
&lt;br /&gt;
===Developer changes===&lt;br /&gt;
* Updated contrib/library/gobo to Gobo v4.3 . {{Red|*WARNING:* you may need to add to your ecf file the libraries &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;gobo_(lexical|parse)_skl.ecf&amp;lt;/code&amp;gt;, in addition to &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;gobo_(lexical|parse)&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
==19.05.10.2756 (February 01st 2019, beta 19.01)==&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
*EiffelStudio (error): Added an automated fix for violation of &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;VDRS(4)&amp;lt;/code&amp;gt; that removes the associated feature name from the corresponding subclause &amp;lt;e&amp;gt;redefine&amp;lt;/e&amp;gt;.&lt;br /&gt;
*library (base): Added creation procedures &amp;lt;e&amp;gt;make_open_temporary&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;make_open_temporary_with_prefix&amp;lt;/e&amp;gt; to the class &amp;lt;e&amp;gt;FILE&amp;lt;/e&amp;gt; to create temporary files.&lt;br /&gt;
*library (base): Added class features &amp;lt;e&amp;gt;null_path&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;null_name&amp;lt;/e&amp;gt; to the class &amp;lt;e&amp;gt;FILE&amp;lt;/e&amp;gt;.&lt;br /&gt;
*library (OpenSSL): Added TLSv1.3 support, added creation procedures &amp;lt;e&amp;gt;make_as_tls_server&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;make_as_tls_client&amp;lt;/e&amp;gt; to the class &amp;lt;e&amp;gt;SSL_CONTEXT&amp;lt;/e&amp;gt; to create flexible TLS capable server/client context, the supported protocols are SSLv3, TLSv1, TLSv1.1, TLSv1.2 and TLSv1.3.&lt;br /&gt;
*library (EiffelNetSSL): Added features &amp;lt;e&amp;gt;set_options&amp;lt;/e&amp;gt; to change the SSL ctx options as defined here [https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_options.html SSL_CTX_set_options] and &amp;lt;e&amp;gt;clear_options&amp;lt;/e&amp;gt; to clear CTX options, &amp;lt;e&amp;gt;set_max_protocol_version&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;set_min_protocol_version&amp;lt;/e&amp;gt;, &amp;lt;e&amp;gt;max_proto_version&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;min_proto_version&amp;lt;/e&amp;gt; for configured version or 0 for auto-configuration of highest/lowest protocol to the class &amp;lt;e&amp;gt;SSL_SOCKET&amp;lt;/e&amp;gt;.&lt;br /&gt;
*library (WEL): Added features &amp;lt;e&amp;gt;dpi_for_monitor&amp;lt;/e&amp;gt; to get dots per inch (dpi) of a display and &amp;lt;e&amp;gt;set_process_dpi_awaerness_per_monitor&amp;lt;/e&amp;gt; to class &amp;lt;e&amp;gt;WEL_API&amp;lt;/e&amp;gt;&lt;br /&gt;
*compiler: Workbench C code is not generated when performing finalized compilation.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* EiffelStudio (error): Provided location for violations of &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;VDRS (4)&amp;lt;/code&amp;gt;.&lt;br /&gt;
* EiffelStudio (error): Supported a possibility to open all classes that are fixed automatically in the editor and to remember this choice for all subsequent fixes. The setting is also available in the preferences.&lt;br /&gt;
* EiffelStudio (dpi): Added basic support for high dpi only on Windows.&lt;br /&gt;
* Library (wikitext): accepts absolute path in external wiki link (such as [/path/to/page a page]).&lt;br /&gt;
* Debugger: extended support for local variable stone in relation with the debugger.&lt;br /&gt;
&lt;br /&gt;
===Bug fixes===&lt;br /&gt;
* library (logging): Fixed a C compiler warning for the call to the feature &amp;lt;code lang=&amp;quot;C&amp;quot;&amp;gt;syslog&amp;lt;/code&amp;gt; that might lead to potential vulnerability if a message has embedded format specifiers.&lt;br /&gt;
* compiler: bug#19437 (test#free025) — Fixed a bug preventing validity checks for class status of features used in unqualified calls in arguments to qualified calls inside a class feature (&amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;VUCR&amp;lt;/code&amp;gt;).&lt;br /&gt;
* compiler: bug#19502 — Fixed a bug with checking target dependency in project settings (ECF) when only the first occurrence of a target was checked though some other dependencies could be invalid instead.&lt;br /&gt;
* compiler: test#valid019, test#valid233, test#vdrs401, test#vdrs402, test#vdrs403 — Added missing checks for &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;VDRS(4)&amp;lt;/code&amp;gt; when a deferred feature listed in the redefine subclause is effected or merged rather than redefined. {{Red|This may trigger &amp;lt;code lang=&amp;quot;text&amp;quot;&amp;gt;VDRS(4)&amp;lt;/code&amp;gt; errors for existing code. The automatic fix associated with the bug report is backward compatible with previous versions of EiffelStudio and can be safely applied.}}&lt;br /&gt;
* EiffelStudio: Avoided a crash when all editors are closed during the first compilation of a project.&lt;br /&gt;
* Compiler: fixed compilation with remote target and no root class.&lt;br /&gt;
* EiffelStudio: fixed regression on features tool, when toggling signature display.&lt;br /&gt;
* EiffelStudio: fixed issue on gtk (linux, ...) with code completion that was not focusing back to the editor.&lt;br /&gt;
&lt;br /&gt;
===User changes===&lt;br /&gt;
* library (vision): Removed references to the obsolete class &amp;lt;e&amp;gt;EV_CURSOR&amp;lt;/e&amp;gt;, and moved conversion between &amp;lt;e&amp;gt;EV_CURSOR&amp;lt;/e&amp;gt; and &amp;lt;e&amp;gt;EV_POINTER_STYLE&amp;lt;/e&amp;gt; completely to &amp;lt;e&amp;gt;EV_CURSOR&amp;lt;/e&amp;gt;.&lt;br /&gt;
* library (base): Marked the class &amp;lt;e&amp;gt;FILE_NAME&amp;lt;/e&amp;gt; as obsolete use class &amp;lt;e&amp;gt;PATH&amp;lt;/e&amp;gt; instead&lt;/div&gt;</summary>
		<author><name>Alexander Kogtenkov</name></author>	</entry>

	</feed>