pkgsrc changes:
- Rename swi-prolog to swipl to follow upstream nomenclature
- Add all main packages (except X11) to swi-prolog-lite.
After CMake migration in order to generate the documentation and being able
to use it (e.g. via help/2) it is needed to add basic, archive, ssl and term
packages.
All X11 packages are provided by swi-prolog-packages.
- Adjust pkgsrc Makefile-s logic to upstream CMake migration:
o Uncoditionally disable not wanted packages in Makefile.common (to avoid
possible PLIST mismatches; please note that this will probably disable
tipc package on Linux!).
All other installed packages are enabled/disabled via
swi-prolog-{lite,packages,jpl} Makefile.
o Add libarchive, ossp-uuid and openssl build dependency to
swi-prolog-packages. Despite these are provided by swi-prolog-lite
they are needed as part of the build of swi-prolog-packages too.
o Remove no more needed logic to check and eventually start X server to
build documentation. Should address PR pkg/42047.
- Remove an unconditional CHECK_WRKREF_SKIP, this was needed on FreeBSD
but unfortunately it is not clear why. If this is still needed please let
me know in order to try to investigate further and address that.
- Bump API requirements to 8.0.1 in buildlink3.mk to be on the safe side
now that shared libraries are provided on all platforms.
Changes:
8.0.1
-----
Indexing on multiple arguments together, indexing inside compounds,
Mode-directed tabling, saved states using ZIP files, many deployment
enhancements. Moved build environment to CMake and removed most of
the build tool dependencies. Builds documentation along with the
binary.
Please note that this is just a short summary. Unfortunately the
complete changelog is very long, full changelog can be found at:
<http://www.swi-prolog.org/ChangeLog?branch=stable&from=7.6.4&to=8.0.1>
pkgsrc changes:
- Add patches/patch-src_os_pl-files.c to avoid overlapping `src'
and `dst' in srtcpy(3). It is an undefined behaviour and it leads to build
issue in swi-prolog-packages on platforms that uses SSP.
- readline dependency is no longer needed for swi-prolog-lite.
The readline functionality is now provided as a package via
swi-prolog-packages.
- Inject CFLAGS via COFLAGS and pass -fPIC via CMFLAGS so that
swi-prolog-jpl will link
- Add patches/patch-src_pl-rsort.c to use FreeBSD qsort_r(3)
instead of using nested functions. This is probably more portable
and has less problems (e.g. does not need for PaX MPROTECT).
Changes:
7.6.x
-----
Major release. Multi-argument indexing, better multi-threaded
performance, threaded global GC (atoms and clauses), mode-directed
tabling, restored same expand and directive semantics for initial
load and reloading files, cleaner initializatin and command line
handling.
7.4.x
-----
Major release. More robust and better scalable support for multi-core
hardware, tabling, engines. Many enhancements to the RDF, HTTP and
SSL libraries. This is the first release licensed under the Simplified
BSD (BSD-2) license.
7.2.x
-----
Major release, providing native key-value support by means of dicts,
native strings using "hello world" syntax, web-accessible Prolog
engines (Pengines) and a high level SQL library called CQL.
Please note that this is just a summary of the most important changes,
for more information please give a look to:
<http://www.swi-prolog.org/ChangeLog?branch=stable>
Notable changes in 5.11.18
--------------------------
Experimental extension to run the development tools in a
separate thread, so you can edit away while your program runs.
Notable changes in 5.11.17
--------------------------
Fix error with quoted wide atoms. This causes write/read to fail
for any term that contains an atom that needs quotes and has
Unicode points >= 256.
This also contains the copy_term/2 patch to exploit sharing ...
Notable changes in 5.11.16
--------------------------
Unicode handling is certainly a step forward wrt. character
classification. Unicode symbols have been modified to `glue'
like ==, =<, etc.
Finally, there is per-thread CPU statistics for MacOS
Finally, selection handling in the Windows console is a bit better.
Trail-stack usage is now significantly less.
Notable changes in 5.11.15
--------------------------
Revert the change to write_canonical/1
Notable changes in 5.11.14
--------------------------
There is a lot of mostly small fixes. The most notably are changes
to the ODBC interface, which now supports Unicode (at least for queries,
not for all aspects). It's got a new option to ODBC connections:
the encoding. The default should work fine on Windows and UTF-8 based
Unix databases. Thanks to Matt Lilley and Carlo Capelli.
There is quite some reorganisation in the sources due to work on sharing
most of the OS interface and I/O between YAP and SWI and make the setup
of packages such that the makefiles can be shared between SWI and YAP.
Notable changes in 5.11.13
--------------------------
This version fixes some more issues in =@=/2, various minor issues
and may have big impact on trail-stack usage of your program.
It also fixes the reported socket issue with XPCE on Win64.
Notable changes in 5.11.12
--------------------------
This contains some quite important fixes, avoiding simply wrong
answers as well as some crashes. Besides the usual small stuff,
it has two important rewrites:
- Standard order comparison now avoids recursion using the C-stack.
This is a bit of a trial. Timing shows that processing last-argument
nested terms is about 10% slower and other nesting is about 50% faster
and no longer causes uncrontrolled stack-overflows. This is promising,
but the amount of work is considerable, notably for this case, where
the possibility of comparison to raise an exception is new.
- =@=/2 is completely rewritten. If you are looking for a challenge,
there is one in the current version of =@=/2 (variant/2). The
implementation is in src/pl-prims.c and the test cases in
src/Tests/core/test_term.pl. =@=/2 has gone through some
iterations. If all is right, the current version
- Fails as soon as it finds a difference, without processing
a whole term.
- Handles rational trees (cyclic terms).
- Deals with variables shared between the argument terms.
Notable changes in 5.11.11
--------------------------
Top level now reveals the internal `sharing' of subterms in answer
substitutions. This notably deals with cyclic terms.
Notable changes in 5.11.10
--------------------------
Floats are no longer printed through the C-library printf using %g.
Instead, Prolog write writes a float such that reading it back
recontructs a float that is bitwise equivalent (==) to the input.
This is based on a library by David M. Gay. The output routine uses
the same rules on when to use exponential notation as the GNU C-library's
%g format. It prints as few as possible digits to reach == equivalence,
but this is typically more than it used to print. If you want fewer digits,
use format/3 (e.g., ~6f) or round (A is round(F*10000)/10000, write(A)).
rdf_reachable/2 now, like rdf_has/3, respects defined RDF predicate properties.
In addition, it provides look-ahead which ensures deterministic success on
the last answer. This means that rdf_reachable(A, owl:sameAs, B) (with either
or both A and B instantiated) behaves as expected and much more efficiently.
There are a lot of changes to quoted syntax, notably for 0'<char> and
some for quoted atoms. Except for \e being read as 27 (esc), all sensible
previously valid input is parsed consistently (I wouldn't be surprised if
it is possible to construct cases where you get different output, but I
would be surprised if any real program is affected). See mailinglist for
details.
New in 5.11.9
Lots of changes. Mostly relevant to (semantic) web.
Also some Windows enhancements, such as better errors from sockets
and portability of extended file operations library.
New in 5.11.8
This version is exactly the same as version 5.10.2.
Mostly a bugfixing release.
New 5.11.7
Lots of stuff. The highlight is on environment issues (PlDoc, PceEmacs),
but there is a lot of other stuff as well.
If you use PlDoc, be aware that the previous release has a security issue.
New in 5.11.6
Many bug fixes and big speedup for some RDF applications (notably
those involving many graphs). The rest are mainly minor issues.
New in 5.11.5
This is a bug-fix release. This version also includes some of
the results of the ISO WG17 meeting in Edinburgh.
There is a modification to absolute_file_name/3 with regard to
directory handling.
There is -hopefully- a fix for a weird conflict around Bool when
compiling using Macports.
Notable changes in SWI-Prolog 5.11.0:
* ODBC now properly handles locale. This means you can
use it with Unicode if you use a UTF-8 based locale.
* Recently reported manifest problems around xpce should be
fixed with help from Degski.
* Message queues can now be destroyed while they have suspended
writers, making pipe-like cooperation between threads much easier.
* Using set_prolog_flag(qcompile, auto), you can ask the system
to automatically maintain quick-load versions of your source-files.
This can greatly improve development comfort for really large
applications.
* Jeff Rosenwald contributed an interface for Google protocol buffers
Notable changes in SWI-Prolog 5.9.10:
* A lot of stuff has been added to enhance the compatibility to SICStus.
This involves some changes to the kernel, some additions to the libraries
and starting and populating a SICStus emulation layer. All this was
initiated by the with to make the Alpino NLP parser suite
(http://www.let.rug.nl/vannoord/alp/Alpino/) available for SWI-Prolog.
Thanks to Gertjan van Noord, this is now almost reality (there
are some remaining tweaks, notably with the Tcl/Tk interface).
* Also various enhancements and fixes to the tabbed-editing support for
the built-in editor.
Use portable way to compute timezone offset instead of timezone/daylight,
the former is a function on some BSDs and the latter doesn't even exist
in DragonFly. Fix PLIST on swi-prolog-packages to not use NetBSD ELFism.
Bump revision of swi-prolog-lite and swi-prolog-packages.
The 5.6.x release consolidates the 5.5.x development stream started in 2004.
Highlights:
* UNICODE character set support
* Unbounded integer arithmetic and rational numbers
* New and faster CHR release
* Added clp(r) constraints over reals
* Many enhancements to the web and notably sematic web libraries
* Much more ...