Ann: SWI-Prolog 9.2.24

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

    • Support for ANSI hyperlinks. This implies that error messages
      and reported source locations are clickable. Notably compiler
      warnings, errors and explain/1 reports related locations
      with hyperlinks.
    • Support for underlined text and better looking bold text.
  • 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 integration. Integration files are now
    installed in <home>/desktop and an installation can activate
    the desktop integration by running

    swipl sys desktop install
    

    With the integration installed, swipl-win and xpce should
    show the SWI-Prolog icon and .prolog files should launch
    swipl-win.

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

    Enjoy — Jan

SWI-Prolog Changelog since version 9.3.23

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

  • ADDED: 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

    swipl sys desktop [--global] install
    

    The activation canbe removed using

    swipl sys desktop [--global] remove
    
  • 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.

    This patch also fixes several issues and provides cleanup to the
    swipl-win.exe console code.

  • 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.

    Using runtime conditionals is possible, but would lead to many
    undefined predicate warnings.

  • 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.

    The tests both deal with basic attribute handling and with (simple)
    tabling
    that involves attributes.

  • 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)

    The latter two fail to build the Janus interface due to too old
    Python versions.

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.

    This patch adds display<->wm_class to set the WM_CLASS
    for all toplevel windows. The default is SWI-Prolog. By
    setting this to @default, the old behavior is restored.

  • 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).

1 Like

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.