Did you know ... Search Documentation:
Download SWI-Prolog stable versions

linux.png Linux versions are often available as a package for your distribution. We collect information about available packages and issues for building on specific distros here. We provide a PPA for Ubuntu and snap images

Android.png Android binaries are available for Termux as the package swi-prolog. See also Building SWI-Prolog on Android using LinuxOnAndroid

windows.jpg Please check the windows release notes (also in the SWI-Prolog startup menu of your installed version) for details.

WIP.png Examine the ChangeLog.


Binaries
Windows version (64-bits)13,163,366 bytesSWI-Prolog 9.0.4-1 for Microsoft Windows (64 bit)

Self-installing executable for Microsoft's Windows 64-bit editions. Requires at least Windows 7. See the reference manual for deciding on whether to use the 32- or 64-bits version. This binary is linked against GMP 6.1.1 which is covered by the LGPL license.

SHA256:33758f1c2dd190df9c8828d2dcb39166ad10d31d78f1198812e6d0f33b71c73b
Windows version (32-bits)13,203,365 bytesSWI-Prolog 9.0.4-1 for Microsoft Windows (32 bit)

Self-installing executable for MS-Windows. Requires at least Windows 7. Installs swipl-win.exe and swipl.exe. This binary is linked against GMP 6.1.1 which is covered by the LGPL license.

SHA256:c99b7b794d14335ca6fda556f959e74c4b1b51877673a404f87c9cb68bce794c
MacOS bundle51,743,650 bytesSWI-Prolog 9.0.4-1 for MacOSX 10.14 (Mojave) and later on x86_64 and arm64

Installer with binaries created using Macports. Installs /opt/local/bin/swipl. Needs xquartz (X11) and the Developer Tools (Xcode) installed for running the development tools

SHA256:a6f32683e4c42e62ea6f8f481ac1f5f5fbfa2623b5c32eb21396a04c5ebbc197
MacOS bundle28,195,489 bytesSWI-Prolog 8.4.1-1 for MacOSX bundle on intel

Installer with binaries created using Macports. Installs /opt/local/bin/swipl. Needs xquartz (X11) and the Developer Tools (Xcode) installed for running the development tools

SHA256:1b9c62caa781818a0dafd1d822ab563b8c10c7cd018ce10a3b71f900eb3a434f
Sources
Source archive11,854,471 bytesSWI-Prolog source for 9.0.4

Sources in .tar.gz format, including packages and generated documentation files. See build instructions.

SHA256:feb2815a51d34fa81cb34e8149830405935a7e1d1c1950461239750baa8b49f0
Documentation
PDF file3,153,520 bytesSWI-Prolog 9.0.4 reference manual in PDF

SWI-Prolog reference manual as PDF file. This does not include the package documentation.

Show all files
Install scripts may download the SHA256 checksum by appending .sha256 to the file name. Scripts can download the latest version by replacing the version of the file with latest. This causes the server to reply with the location of the latest version using an HTTP 303 See Other message.

SWI-Prolog version 9

The SWI-Prolog 9.0 consolidates many improvements of the 8.x series. This major release mainly adds and improves features. Upgrading from any 8.x release should not come with major compatibility issues.

Highlights:

  • Mature and feature-rich tabling support including well founded semantics, incremental tabling, monotonic tabling and shared tabling.
  • Single sided unification [SSU](/pldoc/man?section=ssu) and zero-cost runtime determinism checking. See also $/0, $/1 and det/1.
  • Database transactions see transaction/1 and snapshot/1.
  • A new C++ interface that covers the whole foreign API and provides much better type safety.
  • Linux versions are by default linked to tcmalloc. This provides more information and control and reduces the footprint of multi-threaded 7x7 servers considerably compared to the default ptmalloc.
  • Interfaces to Redis and STOMP message passing systems.
  • A port to WASM WebAssembly allows running SWI-Prolog in the browser. The high level bi-directional interfaces to JavaScript allows for inspecting and modifying the browser DOM.
  • A completely new GNU-Emacs package called sweep. Sweep embeds Prolog, which allows for semantic highlighting and much more.
  • A bundled replacement for GMP, providing unbounded integers and rational numbers based on LibBF under a permissive license. Currently significantly slower on notably larger rational numbers.