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,156,103 bytesSWI-Prolog 9.0.3-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:caf7c68d5095845a8a310b3297721abf6465bc599a814efcfe831535ea546e29
Windows version (32-bits)13,195,424 bytesSWI-Prolog 9.0.3-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:50e63e1cece1e006994e640f13f68f00448c0194532990ad549676c6edc4c4d6
MacOS bundle51,732,645 bytesSWI-Prolog 9.0.3-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:1e5f3a86ba52823833ecb21837fc2381ba6fef04c9bb540ed1671f1ad23443de
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,827,064 bytesSWI-Prolog source for 9.0.3

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

SHA256:e2919bc58710abd62b9cd40179a724c30bdbe9aa428af49d7fdc6d0158921afb
Documentation
PDF file3,140,650 bytesSWI-Prolog 9.0.3 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.