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>
Instead of hardcoding the check of 64bit platforms just reuse LP64PLATFORMS and
ABI (shamelessy stolen from lang/python27/Makefile).
This fixes the build of swi-prolog-lite on aarch64 and probably
other 64bit platforms too previously not listed.
MASTER_SITES= site1 \
site2
style continuation lines to be simple repeated
MASTER_SITES+= site1
MASTER_SITES+= site2
lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
accordingly.
---------------------------------
swi-prolog
swi-prolog-jpl
swi-prolog-lite
swi-prolog-packages
ChangeLog, from 6.6.5 is not known, presumably bug fix.
(Another 7.x development branch is published)
Fixes PR 48067 by Matthias Kretschmer.
Tests: Backported to 2013Q1, it passes "make test" on NetBSD/i386
6.1, the PR submitter's quick test as well as the PR submitter's
extended application that triggered the PR.
are replaced with .include "../../devel/readline/buildlink3.mk", and
USE_GNU_READLINE are removed,
* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
are replaced with .include "../../mk/readline.buildlink3.mk".
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.
Changes in 5.11.4:
* ADDED: library coinduction.pl, after discussion with Gopal Gupta.
* CLEANUP: Share more of the Makefiles between Windows and the rest
* FIXED: destruction of a queue if a thread is waiting to write
* FIXED: error by current_blob/2.
* MODIFIED: incorrect handling of (^)/2 in setof/3 and bagof/3.
The new version should now fully comply to ISO. As of now,
- The predicate ^/2 no longer exists
- ^ is only handled by bagof/setof if it appears
directly at the toplevel of the 2nd argument.
E.g., the following is NOT allowed:
setof(X, (foo(X); Y^foo(Y)), L).
Code must be rewritten. At runtime, problems are signalled
by ^/2 being undefined. compile-time analysis can be achieved using
gxref/0 (or check/0 for quick-and-dirty).
* FIXED: GC error when nesting (if->then/*no-else*/) inside \+.
Thanks to test-case by Keri Harris.
* FIXED: retractall(x(X,X)). Roberto Tiella.
Changes in 5.11.3:
* FIXED: Top level now performs expand_goal/2 *after* correcting the
goal.
* MODIFIED: PL_CUTTED -> PL_PRUNED. Kept PL_CUTTED as a #define for
compatibility.
* FIXED: Correctly read RDF/XML that is in UTF-8 on Windows.
* ENHANCED: Faster enumeration of subjects for writing small RDF gaphs
* ENHANCED: Better sizing of the hash-tables.
* CLEANUP: Use size_t in many places for RDF-DB
* ADDED: RDF-DB index on +,+,+. This provides a significant speedup in
loading databases with multiple objects on the same SP.
* ADDED: Syntax closer to ISO with set_prolog_flag(iso,true).
See Prolog flag iso for a detailed description.
* MAINT: Fix compilation under -DO_DEBUG. Andy Valencia.
* FIXED: Syntax: proper bracketing of arguments
* MODIFIED: Simpler syntax within { }.
According to 6.3.6 the term within curly brackets is read with
priority 1201, so no extra parentheses are needed.
Changes in 5.11.2:
* ADDED: lang_equal/2 to RDF library to test language equality. Jacco
van Ossenbruggen
* FIXED: Error from http_absolute_location/3 if an alias is not
defined.
* FIXED: Avoid error in edit/1 hook if an HTTP path-alias is undefined.
* ADDED: Just-in-time creation of thread-pools for the HTTP server
using the new hook
http:create_pool/1. Cleanup of the code for faster spawning of
worker-threads.
* MODIFIED: Threaded server defaults: keep-alive-timeout is now 2
seconds (was 5)
and the worker-count is now 5 (was 2). Worker-count is increased
because many
servers need it as since version 5.9.x there is hardly a price for
more workers.
* ADDED: option hide_children(Bool) to make prefix handlers hide their
children
and allow http_delete_handler to delete a handler-by-id.
* PORT: Realise set_end_of_file in Windows version
* ENHANCED: Implement safe-locking of the RDF persistent database
* ADDED: set_end_of_stream/1.
* PORT: Fix for MS VS2010 compilation. Degski.
* ADDED: lang_matches/2 to library(rdf_db)
* FIXED: url_to_filename/2 in rdf_persistency was broken due to
steadfastness
fix in DCG (commit 1a1a5699). Jacco van Ossenbruggen.
* FIXED: list_settings/0. Li Li.
* FIXED: handling of = and contains in xpath. Carsten van Weelden.
* ADDED: library(semweb/sparql_client) providing a SPARQL client API.
* ENHANCED: Layout for listing where the body resides in another
module.
* ENHANCED: Provide style pldoc(Id) with each PlDoc handler
* ADDED: reply_html_page/3: re-stylable HTML pages
* FIXED: Possible crash in cleanup handlers.
See comment above discardChoicesAfter() for more details.
* ENHANCED: Make it possible to give syntax-warnings with exact
positions.
* ADDED: Warnings for missing quotes for , and |
* MODIFIED: Stricter list syntax. E.g. [a,b|c,d] or [a|b|c] are now
illegal.
In the unlikely case this was intended, the term after the bar (|)
must be
enclosed in brackets. I.e. [a,b|(c,d)] or [a|(b|c)].
* FIXED: Syntax: proper quoting of | and ,
* PORT: Improve behavioral consistency between 32-bit and 64-bit
allocation
* FIXED: Memory leak for threads allocating chunks of 512 bytes. Matt
Lilley.
* ADDED: computing SHA incrementally. Ivan Shmakov
* INSTALL: Item#567: make check of xpce loading user's .plrc
* FIXED: steadfastness in DCG translation. Item#379
* FIXED: Item#559: hanging system in GC. Only affects 32-bit platforms
when doing GC on large stacks that have >8Mb chunks of continuous
garbage. Ulrich Neumerkel.
* DOC: errors for atom_length/2. Ulrich Neumerkel.
* ADDED: Library(http/js_write) to embed JavaScript calls into HTML
pages
* FIXED: Processing of stack-limit options in thread_create/3. Jacco.
* FIXED: Avoid direct access to private predicates of module error.
* ADDED: rdf_reachable/5, providing a distance limit and returning the
distance.
* ADDED: rdf_is_resource/1 and rdf_is_literal/1 for completeness.
* FIXED: Thread-creation if ulimit -s == infinite.
* FIXED: Do not skip character after . in turtle parser. Lourens van
der Meij.
* PORT: Windows snprintf --> _snprintf
* MODIFIED: On systems that provide getrlimit(), the default
C-stack-size of
created threads is the same as that of the main thread. This was
already
the default on Linux, but not on e.g. MacOS.
* ADDED: statistics(c_stack, StackSize) to query the system (C-)stack
limit.
For consistency, thread_create now also accepts c_stack as parameter.
This patch also cleans some type-issues with regard to stack-size
specification and removes 2Gb limit for Win64 due to the use of long.
* ADDED: Skos prefix
* ADDED: http_server_property/2. This patch also does some cleanup to
the meta-predicate declarations for the multi-threaded HTTP server.
* FIXED: Check for integer overflows in numeric-arguments for
format-specifiers
* FIXED: Possible buffer overflow on format('~200f', [1]). Mike
Elston.
* ADDED: library(http/http_openid), supporting OpenID consumers and a
server.
* ADDED: library(http/http_host) to obtain the public hostname of our
HTTP service
* CLEANUP: Stricter type-checking in load_files/2. Discussion on
comp.lang.prolog.
* FIXED: Old naming conventions. Julian Zubek.
* FIXED: Atom-GC for blobs that do not have PL_BLOB_UNIQUE. Samer
Abdallah.
* ADDED: Allow for selective importing of operators in use_module/2.
After discussion with Vitor.
* PORT: Do not use chrpath if the kernel is not a shared object
* PORT: Some type-issues in socket libs (nonblockio.c)
I do not think any of these could have been fatal. They just produce
alarming messages from the compiler.
Changes in 5.11.1:
* PORT: Windows: make fake EWOULDBLOCK error compatible with new def in
VS2010
* PORT: Fix download of Windows prerequisites for Windows 7. Degski.
* ADDED: Support for "406 Not Acceptable" responses in the HTTP server.
* INSTALL: make prepare check all checked-out modules, regardless of
-a.
* FIXED: Cleanup after uncaught stack-overflow exceptions. Paul
Singleton.
* DOC: Fixed code for skeleton client. Mike Elston.
* FIXED: ?= for cases where the arguments do not unify. Marco Montali.
* FIXED: Possible crash on stack-shift in cleanup handler. Jochem
Liem.
* FIXED: Possibly wrong association of $and in frozen/2. Samer
Abdallah.
* FIXED: Handling option register_namespaces(true) in rdf_load/2.
Vangelis Vassiliadis.
* MODIDIED: rdf_assert/4 now discards *complete* duplicates (incl
source).
* PORT: Avoid including termios.h into pl-os.h to localise the
dependencies
and (hopefully) make the system compile on Solaris.
* PORT: Get prototype for posix_openpt(), avoiding warning
* PORT: Move time-dependencies where they are needed; use POSIX
clock_gettime() if it is provided.
* DOC: Enhance comments of rb_insert/4 and rb_insert_new/4.
* MODIFIED: Make rdf_meta/1 module-aware. This means that calls are
only expanded if they resolve to the exact predicate that is declared
using rdf_meta. This might break code relying on the old behaviour
that expansion took place regardless of the module.
It is possible to get a warning on calls that used to be expanded
and are now not using this call before *loading* the program:
?- debug(rdf_meta).
The new code also expands NS:Local appearing literally in the head
of rdf_meta-declared clauses.
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.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
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 ...
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.