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

linux.png We collect information about available packages and issues for building on specific distros here. We provide a PPA for Ubuntu

WIP.png Examine the ChangeLog.


Binaries
Windows version (64-bits)25,904,051 bytesSWI-Prolog 7.7.19 for Microsoft Windows (64 bit)

Self-installing executable for Microsoft's Vista/7/8/10 64-bit editions. See the reference manual for deciding on whether to use the 32- or 64-bits version. This binary is linked against GMP 5.0.5, which implies that it is covered by the LGPL-V3 license. See below.

SHA256:2fba0372bf4d66aacc7585b93143bd87cf45e101d5e00fae6047db4b7fdab0b2
Windows version (32-bits)24,722,209 bytesSWI-Prolog 7.7.19 for Microsoft Windows (32 bit)

Self-installing executable for MS-Windows. Installs swipl-win.exe and swipl.exe. Works on Windows Vista/7/8/10. This binary is linked against GMP 5.0.5, which implies that it is covered by the LGPL-V3 license. See below.

SHA256:f244cc145c7e50a11dc8ea7ba1c1f10f8ea63a16ba015ed0e26d1fb5c9355eee
Snow Leopard and later24,104,327 bytesSWI-Prolog 7.7.19 for MacOSX 10.6 (Snow Leopard) and later on intel

Mac OS X disk image with relocatable application bundle. Needs xquartz (X11) installed for running the development tools. Currently, version 2.7.7 is required. You can check the version by opening an X11 application and then checking `about' in the X11 menu. The graphical application is experimental. The bundle also provides the commandline tools in Contents/MacOS. The command line tools need at least MacOS 10.6 (Snow Leopard). The graphical application needs at least MacOS 10.7 (Lion).

SHA256:3c310f4d27830b5464245dcceb40461044274c9a2e4bd73b88d13b8afa768cf0
Sources
Source archive17,031,626 bytesSWI-Prolog source for 7.7.19

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

SHA256:a7820510afd89c2d7cad977ff455841350e7163f8c532d25ce94e70336564a82
Documentation
PDF file2,453,549 bytesSWI-Prolog 7.7.19 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.

About the development releases

The development branches have their own GIT repository at the address below. See the general GIT instructions for details.

% git clone https://github.com/SWI-Prolog/swipl-devel.git

SWI-Prolog Version 7

SWI-Prolog version 7 is a major release that introduces significant new concepts to the language. A full description is in the section SWI-Prolog extensions. Below is a short summary.

  • Lists are no longer represented as .(H,T). Instead, the list functor is now '[|]'(H, T). The empty list is still [], but this is not an atom. I.e., '[]' == [] fails.
  • By default, double quoted "text" is mapped to an object of type string. This already raised some discussions.
  • The system introduces `dicts' as primary citizens. Dicts are collections of key-value pairs, optionally tagged. Dicts are supported by read and write. The syntax is
    tag{key1:value1, key2:value2, ...}

    Keys in a dict can be addressed using the functional notation Dict.Key. User functions on dicts can be accessed as Dict.Compound (e.g., Vector.multiply(V2)).

  • Putting quotes around operator names that do not need quoting stops the atom to act as an operator:
    ?- A = 'dynamic'/1.
    A = (dynamic)/1.
    ?- op(100, xf, 'Kwh').
    true.
    ?- A = 100'Kwh'.
    A = 100 'Kwh'.
  • functor() is valid syntax. It produces a term that is distinct from 'functor'. The `block' operator '()' to hack this syntax has been deleted.
  • The `block' operators [] and {} remain.
See also
- SWI-Prolog future directions
- Daily builds for Windows
- Ubuntu PPA binary packages
- Build instructions