Maybe that should be the default these days? I like the X11 primary selection with middle-button paste a lot. X11 is nearly dead though and most modern platforms only have a clipboard ![]()
I think could be useful for newcomers.
Nah, X11 will live through Xlibre, unencumbered by politics. E.g. vsync patch is now not in limbo.
This has also been changing unpredictably for me every time I install the latest daily builds for widows. Some times there is no copy-selection shortcut in the menu and auto-copy is off by default (so if I copy a bit of text it doesn’t go to the clipboard) and the windows shortcuts (Ctrl + C/V) don’t work. Other times there is a shortcut in the menu and auto-copy is on. I haven’t kept track of which versions do what but the behaviour seems to change from version to version.
The same goes for some other things in the daily builds e.g. whether I need to enter [debug] before I can trace a spied goal at the top-level, or not. Another thing that seems to change is the contents of the help menu during tracing (when you press “h” to show options).
However I haven’t been able to code much in the last month (long story) so I can’t give very clear information on this. But what’s clear is that there is some regression between daily builds and also between daily builds and development versions. I currently have four versions of SWI on my windows machine to try and figure out which version has which features.
For the same reason I haven’t been able to test the fixes for the problems with copy/pasting I reported at least not thoroughly, but for the limited time I spent in the editor that seems to work OK now.
Yeah, its interesting, we are in the middle of an OS-war. But its not
Microsoft against Linux. Its more Linux against X11. Some Red Hat
engineer invented Wayland which is more GPU and Display Port
friendly than X11. So for large monitors and certain applications the
outdated X11 architecture might send your CPU into thermal hell,
energy density bottlenecks, while a Wayland driven monitor might
keep the CPU cool. For a 4k monitor with 32-bit colors, and 60 FPs,
the required bandwidth is already above 10 GBit/sec,
so without some compositor smarts you are lost.
BTW: Its interesting what technologies have become obsolete,
for example OpenGL had a Apple Death Sentence in 2018 . JetBrains
recently announced a Vulkan-based hardware acceleration pipeline,
as parth of their JDK pushing for their native Wayland support.
Dislaimer: I could not yet get some hands-on. Gemini could not yet
help me in pointing me to some GeekBench like benchmarking.
Sorry about that. Although, some looks suspicious. Surely enabling debug mode on spy/1 was broken at some point, but fixed after and AFAIK never broke again. There was a bit of back and forth wrt. copy, probably as a result of SDL3 versions as well as Prolog versions and possibly because the build environment for daily and releases was not the same (synced).
A new release is around the corner. That hopefully stabilizes things. The changes are large. Forthcoming:
- More Unicode support. Notably
- Fully support the complete Unicode range in xpce, including on Windows.
- Support Unicode double-width characters and Unicode combining characters in Epilog terminal, the editor and through our copy of libedit for the Windows console as well as any modern terminal.
- For Prolog itself
- Update to Unicode 17.0
- Sync identifier, variable and white-space identification with the Unicode recommendations and ongoing PIP discussion (may not be final).
- Make line_position/2, etc. aware of Unicode combining marks and double-width characters.
- Make format/2,3 tabs aware of these.
- Support Identifier Unicode normalization a new Prolog flag
unicode_atoms.
- By default disable auto-copy on Windows and MacOS. Also make the Epilog terminal sensitive to the
*.auto_copypreference. - Support ^Z as alternative end-of-file on Windows.
Anything else on the wish list?
I had the pleasure to learn a lot while porting xpce from X11 to SDL3. I have used X11 since it was pretty new and thought the network transparent design was quite neat. Over the years it collected quite a bit of overhead nobody wants these days while it some modern features were hard to fit into the X11 design. This turned it into an ever growing mess. Worse though, the security of X11 is a nightmare. Any program that gains access to an X11 display can inspect everything in other applications, including faking events. Wayland has been designed to minimize the ability for applications to leak information. In some senses to the level where it hurts usability, such as the lack to open a window at some location on the display. Using X11, it is quite simple to find an application window, create a transparent window that you place on top of it and proxy all user events without anyone noticing
No more on Wayland.
So, I now agree is it time to move forward. Surely it is a nuisance, but you get security and performance in return.
Most of the bugs or specification holes, are now also PIP-0105
write_term/[2,3] issues, since PIP-0110 format/[2,3] is now seen
as a DSL that delegates options to write_term/[2,3].
Further line_position/1 is an interesting compositional interaction
between write_term/[2,3] and format/[2,3] possibly not captured
at all by the PIPs. But then some issues are simply font issues.
For example an UTF-8 configured Windows 11 environment gives me:
While the exact same machine and Windows 11 configuration gives me:
Take the daily build. That should provide pretty much stable behaviour running swipl and swipl-win and deal with double width and combining characters (zero width as they merge into the preceding character).
The goal is slowly getting pretty clear. At the moment I’m working on refactoring the support and make it all nice and consistent.
Thank you for your hard work Jan and I’m sorry I haven’t been able to make a detailed report, although it seems like you are aware of the regressions already.
And now that you mention it, unicode rendering and discrepancies between native terminal and IDE, like @Johnny_Rotten shows above, were another thing I noticed.
I really haven’t been able to work with SWI recently, again sorry for being so vague about the issues I noticed.

