Download SWI-Prolog stable versions
| Binaries | ||
|---|---|---|
| 5,902,481 bytes | SWI-Prolog/XPCE 5.10.1 for i586/Linux (RPM)
Linux RPM package created on SuSE Linux 11.2. You may try on other Linux releases. If you are a one-time user, check whether your Linux distro provides SWI-Prolog. If you are a frequent user, consider to download and compile the source. | |
| 8,367,825 bytes | SWI-Prolog/XPCE 5.10.1 for Windows NT/2000/XP/Vista
Self-installing executable for MS-Windows. Installs swipl.exe and swipl-win.exe. Works on Windows NT/2000/XP/Vista/7. Users of Windows 95/98/ME should download version 5.4.7. | |
| 8,656,459 bytes | SWI-Prolog/XPCE 5.10.1 for Windows XP/Vista 64-bit edition
Self-installing executable for Microsoft's 64-bit platforms (XP and Vista 64-bit editions). See the reference manual for deciding on whether to use the 32- or 64-bits version. | |
| 12,099,978 bytes | SWI-Prolog/XPCE 5.10.1 for MacOSX 10.6 (Snow Leopard) on intel
Installer with binaries created using Macports.
Installs | |
| 10,663,896 bytes | SWI-Prolog/XPCE 5.10.1 for MacOSX 10.5 (Leopard) on intel
Installer with binaries created using Macports.
Installs | |
| 21,709,105 bytes | SWI-Prolog/XPCE 5.6.64 for MacOSX 10.5 (Leopard) on ppc
Installer with binaries created using Macports.
Installs | |
| 11,761,450 bytes | SWI-Prolog/XPCE 5.8.3 for MacOSX 10.4 (Tiger) on ppc
Installer with binaries created using Macports.
Installs | |
| Sources | ||
| 12,950,695 bytes | SWI-Prolog source for 5.10.1
Sources in | |
| Documentation | ||
| 2,401,771 bytes | SWI-Prolog 5.10.1 reference manual in PDF
SWI-Prolog reference manual as PDF file. This does not include the package documentation. | |
| Show all files | ||
About the 5.10.x release
SWI-Prolog 5.10.0 provides no new functionality beyond a few predicates. This version improves SWI-Prolog notably in terms of scalability, reliability, compatibility and performance for a couple of built-ins.
Upgrading code for 5.6.64 to 5.8.x and 5.10.x
We are assembling tricks and tips for upgrading your 5.6.X Prolog source to run on 5.8.0 and later here.
The main difference is that SWI-Prolog is now called swipl on all
platforms. This may require updating PrologScript files (calling Prolog
using #!/path/to/swipl -s) or other script files calling Prolog.
Otherwise, SWI-Prolog 5.10.x is compatible to 5.8.x, with possible exceptions of extreme corner cases. If you experience problems, please check relnotes-5.10
Highlights for the 5.10.x release:
- All platforms now use consistent naming. The SWI-Prolog executable is called swipl, the linker swipl-ld and the resouce-file manager swipl-rc.
- New stack memory-management that is based on stack-shifting rather than allocating the stacks sparsely in the virtual address-space. This change allows for much better scalability in the number of threads, so we also removed the old thread-count limit of 100. The stack-limits can now be raised and reduced at runtime using set_prolog_stack/2.
- The default stack-size-limits are now 128Mb per stack on 32-bit and 256Mb on 64-bit hardware.
- Extensive leak and stress-testing have fixed a number of leaks and race conditions, making the system much more robust in 24x7 server setup.
- A start has been made to avoid using the C-stack for recursing into terms. This allows processing much more deeply nested terms and provides a clean exception if there are insufficient resources to traverse the term. There is still much to do in this area.
- SWI-Prolog 5.10.0 introduces safe references to database terms (assertz/2, recordz/3) and streams (open/3).
- The number of variables in clauses is now limited to 1,000,000,000; this was 65535. In addition, the system provides graceful exceptions when encountering resource-errors or trying to assert illegal terms such as cyclic terms.
- Compatibility to both YAP and SICStus is enhanced.