# Ann: SWI-Prolog 9.3.24

**URL:** <https://swi-prolog.discourse.group/t/ann-swi-prolog-9-3-24/8960>\
**Category:** Releases\
**Created:** [April 26, 2025, 9:26am UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-9-3-24/8960 "2025-04-26T09:26:39Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [April 26, 2025, 9:26am UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-9-3-24/8960/1 "2025-04-26T09:26:39Z")

</div>

Dear SWI-Prolog user,

I’m happy to announce SWI-Prolog 9.3.24. Notably the `swipl-win` GUI  
version suffered from some serious regression due to the switch to  
compiled (.qlf) libraries. Highlights:

- Better `swipl-win.exe` on Windows. The updated version provides

- Fixed MacOS/Linux `swipl-win`: hangs on `Help/About`. 9.3.23  
broke the menu. After restoring that, many of the menu actions  
were broken.

- Work on [Freedesktop.org](http://Freedesktop.org) integration. Integration files are now  
installed in `<home>/desktop` and an installation can activate  
the desktop integration by running

- Integration of XSB attributed variable test suite and dialect  
emulation. This provides basic support for constraints in  
tabling.

# SWI-Prolog Changelog since version 9.3.23

- ENHANCED: Windows: use native fonts for bold and support  
bold+underlined.

- ADDED: [Freedesktop.org](http://Freedesktop.org) Desktop integration files. This patch adds  
a directory `desktop` with icons and desktop integration files.  
A particular version can be activated as desktop application using

- ADDED: Windows `swipl-win.exe`: support underlined fonts Support  
`\e[4m` to print underlined text.

- ADDED: Windows: swipl-win.exe : support hyperlinks. This patch enables  
terminal escape sequences to embed hyperlinks. `file://` links  
are then mapped to edit/1 and other links are opened in the browser.

- FIXED: Report correct number of clauses when loading .qlf files  
Reported 0 (zero) clauses for all .qlf files.

- FIXED: `?- edit(file('myname.pl')).` to create a new file.

- FIXED: Do not precompile several files This patch stops precompiling  
the libraries win\_menu, threadutil and check\_installation. The sources  
are full of conditional compilation that also depends whether or not  
`swipl` or `swipl-win` is started.

- FIXED: Create menu in Windows and Qt consoles. Broken due to  
conditional compilation that excluded the call to init\_win\_menus/0  
from the .qlf file.

- BUILD: prohibit building in the source directory.

- TEST: Include clpfd test with tabling.

- DOC: Constraints and tabling

- TEST: Merge XSB attributed variable tests. This updates several of the  
tests, documents what tests cannot be executed due to incompatibilities  
and extends the XSB dialect emulation to deal with a later part of  
the attributed variable interface.

- FIXED: Support attributed variables in “fastheap” terms. These are  
used by tabling and delimited continuations.

- FIXED: Handling attvars in answer tries.

- FIXED: library(prolog\_source): undefined html\_write:html\_meta\_head/3

- XSB: Added basic attributed handling to emulation Library  
`machine` now exports get\_attr/3, put\_attr/3, del\_attr/2 and  
install\_verify\_attribute\_handler/4.

- ADDED: library(prolog\_profile): Prolog flags for defaults -  
`profile_ports` provides the default “mode”, now `true` -  
`profile_sample_rate` provides the default sample rate (200)

- DOC: clause/3: describe properties of clause references.

- DOC: retractall/1 and logical update view section.

- DOC: Moved some sections in the “Database” section of the manual.

- BUILD: Better support for cmake \< 3.20

- PPA: Updated releases - Added Plucky Puffin (25.04) - Removed Focal  
Fossa (20.04) and Bionic Beaver (18.04)

## Package pldoc

- FIXED: Undefined call to start\_emacs/0

## Package swipl-win

- FIXED: win\_message\_box/2: crash if image option cannot be found Now  
shows the box without image and throws an exception afterwards.

## Package xpce

- MODIFIED: WM\_CLASS handling Recent desktop environments such as  
Gnome 46 and later ignore the `_NET_WM_ICON` property to set an  
icon for a frame (toplevel window). We can set the icon through a  
`.desktop` file using `StartupWMClass` where all windows of a  
process are bundled under the same icon. But, xpce set `WM_CLASS`  
from the xpce class name.

- FIXED: emacs/1: allow non-existing file. This also fixes `?- edit(file(File))` to create a new file as advertised.

- FIXED: Profiler IDE: link to website. Renamed “exit” to “quit”,  
removed “statistics” (is shown anyway) and “about” (useless).

---

<div class="post-metadata">

**Author:** ![mgondan1](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/mgondan1/32/803_2.png) [@mgondan1](https://swi-prolog.discourse.group/u/mgondan1)\
**Post date:** [April 26, 2025, 3:46pm UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-9-3-24/8960/2 "2025-04-26T15:46:51Z")

</div>

Is it possible to change the typo in the title? 9.3.24 instead of 9.2.24? I would like to link to it.

---

<div class="post-metadata">

**Author:** ![jan](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/jan/32/4_2.png) [@jan](https://swi-prolog.discourse.group/u/jan)\
**Post date:** [April 27, 2025, 6:52am UTC](https://swi-prolog.discourse.group/t/ann-swi-prolog-9-3-24/8960/3 "2025-04-27T06:52:04Z")

</div>

Done. Sorry for the typo.
