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>
then automatically generate a PLIST that says "${PKGNAME} has no files".
* If PLIST_SRC and GENERATE_PLIST are not set in a package Makefile,
and no PLIST files exist, then fail during the package build with
PKG_FAIL_REASON.
* Remove "intentionally empty" PLISTs again.
Now, the easy way to say that a package installs no files is to just
add the following to the package Makefile:
PLIST_SRC= # empty
that directly manipulate empty PLISTs.
Modify plist/plist.mk so that if the PLIST files are missing and no
GENERATE_PLIST is defined, then the package fails to build.
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 ...
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.
curses.buildlink2.mk. This was wrong because we _really_ do want to
express that we want _n_curses when we include the buildlink2.mk file.
We should have a better way to say that the NetBSD curses doesn't
quite work well enough. In fact, it's far better to depend on ncurses
by default, and exceptionally note when it's okay to use NetBSD curses
for specific packages. We will look into this again in the future.
VERSION 4.0.7
=============
* FIXED: stream_property/2 to report close_on_abort. Was documented,
but not implemented ...
* ADDED: Informational print message when abort closes a stream.
* ADDED: close_hook to IOSTREAM to allow setting a foreign hook on the
closure of any stream
* ADDED: library(memfile) to the package clib providing streams to
memory-buffers.
* ADDED: library(cgi) from package clib is now standard part of the
Windows distribution.
* ADDED: stream_property/2 and set_stream/2 set and query the buffer mode
of existing streams. Also added eof_action(Action) and
close_on_abort(Bool) to set_stream/2.
* MODIFIED: The sequence X=!, X doesn't cut any longer as this was
in conflict with the ISO standard (Bart Demoen).
* FIXED: Memory leak when an exception is thrown from the generator
of findall/3, bagof/3 or setof/3. Reported by Bart Demoen.
* FIXED: Possible infinite loop looking for attached state. Spotted with
fix by Nide Naoyuki. Thanks!
* PORT: Added various issues to make SWI-Prolog compile on BeOS. Thanks
to Axel Doerfler.
* FIXED: Make plld using -lplmt if prolog is multi-threading. Reported
by Sergey Tikhonov.
* ADDED: Documentation for library(check), library(registry),
library(netscape) and library(url).
* ADDED: library(readutil) with some utility predicates to read larger
units from streams and files. Started structured documentation of
the library in the SWI-Prolog reference manual.
* ADDED: simple/1 to quintus compatibility library. Also exported some
more of the predicate-based arithmetic from there.
* ADDED: Notes on slight but useful difference between ISO and SWI
exception-handling to the manual of throw/1. Thanks to Bart Demoen.
* ENHANCED/FIXED: expand_file_name/2. Problems when expanding to files
holding wildcards in their name and removing the limit on matching files
(was 1024). Completely re-written the filesystem code. Pattern-matching
code is retained.
* FIXED: include/1, reported by Sebastian Sardina. Bug introduced in
4.0.4.
VERSION 4.0.6
=============
* PORT: Fixed PL_unify_term() and calls to distinguish between int and
long. User foreign-code that must be portable to 64-bit should verify
their calls.
* PORT: Fixed string-handling on 64-bit platforms. Made the compilation
of all tools and standard libraries fairly clean on the INTEL Itanium
(Merced) processor using gcc and Linux. Thanks to the SuSE team for
providing access to their hardware.
Make all default stack-limits a factor of the word-length
* PORT: Included some patches from the SuSE team.
* ENHANCED: MT-Version: install libpl.a as libplmt.a for the
multi-threaded version.
* FIXED: MT-Version: open xterm for thread on systems using the
/dev/pts filesystem. On these terminals the xterm is started
using <basename of slave>/<descriptor>
* FIXED: MT-Version: deadlock and corruption problem. Modified
mutex-structure slightly, so new problems may have been be
introduced.
VERSION 4.0.5
=============
* FIXED: Actually make re-hashing predicates work. This bug causes
large (dynamic) predicates that are queried while they are build
to show linear rather than constant-time access behaviour. Perfomance
difference on victim programs can be dramatic!
* ENHANCED: GNU-readline interface. Detect useful additions from readline
4.2, avoid type-conflicts and handle re-entrance through XPCE much more
cleanly as well as aborts.
* PORT: Many C-compiler warnings, making the native IRIX cc compile
SWI-Prolog silently. Improved detection of wait() variations.
Thanks to Jean Wang for providing me with access to their machine.
* ENHANCED: Handling of prolog_edit:select_location/3. Enhancement
exploited by XPCE to use GUI-based selection if running from GUI.
* ADDED: -s file to load a script-file in addition to the user
initialisation file.
* ADDED: -q commandline option to make the system operate silently.
* ADDED: PrologScript support using #!, providing direct scripting
in Unix and additional parameters on MS-Windows.
* FIXED: Wipe the anonymous clauses for meta-calling on $dcall/1 as
soon as possible. Reported by Stefan Mueller.
* ADDED: Save home in saved-state for class development and kernel. This
enables saved-states to find the installed SWI-Prolog. Especially
useful for Windows.
* ADDED: Save default stack limits in the Windows registry and add a
menu item to the manpce/0 File/Edit Preferences menu to manage these
registry settings.
VERSION 4.0.4
=============
* FIXED: Problem in GUI tracer tracing predicates loaded from ?- [user].
* MODIFIED: The file-reading predicates (consult, use_module, load_files,
etc.) no longer change current input to the file loaded. This implies
that read/1 and friends read from the current input before the load
predicate was started rather then the file we are loading from.
* FIXED: Setting break-points on facts, or in general on the last
(I_EXIT or I_EXITFACT) instruction of a clause.
VERSION 4.0.3
=============
* ADDED: New hooking system for help/0, help/1 and apropos/1.
* FIXED: Allow for -f "c:\..." in Windows.
* ENHANCED: Moved boot/listing.pl to the library, reducing the
footprint and startup time. Also modernised the code a bit,
allow for hooks, so listing(class->method) lists an XPCE method
and allow for partial listing: listing(foo(a, _)) to get only
the clauses for which a unifies to the first argument.
* FIXED: tracer not to trap cut-port in system predicates (GUI).
* FIXED: Atom-GC problem: global options structured used pointers
to string of unlocked atoms.
* ENHANCED: the GUI debugger. Too much to name it here.
* INTERNAL: Moved message-activation of spy and nospy predicates to
foreign-code to make sure it gets always called.
* FIXED: Bug in recorded database, reported by Michael Heerdegen.
* FIXED: Removed trace of rl_add_history()
* FIXED: Handling of :- dynamic Module:Name/Arity in PceEmacs
cross-referencer.
* FIXED: Cleanup of code for setting break-points. Make this code
work again from PceEmacs.
* ENHANCED: prolog_to_os_filename(-Pl, +Os) to convert 8+3 filenames
to long filenames.
* ENHANCED: Allow setting spy-point from PceEmacs.
* CLEANUP: Replace some more warnings with exceptions.
* ENHANCED: library(url) for breaking down and constructing URL strings
with some new functionality. Additions by Lukas Faulstich. Also
fixed a dangling choice-point in decoding a www-encoded string.
* ENHANCED: Moved tty_size/2 from library(tty) to built-in, exploiting IOCTL
calls to fetch the terminal size when available. This make tty_size/2
return the actual values rather than constant values from the moment of
startup. Reported by Robert van Engelen.
VERSION 4.0.2
=============
* FIXED: Memory leak in PL_get_chars() using CVT_WRITE. Reported by
Marcin Golebski.
* INSTALL: export CIFLAGS=/path/to/local/include should now be
honoured correctly by configure (Lukas Faulstich)
* FIXED: absolute_file_name/3 not to trust its cache.
* ADDED: callable/1 for better compatibility.
* FIXED: $qlf_info/4 to request information on QLF files. Also turned
a couple of common warnings into proper exceptions.
* FIXED: Avoid the usage of the appearently badly supported Win32 function
GetFileInformationByHandle(), now using GetFileSize(). This fixes some
false-alarm about not being able to find the system resources.
* REMOVED: ed/1, also from the backward compatibility module. Edit/1
is the generic editing front-end.
* FIXED: writeq(a(b,c,(d,e))), reported by Joachim Katzer.
* FIXED: Memory leak in expand_file_name/2. Reported by Daniel Cote.
* FIXED: Print error-locations in files holding the ~-character.
Thanks to Mike Maxwell.
VERSION 4.0.1
=============
* PACKAGE: Many installation patches, added libraries, notably to
the XPCE subsystem.
* ADDED: Skeleton dotfiles for both Prolog and XPCE to the dotfiles
directory.
* FIXED: plrc utility for modifying archives. Thanks to Lourens
van der Meij.
* FIXED: ANSI-C incompatibility, breaking compilation using AIX cc
(Sterling Smith).
* FIXED: end_of_file issues in readln/[1,2,5] (library(readln)) and
modernised the code a bit.
* FIXED: Write out-of-range floating point numbers properly (Bart Demoen).
first component is now a package name+version/pattern, no more
executable/patchname/whatnot.
While there, introduce BUILD_USES_MSGFMT as shorthand to pull in
devel/gettext unless /usr/bin/msgfmt exists (i.e. on post-1.5 -current).
Patch by Alistair Crooks <agc@netbsd.org>
ISO/Edinburgh-style Prolog compiler. Compliant with Part 1 of the ISO
standard for Prolog. Covers all traditional Edinburgh Prolog features
and shares many features with Quintus and SICStus Prolog, including a
compatible module system. Very fast compiler, garbage collection (also
on atoms), fast and powerful C/C++ interface, autoloading,
GNU-readline interface. SWI-Prolog supports architectures with 32-bit
or greater (64-bit) word-length. Packages for process management,
TCP/IP, XML/SGML, RDF, and the GUI toolkit XPCE, are also available.