Can't start SWI IDE from daily build for windows

As the title says: I can’t start the SWI-Prolog IDE from the daily build for windows. I tried with today’s binary (21/09/26) and the earliest available one (13/09/26) and both fail to start the IDE.

More precisely, double-clicking on the swipl-win.exe or calling it from the command line does nothing. I don’t see a swirly working icon and there’s no swi process created in the task manager. I tried running it as administrator but nothing changes.

I can start swipl.exe on the command line (powershell).

I can’t find anything related to “swipl” in the windows logs (Event Viewer). I rebooted and there’s no change. There’s no message that swipl-win.exe is blocked when I right-click and look at Properties. Permissions for swipl-win.exe are set to read and execute for all users (and all permissions for administrators).

I don’t think the file is blocked by e.g. Windows Defender. I added an exception anyway but nothing changes.

An earlier daily binary from 07 August 26 starts up the IDE just fine. I don’t have any daily builds between that date and 13/09/26 so I don’t know exactly when the IDE disappeared.

Hmm. Loaded the current GIT version. Runs fine. Downloaded the latest daily and installed it. Runs fine. Tested the icon from the dock I created as well as using the Windows console. This using Windows 11 home in a VirtualBox VM.

You may want to move your config files away. See whether that makes a difference. If so, move them back one by one and let us know which one is problematic.

Hi Jan. I did as you said and the 13 Sep 2026 version now loads on my machine. I moved some files back and it seems the problem was the emacs Defaults file (in C:\Users<username>\AppData\Roaming\swi-prolog\xpce).

I can see the newest defaults file has options for the new panes setup so my guess is that when those are missing, the new version won’t start? I’ll have to fiddle around with the new Defaults to see how it works before I can be sure but you probably have a better idea of it.

Btw, I’m guessing you miss breaking changes like that because you spin up a VM with a fresh install of SWI every time there’s a new version- is that right? This is certainly something you want to know (how the system behaves in a clean install) but it may also be useful to keep a permanent installation somewhere so that you get a better idea of the end-user experience, so to speak. What I mean is that when I install a new version, I keep my old configuration files and history, because I want to keep the same setup as before. I also noticed my library(themes) is not replaced by the installer since it has user-modified files in there. So there’s a lot of potential for new versions to break if they don’t support old options or need new ones. I’ll keep that in mind from now on but that’s something to consider also when you make changes.

Btw the new windowed IDE was a major reason I wanted to try this new version. It looks great. My only concern now is that I’ll end up opening too many panes like I do in vim :slight_smile:

No. An empty file should be fine too. Syntax errors may cause problems, but normally they should be reported if you run swipl-win inside a console.

No. The VM is only shut down and rebooted, never reset.

Btw is there documentation on how to use the new IDE features? I was just now trying to get rid of a window and I couldn’t remove it. Here’s what I mean:

I went Settings > Gui Preferences and that opened the current Defaults file in the same frame (?) as the listener. I wanted to get back the full expanse of the listener so then I opened a new frame with Ctrl-X 52 (that’s the shortcut listed in Browse > New Frame). Then I selected the original window with the Defaults buffer. In the image that’s the one on the bottom right, in the same frame as the listener. Then I tried to delete that window with Ctrl-X 0 and also from the menu, but all I got was a visual bell (I mean that the bottom right window flashed once).

I also tried File > Kill Buffer on the bottom right window- nothing happened. Then I tried Only Window (Ctrl-X 1) on the window on the left. Again nothing happened.

Oh and btw I noticed just now that arrow keys don’t seem to navigate the buffer inside any window. I guess that’s … an emacs thing? Where do I turn it off and go back to navigating with arrow keys? Do I need to remap something?

EDIT: should all this go into the thread about Progressing the SWI -Prolog Environment?

EDIT 2: Oh, OK, found the documentation: https://eu.swi-prolog.org/download/xpce/doc/prolog/userguide.pdf

EDIT 3: going through the documentation I just realised the bottom right pane in my screenshot does not have a grip. Shouldn’t it?

Btw I found a setting in Defaults that was blocking the IDE from starting once I added it to the new Defaults file with all the window/pane etc config options.

This was in my older Defaults file:

 font.system_fonts:	[ normal    := font(sans, normal, 10), \
			  bold      := font(sans, bold,   10), \
			  italic    := font(sans, italic, 10), \
			  small     := font(sans, normal,  8), \
			  large     := font(sans, normal, 12), \
			  boldlarge := font(sans, bold,   12), \
			  huge      := font(sans, normal, 14), \
			  boldhuge  := font(sans, bold,   14), \
			  fixed     := font(mono, normal, 12), \
			  tt        := font(mono, normal, 12), \
			  boldtt    := font(mono, bold,   12)  \
			]

When I copied it over to the new Defaults file which I otherwise left unchanged, the IDE would no longer start.

The new font.system_fonts array (?) includes the following two elements that were missing from the earlier Defaults and it seems that’s what’s stopping the IDE from starting:

			  itt       := font(mono, italic, 14), \
			  bitt      := font(mono, italic, 14, bold)  \

When I added those to the end of font.system_fonts the IDE started up with the new font size as expected.

There is a start at Tiling tools · SWI-Prolog/packages-xpce Wiki · GitHub (from Help/SWI-Prolog GUI tools).

The default rule makes the editor come up above the listener. If you change that and either use it long enough or use Settings/Remember how this window is arranged it should use your preference. To make it a window, use the little icon at the top-right. The menu allows doing so. Panes currently do not listen to the Emacs bindings. They have their own, inherited mostly from Terminator (Linux terminal emulator). Use the background menu to find the operations and shortcuts. The two convetions is a little confusing. Probably panes should also listen to the Emacs bindings, although splitting makes little sense for many tools.

What do you mean? The arrow keys move the caret fine. Seems you want something else …

I think so.

That mostly explains how xpce works. I aim at user docs on the xpce wiki on Github.

I should. I have seen one time that it disappeared. Resizing got it back. I do not recall what happened though.

Push a fix for that. It now loads the user font table and then scans the system font table and defines all fonts the user did not define. So, you no longer have to copy the table, just the entries you want different.

That said, you probably do not want to touch this. What you probably want is the mapping from sans/serif/mono to the Pango font families. The default depends on the platform. You get it using (this is on Linux)

?- get(class(font), class_variable, pango_families, Var),
   get_object(Var, default, string(S)).
Var = <pce>(0x2a531e50,class_variable),
S = '[ mono      := \'Noto Sans Mono,DejaVu Sans Mono,monospace\',\n  sans      := \'Noto Sans,DejaVu Sans,sans\',\n  serif     := \'Noto Serif,DejaVu Serif,serif\',\n  screen    := \'Noto Sans Mono,DejaVu Sans Mono,monospace\',\n  helvetica := \'Noto Sans,DejaVu Sans,sans\',\n  times     := \'Noto Serif,DejaVu Serif,serif\'\n]'.

Use GUI/Demo programs and then FontViewer to examine the fonts Pango understands. The values above is a comma-separated list. Pango picks the first it finds that has the character it wants to paint.

For a moment the arrow keys would not move the caret around the Prolog file. I restarted my session and it’s OK now, I don’t know what changed.

Thanks. I got the fonts I wanted so I don’t think I need to do that now but it will be useful for later.