EiffelStudio 26.09 Releases

Below are not the release notes of EiffelStudio. It is the change log of EiffelStudio intermediate releases and the most important changes are highlighted in green or in red (for breaking changes). The release notes of EiffelStudio can be found at the following URL. You can also download the latest revision here. Information about other version can be found under Category:Releases.


Next EiffelStudio Release

Beta download: https://account.eiffel.com/downloads/channel/beta

Stable download: https://account.eiffel.com/downloads/channel/stable

EiffelStudio 26.09 — Changelog

Changes from <nowiki>Eiffel_25.12</nowiki> to <nowiki>Eiffel_26.09</nowiki>. 197 commits, 2026-01-02 to 2026-10-13.

Commits that were also cherry-picked into <nowiki>Eiffel_25.12</nowiki> (and so already shipped with 25.12) are left out. These are: the EV_FONT_I.copy_font precondition fix, the GTK buffer overflow fix, the first S3 client version, the first PostgreSQL EiffelStore binding, and the CMS PostgreSQL storage work. Version bumps, CD key updates and the eiffel.com / account.eiffel.com website changes are listed at the end.


Compiler

  • Smarter detection of the common type of a manifest array, so typed manifest arrays (<nowiki>{ARRAY [T]} &lt;&lt; ... &gt;&gt;</nowiki>) are needed less often with generic types. (9beecfe9dc7, merge 81cdf3751f5)
    • Fixed a segmentation fault during finalization when the merged type of a manifest array came from tuples (<nowiki>TUPLE_TYPE_A</nowiki> was rebuilt as a plain <nowiki>GEN_TYPE_A</nowiki>). (573d0dd9ec0)
    • Fixed a regression where the fallback type lost attachment and separateness: <nowiki>&lt;&lt; a, b &gt;&gt;</nowiki> with <nowiki>detachable</nowiki> elements gave <nowiki>ARRAY [ANY]</nowiki> instead of <nowiki>ARRAY [detachable ANY]</nowiki>. Fixes eweasel exec368 and exec369. (f9e59391d05)
  • Fixed "Current used before initialized" being reported for non-object calls (bug#19974). (699e6cde2a6, d88153ae5da)
  • Added eweasel tests for bugs reported by Eric Bezault (once031/032/034/035/039, valid301/305–308/310). Updated exec153, exec368 and valid148 (now expects VUAR(2)). (5a845baca76, 2731333b1ad, 1f82f939e39)

EiffelStudio (IDE)

New "Find Library" dialog (replaces "Add Library...")

  • New Find Library dialog with search, a results list and a details panel. "Add to project" includes a library in the current target and saves the project configuration. The dialog stays open, and offers to compile the project when it closes. (e560ae90430, feea2d72590)
  • "Find Library..." replaces "Add Library..." in the Tools menu, the context menu and the Groups tool. It is also a button in the project toolbar, after "Project Settings". (3337c137a8c, 51402236ff0)
  • Project Settings also use the Find Library dialog to add libraries to the edited target. (6c7e36de916)
  • Precompiled libraries are supported: a new "precompiled" category, and the dialog can replace the current precompile and offer a full recompile. (41c1bafbd09)
  • Search options: strict and non-strict matching (non-strict, the default, is <nowiki>*text*</nowiki>), a <nowiki>category:</nowiki> criterion, a Category column, and finding Libraries or Classes. (77b811d616f, de33d5daf0a)
  • Configurable categories: only <nowiki>official</nowiki>, <nowiki>contrib</nowiki> and <nowiki>precompiled</nowiki> are built in. The others come from <nowiki>package.iron</nowiki> files and IRON packages, and you choose which ones show as filters. (294b1c7a11c)
  • Details panel: description, void-safety, metadata, links, classes, IRON install/uninstall, and an editable location and name in the project, with validation. (feea2d72590)
  • The layout adapts to narrow windows: drop-down menus replace the button rows, and the panels are in viewports. (650009dcb9c)
  • "Custom" button only in the Add Library dialog, and better formatting of the details. (100d0378bef)
  • New reusable widgets <nowiki>LIBRARY_SEARCH_BOX</nowiki> and <nowiki>LIBRARY_DETAILS_BOX</nowiki>, shared with the Add Library and Add Precompile dialogs. Tests in <nowiki>TEST_LIBRARY_SEARCH_SCORER</nowiki>. (de33d5daf0a, 452c592d907)

Library scanning and IRON

  • Library scanning follows the <nowiki>project</nowiki> section of <nowiki>package.iron</nowiki>. Only the ECF files declared there count as libraries, and the package information applies to each of them. The default library name is <nowiki>&lt;package&gt;_&lt;project&gt;</nowiki>. (1642284e5e8)
  • <nowiki>package.iron</nowiki> files: added the missing <nowiki>project</nowiki> entries, removed the obsolete <nowiki>-safe</nowiki> ECFs from ise_gobo, and added a <nowiki>category</nowiki> field. (0c0a4c2acf5, 392a6405846)
  • ECFs whose library target is extended by an application target (for example, Gobo examples and tests) are no longer listed as libraries. (f7bcf612784)
  • IRON packages manager: you can register and unregister IRON repositories ("Add..." / "Remove"). (88f5fca36a9)
  • The <nowiki>iron</nowiki> tool handles the new <nowiki>category</nowiki> field. (f3b94f6c8e8)
  • Library caches and the class index are versioned and rebuilt automatically. (77b811d616f, f7bcf612784)

SCM tool

  • The status box uses a compact docking toolbar. "Check all" is a toolbar button. The commit button is a dual popup that shows the active changelist and its item count, and its menu can commit, select, create or clear a changelist. Display options moved to a drop-down menu. New <nowiki>SCM_CHANGELIST_NAME_DIALOG</nowiki>. (74ffecbb4f7, 1d88b0643ce)

Other IDE fixes

  • Diagram: the anchor of fixed BON class figures now scales with the zoom. (5acbba5700b)
  • Fixed a GTK 3 crash caused by the same rename menu item being inserted into two context menus. (5acbba5700b)
  • The main window is kept within the work area of the monitor it was last on, not always the primary monitor. (5acbba5700b)
  • Fixed an interface freeze caused by the cloud license dialog. (58a43ff98f7)
  • Better reconnection when the license API server is briefly unavailable. (5507ba80b7a)

Translations

  • Updated the <nowiki>.pot</nowiki> and <nowiki>.po</nowiki> templates with the new Find Library and IRON messages. (75ea515cabd, 95a70cdb098)
  • Filled missing entries: French (2848), Spanish (5802), German, Russian and Chinese (simplified) (79 new entries each). (c3713b8b0ee, b3300eee41e, fdaa423bbfa, 46e9a4464ec, 06a99f52b14)

Platforms and toolchain

  • New platform: <nowiki>macosx-arm64</nowiki>. (cd17f41a317)
  • Added CONFIGS for Windows ARM. (879cd93b2b3)
  • Visual Studio 2026 support in <nowiki>finish_freezing</nowiki>. (c8727317590)
  • Fixed C compilation of libfcgi with GCC 14 and later. (87c5d4b7644)
  • macOS: fixed opening URLs and files. (8745c96d6d5)
  • Linux delivery: the build docker image now uses Ubuntu 24.04. The unix packaging scripts (debian, rpm, flatpak) were updated. (8b3bca2d6a1, 760fde6c727, f845b3f6e5f, 068271e4215, bceee457906, 1f6450e2278)

Libraries

EiffelBase

  • Fixed a possible issue when the argument is an <nowiki>IMMUTABLE_STRING_8</nowiki> created with <nowiki>make_from_area_and_bounds</nowiki> (contributed by Finnian Reilly). (8d564dd1e5f)

EiffelVision2 (GTK 3)

  • HiDPI and text scaling: GNOME text scaling and <nowiki>gtk-xft-dpi</nowiki> are honored, and fonts update live when desktop settings change. (a01d4de0a48)
  • Fixes for HiDPI, multi-monitor, XWayland and drag and drop. (9688da06601)
  • Pixbuf and Cairo sizes are clamped to 1..32767 to avoid <nowiki>X_CreatePixmap BadValue</nowiki> errors. Fixed the custom cursor hotspot. (a01d4de0a48)
  • Restored UI responsiveness: GDK events are now forwarded through <nowiki>gtk_main_do_event</nowiki>, and button events are routed the GTK 2 way. (a01d4de0a48)
  • No more GLib abort ("No GSettings schemas are installed") when schemas are not on the search path, for example with GTK from MacPorts or Homebrew, or a relocated GTK. This also fixes the "hicolor theme was not found" warning. (df8685f8512)
  • Fixed a dead key followed by space (e.g. <nowiki>"</nowiki> + space) inserting a space instead of the composed character. This also applies to GTK 2. (3d1b68c581c)
  • Fixed a possible blocking behavior caused by modal windows. (5387d0db4f8)
  • Removed GLib-GObject-CRITICAL warnings (<nowiki>g_value_set_boolean</nowiki>). (185a5665df2, d75bf60a2b6)
  • Editor library: fixed void-safe code. (68f19f306e0)

Docking

  • Split positions are now restored correctly when switching layouts (for example, normal and debug mode). (87c09858d15)
  • Tab bar sizing: the tab box no longer forces a minimum width, the hidden-tabs indicator is on the right and visible, and the empty area is cleared and forwards double-click and drop. (87c09858d15)
  • Fixed compilation for GTK 2 and Cocoa. (d2883096360)

EiffelStore

  • MySQL/MariaDB: optional skipping of SSL checks, and support for the <nowiki>client</nowiki> section of <nowiki>~/.my.cnf</nowiki>. This makes MySQL 8.x <nowiki>caching_sha2_password</nowiki> setups easier. (e4e5e818fd2)
  • MySQL/MariaDB: <nowiki>connect</nowiki> forces TCP, so <nowiki>localhost</nowiki> plus a port works (e.g. docker), and no longer hides the real connection error behind "2006 Server has gone away". (0b92704f644)
  • MySQL: supports a wider range of client library versions. (0b8ea3891f1)
  • MariaDB now works on Unix: ECF, config script and linker flag fixes. (8745bc002f1, f3423c08ae1, 68c20d626d4, 11a0afbf3bb)
  • Better support of the <nowiki>DATE</nowiki> SQL type, and optional <nowiki>DECIMAL</nowiki> support, for MySQL and MariaDB. (252e4bed0e0, 229d0c3575d)
  • Uses <nowiki>UTF_CONVERTER</nowiki> for UTF encoding. (43177b23af1)
  • Updated the EiffelStore metadata. (38f806b51bf)

New libraries (contrib)

  • ePDF — read, write and encrypt PDF documents (ISO 32000-1 / PDF 1.7): parsing (xref streams, object streams, linearized files, lazy loading), full and incremental writing, fonts (standard and TrueType), images and forms, the usual filters, and RC4/AES-128/AES-256 security. (64a882163c1, 71b29da73ab)
  • EiffelTUI — a terminal user interface library inspired by Ratatui: immediate-mode, double-buffered rendering, constraint layouts, styled text, keyboard and mouse events, and many widgets (table, list, tabs, charts, canvas, tree, text input, calendar, popup...). (520df9440fb)
  • Markdown — parser, plus XHTML and AST generators, with documentation. (23c8924440b, 9a9a1b308c8)
  • YAML — parser and writer with timestamp support, helpers for common Eiffel types, and a <nowiki>yaml_json</nowiki> converter tool. (7c0712cc37d, 0209b12bde4, cb708fb0b94, a6bc471eb56, 7aa5049ecea)
  • BSON — parser and writer, a BSON/JSON converter (<nowiki>bsonjson</nowiki> tool), and a new stream library that abstracts parser input (string or file). (a4aee56e92f, b6650375c7e, 1232ccfe3be)
  • Crypto — cryptographically secure pseudorandom number generator (CSPRNG) for Unix and Windows (unstable library). (10e8eef9434, 1667bbd443b)

Other library updates

  • S3 client: CommonPrefixes retrieval (to list "directories"), string type fixes, and packaging updates. (a99a47046e7, 3c85269405f, d24b1c03794, 79e536404fd, 1cc64138921, a400e7a7578)
  • JSON: added <nowiki>JSON_VALUE.is_boolean</nowiki>. (f7b6f456a0d)
  • HTTP protocol: support for the <nowiki>Link:</nowiki> header. (867b551f158)
  • http_client: updated ECFs, new loop syntax, unique UUIDs. (b7b60f04aac, 5b2f9ab0d60, 13640b954eb)
  • EWF/WSF: <nowiki>is_whitespace</nowiki> query on request values. In the router, <nowiki>alias "-"</nowiki> removes a request method. (5c5d0c2d0ff, 593a46f9474)
  • Decimal: <nowiki>make_from_string</nowiki> accepts <nowiki>READABLE_STRING_8</nowiki>, and new <nowiki>DECIMAL_ACCESS</nowiki>. (879d2c754fe)
  • JWT: type declaration cleanup. (5531b7b816d)
  • MongoDB: fixed compilation on Unix, and fixed the books_restapi example. (227997f512c, 6e35ab671d0, 968c79d0225)
  • minizip: fixed C compilation on Unix. (60d5cc77815, 979fabd2607)
  • AutoTest: fixed a possible call on a Void target. (f1350c0fd72)
  • XEBRA: fixed compilation of the projects. (5a2f6a363af)
  • All ECFs: the <nowiki>.svn</nowiki> and <nowiki>CVS</nowiki> exclude rules are replaced by a single <nowiki>/\..*$</nowiki> rule, which excludes every dot folder. (42235e16964)

Gobo

  • Updated to Gobo 26.09: SCOOP wait conditions in <nowiki>gec</nowiki>, contract and flat-contract views in <nowiki>gedoc</nowiki>, a <nowiki>gelsp</nowiki> tooltip fix, VTEC-2 checks, and new gecop tests. (bf1fea813f4) See <nowiki>Src/contrib/library/gobo/History.md</nowiki>.

Eiffel Web CMS (unstable)

  • New <nowiki>CMS_HANDLER_ON_ROUTER</nowiki>, which keeps routes inside their handler. (eca6d835856)
  • Export and import: lists previous exports and can delete, archive or download them (permission-protected). <nowiki>CMS_API.zip_to</nowiki> and <nowiki>unzip_info</nowiki>. Fixed the export of user roles. (567315d5347, 62583034fcc, 5e2a79e8963)
  • Web API for mail handling: individual and grouped mail, with expand or smarty templates. (5dcfff54f87)
  • API key auth: key rotation, JSON payloads (name, scopes), and token expiration dates. (22d596665b8, 76fc363df83)
  • Storage: <nowiki>DECIMAL</nowiki> and <nowiki>DATE</nowiki> support, unicode fixes, and the table schema display. (6c8abc48d67, b8942b5b663, ecc7108d59f, 491f3ec2607, 37a3bed5bc8)
  • New hook <nowiki>CMS_HOOK_TEMPLATE_VALUE_TABLE_ALTER</nowiki>, <nowiki>CMS_API.json_value_from_request</nowiki>, a partial list with total count, custom values by type, and link targets. (21b9870495b, dd0744a3796, 20395609ed2, 2b11736902d, d08abc3ede5)
  • Fixes: absolute URL computation, query handling in URLs, module DB updates using build numbers, and the module configuration file extension. (5f2d95a67a5, fc4b6905570, af9d5448c0e, e82b9b20620)
  • Smaller improvements to the contact module, <nowiki>/register</nowiki> redirect, the <nowiki>/debug</nowiki> page and dates. (6fef236852d, c83847ceb6e, 8b389175968, df999c83f0a, a9dd408a2fb, b1669de9bbb, 250a561c2d8, 620421bed4a, 36a472c8d5e)