EiffelStudio 26.09 Releases: Difference between revisions
Created page with "Category:Releases__NOTOC__{{ReleaseHistoryHeader}} __NOTOC__ = Next EiffelStudio Release= Beta download: https://account.eiffel.com/downloads/channel/beta Stable downl..." |
No edit summary |
||
| Line 11: | Line 11: | ||
= EiffelStudio 26.09 — Changelog = | = EiffelStudio 26.09 — Changelog = | ||
Changes from <code | Changes from <code>Eiffel_25.12</code> to <code>Eiffel_26.09</code>. 197 commits, 2026-01-02 to 2026-10-13. | ||
Commits that were also cherry-picked into <code | Commits that were also cherry-picked into <code>Eiffel_25.12</code> (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. | ||
---- | ---- | ||
| Line 19: | Line 19: | ||
== Compiler == | == Compiler == | ||
* Smarter detection of the common type of a manifest array, so typed manifest arrays (<code | * Smarter detection of the common type of a manifest array, so typed manifest arrays (<code>{ARRAY [T]} <<... >></code>) 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 (<code | ** Fixed a segmentation fault during finalization when the merged type of a manifest array came from tuples (<code>TUPLE_TYPE_A</code> was rebuilt as a plain <code>GEN_TYPE_A</code>). (573d0dd9ec0) | ||
** Fixed a regression where the fallback type lost attachment and separateness: <code>< | ** Fixed a regression where the fallback type lost attachment and separateness: <code><< a, b >></code> with <code>detachable</code> elements gave <code>ARRAY [ANY]</code> instead of <code>ARRAY [detachable ANY]</code>. Fixes eweasel exec368 and exec369. (f9e59391d05) | ||
* Fixed "Current used before initialized" being reported for non-object calls (bug#19974). (699e6cde2a6, d88153ae5da) | * 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) | * 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) | ||
| Line 32: | Line 32: | ||
* Project Settings also use the Find Library dialog to add libraries to the edited target. (6c7e36de916) | * 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) | * 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 <code | * Search options: strict and non-strict matching (non-strict, the default, is <code>*text*</code>), a <code>category:</code> criterion, a Category column, and finding Libraries or Classes. (77b811d616f, de33d5daf0a) | ||
* Configurable categories: only <code | * Configurable categories: only <code>official</code>, <code>contrib</code> and <code>precompiled</code> are built in. The others come from <code>package.iron</code> 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) | * 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) | * 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) | * "Custom" button only in the Add Library dialog, and better formatting of the details. (100d0378bef) | ||
* New reusable widgets <code | * New reusable widgets <code>LIBRARY_SEARCH_BOX</code> and <code>LIBRARY_DETAILS_BOX</code>, shared with the Add Library and Add Precompile dialogs. Tests in <code>TEST_LIBRARY_SEARCH_SCORER</code>. (de33d5daf0a, 452c592d907) | ||
=== Library scanning and IRON === | === Library scanning and IRON === | ||
* Library scanning follows the <code | * Library scanning follows the <code>project</code> section of <code>package.iron</code>. Only the ECF files declared there count as libraries, and the package information applies to each of them. The default library name is <code><package>_<project></code>. (1642284e5e8) | ||
* <code | * <code>package.iron</code> files: added the missing <code>project</code> entries, removed the obsolete <code>-safe</code> ECFs from ise_gobo, and added a <code>category</code> 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) | * 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) | * IRON packages manager: you can register and unregister IRON repositories ("Add..." / "Remove"). (88f5fca36a9) | ||
* The <code | * The <code>iron</code> tool handles the new <code>category</code> field. (f3b94f6c8e8) | ||
* Library caches and the class index are versioned and rebuilt automatically. (77b811d616f, f7bcf612784) | * Library caches and the class index are versioned and rebuilt automatically. (77b811d616f, f7bcf612784) | ||
=== SCM tool === | === 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 <code | * 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 <code>SCM_CHANGELIST_NAME_DIALOG</code>. (74ffecbb4f7, 1d88b0643ce) | ||
=== Other IDE fixes === | === Other IDE fixes === | ||
| Line 58: | Line 58: | ||
=== Translations === | === Translations === | ||
* Updated the <code | * Updated the <code>.pot</code> and <code>.po</code> 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) | * Filled missing entries: French (2848), Spanish (5802), German, Russian and Chinese (simplified) (79 new entries each). (c3713b8b0ee, b3300eee41e, fdaa423bbfa, 46e9a4464ec, 06a99f52b14) | ||
== Platforms and toolchain == | == Platforms and toolchain == | ||
* New platform: <code | * New platform: <code>macosx-arm64</code>. (cd17f41a317) | ||
* Added CONFIGS for Windows ARM. (879cd93b2b3) | * Added CONFIGS for Windows ARM. (879cd93b2b3) | ||
* Visual Studio 2026 support in <code | * Visual Studio 2026 support in <code>finish_freezing</code>. (c8727317590) | ||
* Fixed C compilation of libfcgi with GCC 14 and later. (87c5d4b7644) | * Fixed C compilation of libfcgi with GCC 14 and later. (87c5d4b7644) | ||
* macOS: fixed opening URLs and files. (8745c96d6d5) | * macOS: fixed opening URLs and files. (8745c96d6d5) | ||
| Line 73: | Line 73: | ||
=== EiffelBase === | === EiffelBase === | ||
* Fixed a possible issue when the argument is an <code | * Fixed a possible issue when the argument is an <code>IMMUTABLE_STRING_8</code> created with <code>make_from_area_and_bounds</code> (contributed by Finnian Reilly). (8d564dd1e5f) | ||
=== EiffelVision2 (GTK 3) === | === EiffelVision2 (GTK 3) === | ||
* HiDPI and text scaling: GNOME text scaling and <code | * HiDPI and text scaling: GNOME text scaling and <code>gtk-xft-dpi</code> are honored, and fonts update live when desktop settings change. (a01d4de0a48) | ||
* Fixes for HiDPI, multi-monitor, XWayland and drag and drop. (9688da06601) | * Fixes for HiDPI, multi-monitor, XWayland and drag and drop. (9688da06601) | ||
* Pixbuf and Cairo sizes are clamped to 1..32767 to avoid <code | * Pixbuf and Cairo sizes are clamped to 1..32767 to avoid <code>X_CreatePixmap BadValue</code> errors. Fixed the custom cursor hotspot. (a01d4de0a48) | ||
* Restored UI responsiveness: GDK events are now forwarded through <code | * Restored UI responsiveness: GDK events are now forwarded through <code>gtk_main_do_event</code>, 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) | * 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. <code | * Fixed a dead key followed by space (e.g. <code>"</code> + 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) | * Fixed a possible blocking behavior caused by modal windows. (5387d0db4f8) | ||
* Removed GLib-GObject-CRITICAL warnings (<code | * Removed GLib-GObject-CRITICAL warnings (<code>g_value_set_boolean</code>). (185a5665df2, d75bf60a2b6) | ||
* Editor library: fixed void-safe code. (68f19f306e0) | * Editor library: fixed void-safe code. (68f19f306e0) | ||
| Line 92: | Line 92: | ||
=== EiffelStore === | === EiffelStore === | ||
* MySQL/MariaDB: optional skipping of SSL checks, and support for the <code | * MySQL/MariaDB: optional skipping of SSL checks, and support for the <code>client</code> section of <code>~/.my.cnf</code>. This makes MySQL 8.x <code>caching_sha2_password</code> setups easier. (e4e5e818fd2) | ||
* MySQL/MariaDB: <code | * MySQL/MariaDB: <code>connect</code> forces TCP, so <code>localhost</code> 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) | * 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) | * MariaDB now works on Unix: ECF, config script and linker flag fixes. (8745bc002f1, f3423c08ae1, 68c20d626d4, 11a0afbf3bb) | ||
* Better support of the <code | * Better support of the <code>DATE</code> SQL type, and optional <code>DECIMAL</code> support, for MySQL and MariaDB. (252e4bed0e0, 229d0c3575d) | ||
* Uses <code | * Uses <code>UTF_CONVERTER</code> for UTF encoding. (43177b23af1) | ||
* Updated the EiffelStore metadata. (38f806b51bf) | * Updated the EiffelStore metadata. (38f806b51bf) | ||
| Line 104: | Line 104: | ||
* '''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) | * '''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) | * '''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 <code | * '''YAML''' — parser and writer with timestamp support, helpers for common Eiffel types, and a <code>yaml_json</code> converter tool. (7c0712cc37d, 0209b12bde4, cb708fb0b94, a6bc471eb56, 7aa5049ecea) | ||
* '''BSON''' — parser and writer, a BSON/JSON converter (<code | * '''BSON''' — parser and writer, a BSON/JSON converter (<code>bsonjson</code> 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) | * '''Crypto''' — cryptographically secure pseudorandom number generator (CSPRNG) for Unix and Windows (unstable library). (10e8eef9434, 1667bbd443b) | ||
=== Other library updates === | === Other library updates === | ||
* S3 client: CommonPrefixes retrieval (to list "directories"), string type fixes, and packaging updates. (a99a47046e7, 3c85269405f, d24b1c03794, 79e536404fd, 1cc64138921, a400e7a7578) | * S3 client: CommonPrefixes retrieval (to list "directories"), string type fixes, and packaging updates. (a99a47046e7, 3c85269405f, d24b1c03794, 79e536404fd, 1cc64138921, a400e7a7578) | ||
* JSON: added <code | * JSON: added <code>JSON_VALUE.is_boolean</code>. (f7b6f456a0d) | ||
* HTTP protocol: support for the <code | * HTTP protocol: support for the <code>Link:</code> header. (867b551f158) | ||
* http_client: updated ECFs, new loop syntax, unique UUIDs. (b7b60f04aac, 5b2f9ab0d60, 13640b954eb) | * http_client: updated ECFs, new loop syntax, unique UUIDs. (b7b60f04aac, 5b2f9ab0d60, 13640b954eb) | ||
* EWF/WSF: <code | * EWF/WSF: <code>is_whitespace</code> query on request values. In the router, <code>alias "-"</code> removes a request method. (5c5d0c2d0ff, 593a46f9474) | ||
* Decimal: <code | * Decimal: <code>make_from_string</code> accepts <code>READABLE_STRING_8</code>, and new <code>DECIMAL_ACCESS</code>. (879d2c754fe) | ||
* JWT: type declaration cleanup. (5531b7b816d) | * JWT: type declaration cleanup. (5531b7b816d) | ||
* MongoDB: fixed compilation on Unix, and fixed the books_restapi example. (227997f512c, 6e35ab671d0, 968c79d0225) | * MongoDB: fixed compilation on Unix, and fixed the books_restapi example. (227997f512c, 6e35ab671d0, 968c79d0225) | ||
| Line 120: | Line 120: | ||
* AutoTest: fixed a possible call on a Void target. (f1350c0fd72) | * AutoTest: fixed a possible call on a Void target. (f1350c0fd72) | ||
* XEBRA: fixed compilation of the projects. (5a2f6a363af) | * XEBRA: fixed compilation of the projects. (5a2f6a363af) | ||
* All ECFs: the <code | * All ECFs: the <code>.svn</code> and <code>CVS</code> exclude rules are replaced by a single <code>/\..*$</code> rule, which excludes every dot folder. (42235e16964) | ||
=== Gobo === | === Gobo === | ||
* Updated to Gobo 26.09: SCOOP wait conditions in <code | * Updated to Gobo 26.09: SCOOP wait conditions in <code>gec</code>, contract and flat-contract views in <code>gedoc</code>, a <code>gelsp</code> tooltip fix, VTEC-2 checks, and new gecop tests. (bf1fea813f4) See <code>Src/contrib/library/gobo/History.md</code>. | ||
=== Eiffel Web CMS (unstable) === | === Eiffel Web CMS (unstable) === | ||
* New <code | * New <code>CMS_HANDLER_ON_ROUTER</code>, which keeps routes inside their handler. (eca6d835856) | ||
* Export and import: lists previous exports and can delete, archive or download them (permission-protected). <code | * Export and import: lists previous exports and can delete, archive or download them (permission-protected). <code>CMS_API.zip_to</code> and <code>unzip_info</code>. Fixed the export of user roles. (567315d5347, 62583034fcc, 5e2a79e8963) | ||
* Web API for mail handling: individual and grouped mail, with expand or smarty templates. (5dcfff54f87) | * 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) | * API key auth: key rotation, JSON payloads (name, scopes), and token expiration dates. (22d596665b8, 76fc363df83) | ||
* Storage: <code | * Storage: <code>DECIMAL</code> and <code>DATE</code> support, unicode fixes, and the table schema display. (6c8abc48d67, b8942b5b663, ecc7108d59f, 491f3ec2607, 37a3bed5bc8) | ||
* New hook <code | * New hook <code>CMS_HOOK_TEMPLATE_VALUE_TABLE_ALTER</code>, <code>CMS_API.json_value_from_request</code>, 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) | * 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, <code | * Smaller improvements to the contact module, <code>/register</code> redirect, the <code>/debug</code> page and dates. (6fef236852d, c83847ceb6e, 8b389175968, df999c83f0a, a9dd408a2fb, b1669de9bbb, 250a561c2d8, 620421bed4a, 36a472c8d5e) | ||
Latest revision as of 21:16, 21 October 2026
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_Awas rebuilt as a plainGEN_TYPE_A). (573d0dd9ec0) - Fixed a regression where the fallback type lost attachment and separateness:
<< a, b >>withdetachableelements gaveARRAY [ANY]instead ofARRAY [detachable ANY]. Fixes eweasel exec368 and exec369. (f9e59391d05)
- Fixed a segmentation fault during finalization when the merged type of a manifest array came from tuples (
- 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*), acategory:criterion, a Category column, and finding Libraries or Classes. (77b811d616f, de33d5daf0a) - Configurable categories: only
official,contribandprecompiledare built in. The others come frompackage.ironfiles 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_BOXandLIBRARY_DETAILS_BOX, shared with the Add Library and Add Precompile dialogs. Tests inTEST_LIBRARY_SEARCH_SCORER. (de33d5daf0a, 452c592d907)
Library scanning and IRON
- Library scanning follows the
projectsection ofpackage.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.ironfiles: added the missingprojectentries, removed the obsolete-safeECFs from ise_gobo, and added acategoryfield. (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
irontool handles the newcategoryfield. (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
.potand.potemplates 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_8created withmake_from_area_and_bounds(contributed by Finnian Reilly). (8d564dd1e5f)
EiffelVision2 (GTK 3)
- HiDPI and text scaling: GNOME text scaling and
gtk-xft-dpiare 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 BadValueerrors. 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
clientsection of~/.my.cnf. This makes MySQL 8.xcaching_sha2_passwordsetups easier. (e4e5e818fd2) - MySQL/MariaDB:
connectforces TCP, solocalhostplus 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
DATESQL type, and optionalDECIMALsupport, for MySQL and MariaDB. (252e4bed0e0, 229d0c3575d) - Uses
UTF_CONVERTERfor 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_jsonconverter tool. (7c0712cc37d, 0209b12bde4, cb708fb0b94, a6bc471eb56, 7aa5049ecea) - BSON — parser and writer, a BSON/JSON converter (
bsonjsontool), 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_whitespacequery on request values. In the router,alias "-"removes a request method. (5c5d0c2d0ff, 593a46f9474) - Decimal:
make_from_stringacceptsREADABLE_STRING_8, and newDECIMAL_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
.svnandCVSexclude 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 ingedoc, agelsptooltip fix, VTEC-2 checks, and new gecop tests. (bf1fea813f4) SeeSrc/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_toandunzip_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:
DECIMALandDATEsupport, 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,
/registerredirect, the/debugpage and dates. (6fef236852d, c83847ceb6e, 8b389175968, df999c83f0a, a9dd408a2fb, b1669de9bbb, 250a561c2d8, 620421bed4a, 36a472c8d5e)