Minimum MacOS requirements for SWI Prolog

The current development stream indicates the minimum requirements for SWIP on MacOS as:

MacOSX 10.15 (Catalina) and later on x86_64 and arm64

As tested on a desktop Intel Mac:
MacOS 10.15 (Catalina) (and previous, I assume)

  • current installer does not work
  • application bundle 10.1.7 works, new xpce GUI doesn’t work

MacOS 12 (Monterey)

  • current installer does not work
  • application bundle 10.1.7 works, new xpce GUI works

On M3 laptop:

MacOS 15 (Sequoia)

  • current installer works (very nice), new xpce GUI also works

Takeaways:

  1. MacOS 15 (Sequoia) is the minimum version that I can test which supports current installer. There are a few existing holes between Monterey and Sequoia that I can’t test. It would be helpful if other Mac users could a) verify my observations and/or b) fill in any holes.
  2. There are some existing dependancies between the OS and the installer and between the OS and the xpce GUI that I don’t understand. But the earlier supported MacOS version supported, the better (IMO).
  3. It would be helpful if the installer worked on earlier versions of MacOS so that at least command line functionality was supported on the latest releases. Even better when the xpce GUI works. (Note that the xpce GUI runs on Monterey and not on Catalina)
  4. If this can be sorted out, the download page should reflect the current state of play.

Any message? All dependencies and the main system are compiled with the deployment version set to 10.15.

That might be easier than expected: it appears the metadata of the installer announced as arm64 only. Uploaded a new installer (10.1.16-2) that seems to have the correct metadata. Please try.

Early indications are that this fixed the installer issue on both Catalina and Monterey. The command line version works, but the xpce GUI does not:

Process:               swipl-win [21739]
Path:                  /Applications/swipl-win.app/Contents/MacOS/swipl-win
Identifier:            org.swi-prolog.swipl-win
Version:               10.1.16
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           swipl-win [21739]
User ID:               501

Date/Time:             2026-09-26 10:01:17.220 -0400
OS Version:            Mac OS X 10.15.8 (19H2036)
Report Version:        12
Anonymous UUID:        8E3F9DAF-4AC8-80A6-733A-69888871ACD3


Time Awake Since Boot: 59000 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: index >= 0'
abort() called
terminating with uncaught exception of type NSException

Application Specific Backtrace 1:
0   CoreFoundation                      0x00007fff35acea17 __exceptionPreprocess + 250
1   libobjc.A.dylib                     0x00007fff6e453a9e objc_exception_throw + 48
2   CoreFoundation                      0x00007fff35af7d40 +[NSException raise:format:arguments:] + 88
3   Foundation                          0x00007fff3821191d -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 191
4   AppKit                              0x00007fff32ca4fbc -[NSMenu itemAtIndex:] + 198
5   AppKit                              0x00007fff32ca487d -[NSApplication(NSWindowsMenu) setWindowsMenu:] + 189
6   pl2xpce.so                          0x0000000101b98324 ns_menubar_setup + 324
7   pl2xpce.so                          0x0000000101b95c13 ws_menubar_activate_frame + 419

The same exception occurs from the terminal if it attempts to use an xpce based tool, e.g., the profiler. I’m guessing it has something to do with the recent changes to Menu handling on MacOS.

The good news is that at least the command line versions seem to be working from Catalina onward.

Indeed. Claude thinks it has fixed this. Uploaded 10.16-3 installer. I can not check whether it works. Please try!

I think Claude is mistaken. AFAICT, same crash at same place on both Catalina and Monterey.

Looks like it. Uploaded version 4. Please check. This is all a bit long shot though. This probably requires a build and test machine that can be controlled from one place to figure out what is wrong :frowning:

Version 4 appears to have done the trick. Installer and xpce now working on both Catalina and Monterey on Intel Mac, so well done.

I haven’t done a lot of GUI testing yet, but the only thing I’ve noticed is that Paste doesn’t work (nothing pasted) on Catalina, for either the line editor or pceEmacs. It does work on Monterey (and Sequoia/Arm). This kind of residual detail may not be worth the effort of tracking it down, so it may be worth considering unticking the MacOS requirement. (I haven’t tested MacOS 11/Big Sur yet but can do if this is the best way to go.)

Edit: Copy does work because I can paste the clipboard into a text window in a separate editor app.

Thanks for testing!

Pushed take 5 :slight_smile: Claude attributed this to a known bug in SDL3. It ported a known work-around. No guarantees …

This fixed my last MacOS related issue - all my configs from Catalina up now work the same.