EiffelStudio 26.09 Releases

From EiffelStudio: an EiffelSoftware project
Revision as of 21:16, 21 October 2026 by Jfiat (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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 Eiffel_25.12 to Eiffel_26.09. 197 commits, 2026-01-02 to 2026-10-13.

Commits that were also cherry-picked into Eiffel_25.12 (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 ({ARRAY [T]} <<... >>) 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 (TUPLE_TYPE_A was rebuilt as a plain GEN_TYPE_A). (573d0dd9ec0)
    • Fixed a regression where the fallback type lost attachment and separateness: << a, b >> with detachable elements gave ARRAY [ANY] instead of ARRAY [detachable ANY]. 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 *text*), a category: criterion, a Category column, and finding Libraries or Classes. (77b811d616f, de33d5daf0a)
  • Configurable categories: only official, contrib and precompiled are built in. The others come from package.iron 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 LIBRARY_SEARCH_BOX and LIBRARY_DETAILS_BOX, shared with the Add Library and Add Precompile dialogs. Tests in TEST_LIBRARY_SEARCH_SCORER. (de33d5daf0a, 452c592d907)

Library scanning and IRON

  • Library scanning follows the project section of package.iron. Only the ECF files declared there count as libraries, and the package information applies to each of them. The default library name is <package>_<project>. (1642284e5e8)
  • package.iron files: added the missing project entries, removed the obsolete -safe ECFs from ise_gobo, and added a category 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 iron tool handles the new category 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 SCM_CHANGELIST_NAME_DIALOG. (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 .pot and .po 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: macosx-arm64. (cd17f41a317)
  • Added CONFIGS for Windows ARM. (879cd93b2b3)
  • Visual Studio 2026 support in finish_freezing. (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 IMMUTABLE_STRING_8 created with make_from_area_and_bounds (contributed by Finnian Reilly). (8d564dd1e5f)

EiffelVision2 (GTK 3)

  • HiDPI and text scaling: GNOME text scaling and gtk-xft-dpi 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 X_CreatePixmap BadValue errors. Fixed the custom cursor hotspot. (a01d4de0a48)
  • Restored UI responsiveness: GDK events are now forwarded through gtk_main_do_event, 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. " + 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 (g_value_set_boolean). (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 client section of ~/.my.cnf. This makes MySQL 8.x caching_sha2_password setups easier. (e4e5e818fd2)
  • MySQL/MariaDB: connect forces TCP, so localhost 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 DATE SQL type, and optional DECIMAL support, for MySQL and MariaDB. (252e4bed0e0, 229d0c3575d)
  • Uses UTF_CONVERTER 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 yaml_json converter tool. (7c0712cc37d, 0209b12bde4, cb708fb0b94, a6bc471eb56, 7aa5049ecea)
  • BSON — parser and writer, a BSON/JSON converter (bsonjson 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 JSON_VALUE.is_boolean. (f7b6f456a0d)
  • HTTP protocol: support for the Link: header. (867b551f158)
  • http_client: updated ECFs, new loop syntax, unique UUIDs. (b7b60f04aac, 5b2f9ab0d60, 13640b954eb)
  • EWF/WSF: is_whitespace query on request values. In the router, alias "-" removes a request method. (5c5d0c2d0ff, 593a46f9474)
  • Decimal: make_from_string accepts READABLE_STRING_8, and new DECIMAL_ACCESS. (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 .svn and CVS exclude rules are replaced by a single /\..*$ rule, which excludes every dot folder. (42235e16964)

Gobo

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

Eiffel Web CMS (unstable)

  • New CMS_HANDLER_ON_ROUTER, which keeps routes inside their handler. (eca6d835856)
  • Export and import: lists previous exports and can delete, archive or download them (permission-protected). CMS_API.zip_to and unzip_info. 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: DECIMAL and DATE support, unicode fixes, and the table schema display. (6c8abc48d67, b8942b5b663, ecc7108d59f, 491f3ec2607, 37a3bed5bc8)
  • New hook CMS_HOOK_TEMPLATE_VALUE_TABLE_ALTER, CMS_API.json_value_from_request, 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, /register redirect, the /debug page and dates. (6fef236852d, c83847ceb6e, 8b389175968, df999c83f0a, a9dd408a2fb, b1669de9bbb, 250a561c2d8, 620421bed4a, 36a472c8d5e)