🍎 The SWI-Prolog MacOSX app

SWI-Prolog is an open source implementation of the Prolog programming language. SWI-Prolog targets at developing real-world applications. To achieve this, in concentrates on libraries that facilitate interfacing to other software components, networking and multi-threading. SWI-Prolog can be used from Terminal.app as well as as an standard Mac application started from Finder. The commandline application can also run under several development environments such as GNU-Emacs (see Sweep), Eclipse, VSCode, etc.

Supported MacOSX versions

The bundle contains Universal binaries for arm64 (Apple Silicon, M*) and x86_64 (Intel). Starting with SWI-Prolog 9.3.26, the SWI-Prolog app uses native MacOS Quartz graphics and no longer requires the XQuartz X11 application. We attempt to support all supported MacOS version. All code is compiled using 10.15 as Deployment target. While the commandline swipl executable is reported to run under 10.14, the GUI is reported not to run under 10.15 while it is reported to run on MacOS 14. Please report the status for intermediate versions.

Using the GUI development tools

The SWI-Prolog development tools, such as the source-level debugger, are based on xpce, SWI-Prolog's native graphics toolkit. Some of the tools can be started from the SWI-Prolog.app menus. Others are started from the Prolog commandline. Notably, to use the source level debugger, use gtrace/0 instead of the traditional trace/0 as below.

?- gtrace, my_goal(...).

The SWI-Prolog.app can be executed directly from the disk image, can be installed in /Applications or in any other location, i.e., it is relocatable. The app advertises itself to the launcher as shell for files with extensions .pl and .prolog

Using the commandline tools

The traditional command line tools are included in the app. To access them from Terminal.app, add the directory /Applications/SWI-Prolog.app/Contents/MacOS to $PATH (replace with the actual location if you installed the app in a different location). This provides

Where to get documentation and help?


SWI-Prolog is brought to you by many contributors.

❤️ If you enjoy using SWI-Prolog, please consider donating to help maintaining and developing the system. ❤️