Software Details:
Version: 7.2.3 / 7.3.6-dev updated
Upload Date: 1 Oct 15
Distribution Type: Freeware
Downloads: 99
It's useful logic programming purposes, artificial intelligence and computational linguistics.
What is new in this release:
- The new dict type and syntax provides both time and space efficient name-value maps with a pleasant syntax.
- As a consequence, it was necessary to replace the list constructor .(H,T) by the (also in use by Mercury) '[|]'(H,T). That may seem drastic, but in practice affects only a few programs, notably doing functor(Term, F, A) on lists and then selecting further processing on F == '.', A == 2. To turn lists more into a special construct, [] is still the empty list, but no longer the same as '[]', i.e., [] is not at atom.
- The syntax "..." is now mapped to strings. Strings are compatible with ECLiPSe (thanks to Joachim Schimpf for all the discussions). Traditional code-lists are constructed using .... The flags double_quotes and back_quotes control this behaviour.
- Thanks to Torbjorn Lager, we have "Pengines", Prolog engines on the web. This provides a generic API to talk comfortably to a Prolog server from JavaScript and other Prolog instances. It enabled SWISH, SWI-Prolog in your browser (http://swish.swi-prolog.org) as well as http://lpn.swi-prolog.org (Learn Prolog Now! with embedded SWISH).
- Markus Triska added clp(b), the boolean constraint solver, improved his clp(fd) and was before several enhancements to the toplevel dealing with constraints.
- Thanks to Matt Lilley and Mike Elston, there is CQL, a DSL (Domain Specific Language) for dealing with SQL. CQL is developed in an environment where complex SQL databases are the norm and therefore supports a large subset of SQL and can deal with tables with thousands of columns and other stuff that the ocasional SQL user won't expect.
- Matt Lilley improved networking support significantly, including much better support for SSL and general support for both HTTP and SOCKS proxy servers.
- Many people have provided add-ons (packs) that rely on SWI-Prolog version 7.
What is new in version 7.2.1 / 7.3.3-dev:
- The new dict type and syntax provides both time and space efficient name-value maps with a pleasant syntax.
- As a consequence, it was necessary to replace the list constructor .(H,T) by the (also in use by Mercury) '[|]'(H,T). That may seem drastic, but in practice affects only a few programs, notably doing functor(Term, F, A) on lists and then selecting further processing on F == '.', A == 2. To turn lists more into a special construct, [] is still the empty list, but no longer the same as '[]', i.e., [] is not at atom.
- The syntax "..." is now mapped to strings. Strings are compatible with ECLiPSe (thanks to Joachim Schimpf for all the discussions). Traditional code-lists are constructed using .... The flags double_quotes and back_quotes control this behaviour.
- Thanks to Torbjorn Lager, we have "Pengines", Prolog engines on the web. This provides a generic API to talk comfortably to a Prolog server from JavaScript and other Prolog instances. It enabled SWISH, SWI-Prolog in your browser (http://swish.swi-prolog.org) as well as http://lpn.swi-prolog.org (Learn Prolog Now! with embedded SWISH).
- Markus Triska added clp(b), the boolean constraint solver, improved his clp(fd) and was before several enhancements to the toplevel dealing with constraints.
- Thanks to Matt Lilley and Mike Elston, there is CQL, a DSL (Domain Specific Language) for dealing with SQL. CQL is developed in an environment where complex SQL databases are the norm and therefore supports a large subset of SQL and can deal with tables with thousands of columns and other stuff that the ocasional SQL user won't expect.
- Matt Lilley improved networking support significantly, including much better support for SSL and general support for both HTTP and SOCKS proxy servers.
- Many people have provided add-ons (packs) that rely on SWI-Prolog version 7.
What is new in version 7.2.0 / 7.3.1-dev:
- The new dict type and syntax provides both time and space efficient name-value maps with a pleasant syntax.
- As a consequence, it was necessary to replace the list constructor .(H,T) by the (also in use by Mercury) '[|]'(H,T). That may seem drastic, but in practice affects only a few programs, notably doing functor(Term, F, A) on lists and then selecting further processing on F == '.', A == 2. To turn lists more into a special construct, [] is still the empty list, but no longer the same as '[]', i.e., [] is not at atom.
- The syntax "..." is now mapped to strings. Strings are compatible with ECLiPSe (thanks to Joachim Schimpf for all the discussions). Traditional code-lists are constructed using .... The flags double_quotes and back_quotes control this behaviour.
- Thanks to Torbjorn Lager, we have "Pengines", Prolog engines on the web. This provides a generic API to talk comfortably to a Prolog server from JavaScript and other Prolog instances. It enabled SWISH, SWI-Prolog in your browser (http://swish.swi-prolog.org) as well as http://lpn.swi-prolog.org (Learn Prolog Now! with embedded SWISH).
- Markus Triska added clp(b), the boolean constraint solver, improved his clp(fd) and was before several enhancements to the toplevel dealing with constraints.
- Thanks to Matt Lilley and Mike Elston, there is CQL, a DSL (Domain Specific Language) for dealing with SQL. CQL is developed in an environment where complex SQL databases are the norm and therefore supports a large subset of SQL and can deal with tables with thousands of columns and other stuff that the ocasional SQL user won't expect.
- Matt Lilley improved networking support significantly, including much better support for SSL and general support for both HTTP and SOCKS proxy servers.
- Many people have provided add-ons (packs) that rely on SWI-Prolog version 7.
What is new in version 6.6.6 / 7.1.37:
- Processing of #!, binding a file to an interpreter in Unix no longer tries to be smart about processing options to the interpreter. The effect of this change depends on the Unix versions: some only pass the first option, others pack all options into one and yet others pass the options after breaking them.
- The Prolog flag argv only provides arguments that have not been processed by Prolog.
- The init file .plrc (pl.ini on Windows) is no longer searched for in the working directory for security reasons.
What is new in version 6.6.6 / 7.1.31:
- Processing of #!, binding a file to an interpreter in Unix no longer tries to be smart about processing options to the interpreter. The effect of this change depends on the Unix versions: some only pass the first option, others pack all options into one and yet others pass the options after breaking them.
- The Prolog flag argv only provides arguments that have not been processed by Prolog.
- The init file .plrc (pl.ini on Windows) is no longer searched for in the working directory for security reasons.
What is new in version 6.4.0:
- Updated the RDF library to version 3. Anyone caring about RDF was probably already using the development version for this reason. Added fast parsers for ntriples, Turtle and TriG formats.
- Introduction of quasi quotation for smooth and safe inclusion of external language snippets
- Upgrade of PlDoc to accept the common markdown constructs.
- Many enhancements to the development tools, HTTP libraries, clib package. etc. Better support for Unix daemon processes (syslog, UID/GID management, etc.)
- A start for locale handling (supporting format/3, notably writing locale specific large integers.
- Lots of stability stuff: fixed crashes, portability patches, build system enhancements, etc.
What is new in version 6.2.0:
- Initial version of the `pack' package manager
- Better source file handling, notably wrt. :- include(File).
- Many fixes to the debugger, improving source handling and the logic that decides on which ports are hidden.
- Windows version now build using the MinGW compiler project, resulting in 10-20% speedup. Enhancements to swipl-win.exe console: copy/paste and color support.
What is new in version 6.0.0:
- Dynamic just-in-time indexing on multiple arguments.
- Abstracted many of the development APIs, supporting the PDT IDE.
- Lots of cleanup, bug-fixes, etc.
What is new in version 5.11.20:
- Reduced trail-stack usage.
- Provide generational garbage collection.
What is new in version 5.11.10:
- Reduce trail-stack usage. (partly)
- Provide generational garbage collection.
What is new in version 5.11.9:
- Reduce trail-stack usage. (partly)
- Provide generational garbage collection.
What is new in version 5.10.0:
- 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.
What is new in version 5.8.2:
- CLEANUP: Implementation and documentation of the signal interface.
- FIXED: Use --nopce/--pce for (dis)allowing graphics.
- FIXED: GC-bug; omit stripping uwrite-bit from argument stack
- MODIFIED: Removed the prolog flag abort_with_exception; it is no longer used.
- FIXED: Avoid deadlock while trying to exit after a fatal error.
- MODIFIED: is_set/1 now uses sort/2. As a result, non-shared variables are considered different elements; the order is N*log(N) and the predicate may return a resource-error.
- FIXED: After :- module(x)., perform goal-expansion relative to module x.
- CLEANUP: Item#547: Properly quote undefined predicates and alternatives.
- DOC: Clarify current_arithmetic_function/1.
- DOC: Provide availability snippit for C-functions
- FIXED: Previous simplification corrupted variable admin of the compiler. Also added test-case.
- FIXED: Bug#436: unifying a variable with itself creates a reference loop.
What is new in version 5.7.14:
- FIXED: cross-referencer to distinguish : from 0 in meta-predicate declarations
- CLEANUP: Use meta_predicate for predsort/3
- MODIFIED: make/0 now only scans for references to undefined predicates in the modules that contain them. The list_undefined/0 still searches globally.
- ENHANCED: CLP(FD): Arc-consistent global_cardinality/2 if pairs are initially ground.
- FIXED: Handle (multifile) predicates for which some clauses have their body in another module and some in the same. Matt Lilley.
- ADDED: %[<n>]f format to format_time/3 to deal with fractions of seconds. Used by new debug extensions.
- ADDED: debug_message_context(+|-Context) to specify additional context for debug messages (such as a time-stamp).
- FIXED: Make apply_macros do its goal expansion in the context of the system module
- ENHANCED: CLP(FD): Faster global_cardinality/2 if Key-Num pairs are ground.
- FIXED: handle operator-priority in answer printing. Markus Triska.
- ENHANCED: Use toplevel print options for residual goals, cleanup implementation
- ENHANCED: Make term_variables and term_attvars efficient if a list is given (notably term_attvars(Term, [])).
- ENHANCED: Make recorded database use new term-walker code
- ENHANCED: First setup of a skeleton for traversing terms using a simple loop rather than a recursive procedure. Now in use for term_variables/2 and related predicates. The schema appears adequate, but the segmented stack code must be optimized considerably. As is, term_variables/2 is slightly slower (5%), but it can handle deeply nested terms with much less memory and without stack overflows.
- ADDED: term_attvars/2 for better support of copy_term/3. After discussion with Markus Triska.
- ADDED: del_attrs/1 to delete *all* attributes. Simplifies copy_term/3.
What is new in version 5.7.12:
- Performance improvement on larger programs is between 10 and 40%, depending on the programming style. Notably the constraint solvers profit significantly. Small programs sometimes show much bigger speedups.
- Since 5.7.4, updated module system
- Lots of cleanup in naming and modularization of the codebase.
Comments not found