c1a999bfb1
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1989 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2829 lines
110 KiB
Plaintext
2829 lines
110 KiB
Plaintext
================================================================
|
|
Logtalk - Open source object-oriented logic programming language
|
|
Release 2.30.8
|
|
|
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
|
================================================================
|
|
|
|
|
|
RELEASE NOTES
|
|
=============
|
|
|
|
|
|
2.30.8 - November 9, 2007
|
|
|
|
Fixed bug in the compilation of synchronized predicates that breaks
|
|
Logtalk on single-threaded Prolog compilers.
|
|
|
|
|
|
2.30.7 - November 5, 2007
|
|
|
|
Updated the multi-threading built-in predicates threaded_notify/1 and
|
|
threaded_wait/1 to accept lists of notifications.
|
|
|
|
Added a new read-only compiler flag, "context_switching_calls", allowing
|
|
context switching calls to be disabled (they are enabled by default).
|
|
|
|
Updated the B-Prolog config file to recognize eager_consume/1 directives.
|
|
Updated the XSB config file to recognize use_subsumptive_tabling/1,
|
|
use_variant_tabling/1, index/1, thread_private/1, and thread_shared/1
|
|
directives.
|
|
Updated the YAP config file to recognize thread_local/1 directives.
|
|
Updated the SICStus Prolog config files to recognize volatile/1 directives.
|
|
Updated the SWI-Prolog config file to recognize thread_local/1, index/1,
|
|
and hash/1 directives.
|
|
|
|
Changed the backup directory names generated by the "cplgtdirs.*" shell
|
|
scripts to not include whitespace characters.
|
|
|
|
Updated the "xsbmtlgt.sh" integration script to start XSB-MT using the
|
|
new command-line option "--shared_predicates" (requires current XSB CVS
|
|
version). Updated the Windows GUI installer to support running Logtalk
|
|
with XSB-MT.
|
|
|
|
Added a multi-threading example, "barriers", of barrier synchronization.
|
|
|
|
Updated the "functions" example sample queries for compatibility with the
|
|
ISO Prolog standard regarding representation of float numbers.
|
|
|
|
Added a workaround for a parsing bug in XSB while compiling the "sicstus"
|
|
example.
|
|
|
|
|
|
2.30.6 - October 21, 2007
|
|
|
|
Replaced calls to the proprietary current_thread/2 predicate in the
|
|
Logtalk runtime by calls to the thread_property/2 predicate as per
|
|
the ISO DTR on multi-threading predicates. Added a goal_expansion/2
|
|
clause to the SWI-Prolog config file to automatically switch between
|
|
the current_thread/2 and thread_property/2 predicates depending on
|
|
availability.
|
|
|
|
Changed handling of the encoding/1 directive by the Logtalk compiler in
|
|
order to improve compatibility with YAP and SICStus Prolog. Removed from
|
|
the config files the now obsolete '$lgt_set_stream_encoding'/2 predicate
|
|
definition. Renamed the compiler option "supports_encoding_dir" to
|
|
"encoding_directive" and changed its possible values to "unsupported",
|
|
"full" (used in both Logtalk source files and compiler generated Prolog
|
|
files), and "source" (used only in Logtalk source files).
|
|
|
|
Renamed compiler option "underscore_vars" to "underscore_variables".
|
|
Renamed compiler option "supports_break_predicate" to "break_predicate".
|
|
|
|
Improved the performance of recursive predicate definitions synchronized
|
|
by mutexes. Explicitly create all mutexes used by an entity at load time
|
|
for compatibility with XSB. Several changes to multi-threading support in
|
|
order to improve compatibility with current and forthcoming versions of
|
|
YAP, SWI-Prolog, and XSB.
|
|
|
|
Updated the Logtalk compiler for compatibility with both logical and
|
|
immediate update semantics when compiling synchronized predicates.
|
|
|
|
Updated the meta-predicate compilation sanity checks to verify the
|
|
existence of the minimum number of normal arguments in a clause head
|
|
required by the closure of maximum arity.
|
|
|
|
Added a workaround for the lack of built-in support for character
|
|
unbuffered input when using the Logtalk built-in debugger to the config
|
|
files of ALS Prolog, B-Prolog, Ciao, CxProlog, IF/Prolog, JIProlog,
|
|
Prolog II+, SICStus Prolog, XSB, and YAP. Thanks to Parker Jones for the
|
|
bug report.
|
|
|
|
Updated the YAP config file to auto-detect working Unicode support when
|
|
setting the "encoding_directive" compiler option.
|
|
|
|
Updated the XSB config file to auto-detect multi-threading support
|
|
when setting the "threads" compiler option. Added an integration script
|
|
(xsbmtlgt.sh) and supporting files for the multi-threaded version of XSB
|
|
(requires current development version, available from the XSB CVS server).
|
|
|
|
Added a MacPorts portfile for building MacOS X installer packages.
|
|
|
|
Added a BOM to the "babel.lgt" UTF-8 file in the "encodings" example in
|
|
order to improve compatibility with SICStus Prolog.
|
|
|
|
Updated the library object "random" by replacing the synchronized/0
|
|
directive by a synchronized/1 directive listing only the predicates
|
|
that modify the random number seed.
|
|
|
|
Added syntax coloring support for the GtkSourceView 2.x text widget
|
|
(used e.g. on the Gnome's Gedit text editor and on the MonoDevelop IDE).
|
|
Removed syntax coloring for the obsolete atomic/1 predicate directive
|
|
from the support files of Source-highlight, Emacs, SubEthaEdit, jEdit,
|
|
and Kate. Optimized the regular expressions used in most syntax coloring
|
|
configuration files of supported text editors.
|
|
|
|
|
|
2.30.5 - September 19, 2007
|
|
|
|
Added new multi-threading built-in predicates threaded_call/2,
|
|
threaded_once/2, threaded_exit/2, and threaded_peek/2. These new
|
|
predicates support the use of threaded call identifier tags in order to
|
|
link specific threaded_call/2 and threaded_once/2 calls to specific
|
|
threaded_exit/2 and threaded_peek/2 calls. Extended the "nondet" example
|
|
in order to illustrate the new functionality.
|
|
|
|
Changed the implementation of the built-in predicate threaded_exit/1 in
|
|
order to avoid blocking when its argument is subsumed by the argument of
|
|
the corresponding threaded_call/1 call instead of being a variant.
|
|
|
|
Updated the Logtalk compiler to encapsulate resource errors inside
|
|
error/2 exception terms (as specified in the ISO Prolog core standard).
|
|
|
|
Corrected a bug in the library object "lgtunit" (wrong arity on two
|
|
failed_test/2 predicate calls).
|
|
|
|
Corrected two problems with the "testing" example: a wrong call on the
|
|
object "dyn_tests" and a missing entry in the "libpaths.pl" file. Removed
|
|
two pointless dynamic predicate directives in the "buffer" example.
|
|
|
|
Improved documentation of multi-threading programming and predicate
|
|
properties. Corrected the reference manual page describing the threaded/0
|
|
directive.
|
|
|
|
Simplified installation scripts by moving shared distribution cleaning
|
|
code into the "cleandist.sh" script. Updated the "install.sh" script to
|
|
set the installation prefix to "/usr" on Debian systems. Updated the
|
|
Linux RPM spec file in order to clean the building directory after the
|
|
package creation.
|
|
|
|
|
|
2.30.4 - August 22, 2007
|
|
|
|
Allow the argument of {}/1 calls to be a variable at compile time.
|
|
|
|
Updated the Qu-Prolog config file to match and require version 8.1 and
|
|
added a "qplgt" integration script.
|
|
|
|
Updated the XSB config file to match and require version 3.1 and to
|
|
take advantage of the compiler option optimize/1 when loading Logtalk
|
|
generated Prolog intermediate files.
|
|
|
|
Added a new library object, "lgtunit", providing preliminary support for
|
|
writing and running unit tests. Added a new example, "testing", defining
|
|
sample unit tests.
|
|
|
|
Added a new multi-threading example, "threads/tak", implementing the
|
|
Takeuchi function (recursive arithmetic).
|
|
|
|
Updated the "threads/philosophers" example to use notifications instead
|
|
of a dynamic predicate for representing chopstick availability. Added an
|
|
alternative implementation using a parametric object. Improved example
|
|
documentation.
|
|
|
|
Updated the "benchmarks" example to allow comparisons between calls to
|
|
imported category predicates and calls to local object predicates.
|
|
|
|
Updated Emacs support in order to fix problems with the syntax-coloring
|
|
of some Logtalk built-in predicates and applied a patch contributed by
|
|
Nicolas Pelletier to workaround a compatibility problem with XEmacs.
|
|
|
|
Updated jEdit support in order to fix a problem with the syntax-coloring
|
|
of the :/1 control construct.
|
|
|
|
|
|
2.30.3 - July 9, 2007
|
|
|
|
Updated the multi-threading built-in predicate threaded/1 to support
|
|
both conjunctions of goals (akin to and-parallelism) and disjunctions
|
|
of goals (akin to or-parallelism) as an argument.
|
|
|
|
Removed the experimental threaded_race/1 multi-threading built-in
|
|
predicate (its or-parallelism functionality is subsumed by the updated
|
|
threaded/1 predicate).
|
|
|
|
Corrected a bug in the implementation of the multi-threading built-in
|
|
predicate threaded_exit/1 when there are more than one thread running
|
|
the same non-deterministic goal (the fix ensures that all alternative
|
|
solutions per threaded_exit/1 call come from the same computing thread).
|
|
Thanks to Paul Crocker for the suggested bug fix solution.
|
|
|
|
Updated the sample queries in the "threads/buffer"/SCRIPT.txt" file to
|
|
match the updated entities in the example.
|
|
|
|
Updated the "threads/functions" example to use the new version of the
|
|
threaded/1 multi-threading built-in predicate.
|
|
|
|
|
|
2.30.2 - June 24, 2007
|
|
|
|
Updated the Logtalk compiler to throw a compilation error when duplicated
|
|
or conflicting predicate scope directives are found.
|
|
|
|
Updated the Logtalk compiler to correct a cosmetic glitch when reporting
|
|
compilation errors.
|
|
|
|
Updated the Logtalk compiler to check for mismatches between the argument
|
|
of this/1 calls and the parametric object identifier.
|
|
|
|
Corrected a bug in the implementation of the multi-threading built-in
|
|
predicate threaded_ignore/1.
|
|
|
|
Revamped the "threads/buffer" example to support setting the buffer
|
|
maximum number of items.
|
|
|
|
Added a new DCG example, "dcgs/morse.lgt", for parsing messages in Morse
|
|
code.
|
|
|
|
Extended the "parametric" example to illustrate a solution for dealing
|
|
with inheritance when defining "setter" predicates/methods that return
|
|
updated object identifiers.
|
|
|
|
|
|
2.30.1 - June 12, 2007
|
|
|
|
Added a new, experimental control construct, :/1, for calling imported
|
|
category predicates without using message sending mechanisms.
|
|
|
|
Added preliminary support for static binding when calling imported
|
|
category using the new :/1 control construct for categories compiled
|
|
and loaded using the compiler option "reload(skip)".
|
|
|
|
Added a new control construct, <</2, which allows proving a goal within
|
|
the context of a specified object. Useful for debugging and for writing
|
|
object unit tests.
|
|
|
|
Improved multi-threading support in order to make the built-in predicate
|
|
threaded_exit/1 generate an exception instead of blocking indefinitely
|
|
waiting for a reply from a non-existing thread.
|
|
|
|
Updated the Logtalk compiler to generate an error when compiling from a
|
|
source file new definitions for built-in entities.
|
|
|
|
Updated the Logtalk compiler to generate simpler clauses for the book-
|
|
keeping table of local predicate definitions for parametric entities.
|
|
|
|
Updated the config files for ECLiPSe, Ciao Prolog, SICStus Prolog,
|
|
SWI-Prolog, and YAP to use the renamed hook predicates introduced in
|
|
Logtalk 2.30.0 for parsing Prolog proprietary directives.
|
|
|
|
Updated the "benchmarks" example to compare the performance of calls to
|
|
imported category predicates when using a message to "self" and a direct
|
|
call.
|
|
|
|
|
|
2.30.0 - May 28, 2007
|
|
|
|
Added preliminary support for static binding when sending messages to
|
|
objects compiled and loaded using the compiler option "reload(skip)".
|
|
|
|
Allow non-instantiated arguments at compile time for the multi-threading
|
|
built-in predicate threaded/1.
|
|
|
|
Simplified and optimized the implementation of Logtalk multi-threading
|
|
support. Use a single dispatcher thread for all objects instead of each
|
|
object running its own dispatcher in order to minimize the number of
|
|
created threads (which can be problematic on 32 bits systems). Updated
|
|
the built-in predicate threaded/1 to make it deterministic and opaque to
|
|
cuts (similar to once/1).
|
|
|
|
Updated the Logtalk built-in database methods to always interpret rules
|
|
whose body is the control construct true/0 as facts. Corrected a bug when
|
|
compiling dynamic predicates that would prevent using of the clause/2
|
|
built-in database method. Corrected a bug when using the Logtalk built-in
|
|
database method clause/2 with entities compiled in debug mode. Improved
|
|
predicate lookup caching when asserting and retracting dynamic facts.
|
|
|
|
Improved detection and reporting of entity existence errors.
|
|
|
|
Added a quit option, "q", to the Logtalk built-in debugger. Modified
|
|
the debugger behavior to automatically switch to trace mode when a spy
|
|
point is found.
|
|
|
|
Added two new compiler options, "xmldir" and "tmpdir", allowing per
|
|
project definition of directories for storing XML documenting files
|
|
and for storing intermediate compilation files (e.g. Prolog files).
|
|
Removed the config file predicate '$lgt_alt_directory'/2.
|
|
Older config files are incompatible with this new Logtalk version.
|
|
|
|
Added a shortcut to the Logtalk built-in predicate logtalk_load/1, {}/1,
|
|
to all config files (defined there in order to be easy to comment it out
|
|
in case of conflict with some Prolog native feature or lack of compliance
|
|
with the ISO Prolog standard regarding the definition of the {}/1 syntax.
|
|
|
|
Allow the compiler flag "misspelt" to be set to "error".
|
|
|
|
Updated the Logtalk compiler to not try to clean-up the dynamic predicates
|
|
of redefined entities when reloading source files. Most Prolog compilers
|
|
already behave as expected when reloading the intermediate Prolog files
|
|
generated by the Logtalk compiler. For those Prolog compilers that do not
|
|
replace old definitions for dynamic predicates with the new ones, it is
|
|
not possible for Logtalk to implement a workaround that would work
|
|
correctly in all cases. Consult the "configs/NOTES.txt" file for more
|
|
information.
|
|
|
|
Corrected a bug that prevents abolishing a dynamic entity loaded from a
|
|
source file. Thanks to Victor Noel for the bug report.
|
|
|
|
Renamed the '$lgt_copy_pl_directive'/1 and '$lgt_rewrite_pl_directive'/2
|
|
config files predicates to '$lgt_rewrite_and_copy_pl_directive'/2 and
|
|
'$lgt_rewrite_and_recompile_pl_directive'/2.
|
|
|
|
Updated the config file for B-Prolog to match (and require) the new 7.0
|
|
version; updated and simplified the corresponding integration scripts.
|
|
|
|
Updated the XSB POSIX integration script to automatically detect if we
|
|
are running the XSB stable version of the XSB CVS version.
|
|
|
|
Added basic support for tabling to the config files of B-Prolog, XSB,
|
|
and YAP. Added a simple example of using tabling directives within
|
|
objects.
|
|
|
|
Updated the SWI-Prolog and YAP config files to automatically detect if
|
|
the Prolog systems have been compiled with multi-threading support and
|
|
to set the Logtalk compiler flag "threads" accordingly.
|
|
|
|
Corrected a bug when running Logtalk with SWI-Prolog that prevented the
|
|
use of alternative compilation directories (i.e. turning on the "altdirs"
|
|
compiler flag). Corrected a bug when running Logtalk with SWI-Prolog that
|
|
can prevent make/0 from recompiling and reloading modified Logtalk source
|
|
files. Updated the SWI-Prolog integration script, "swilgt.sh", to more
|
|
reliably detect the compiler executable name.
|
|
|
|
Added a "configs/swi_set_logtalk_context.pl" file defining a useful but
|
|
fragile hack implementing a set_logtalk_context/1 built-in predicate for
|
|
switching the Logtalk top-level execution context to objects other than
|
|
the default pseudo-object "user" (you may use it as a debugging tool).
|
|
|
|
Updated the CxProlog config file to use the new built-in predicates in
|
|
version 0.95. Added a shell script, "cxlgt.sh", for easy integration of
|
|
Logtalk with CxProlog on POSIX systems (with the help of Artur Miguel
|
|
Dias, CxProlog author).
|
|
|
|
Updated the Ciao, K-Prolog, and ECLiPSe config files to set the default
|
|
value for the compiler flag "underscore_vars" to "dont_care" in order to
|
|
avoid spurious warnings with some of the provided examples.
|
|
|
|
Added a config file and integration scripts for the current XSB CVS
|
|
version (3.0.1+), which supports some features needed by Logtalk not
|
|
present in the current stable version (namely, expansion of environment
|
|
variables).
|
|
|
|
Added predicates depth/2 and variant/2 to the library object "term".
|
|
|
|
Much improved "benchmarks" example, updated to allow running tests in
|
|
three different scenarios: event support on, event support off, and
|
|
using static binding. Moreover, metacalls are no longer used to run
|
|
the benchmark goals, resulting in more meaningful and accurate results.
|
|
|
|
Removed all the "make_*lgt.*" and "makeall_lgt.*" shell scripts, replaced
|
|
by pre-made integration scripts that can be found on the new "integration"
|
|
directory. Removed the "lgt_install.js" script. Renamed the POSIX install
|
|
and uninstall scripts to, respectively, "install.sh" and "uninstall.sh".
|
|
Updated the integration, uninstall, and user-setup POSIX shell scripts
|
|
to use "$prefix/share/logtalk" as the default installation directory to
|
|
better comply with the Filesystem Hierarchy Standard 2.3 for UNIX-like
|
|
operating systems.
|
|
|
|
Updated the integration scripts to automatically call the "cplgtdirs"
|
|
script when the Logtalk user directory cannot be located.
|
|
|
|
Updated the integration, documentation, uninstall, and user-setup POSIX
|
|
shell scripts to try to locate the Logtalk installation directory and the
|
|
Logtalk user directory when the environment variables LOGTALKHOME and
|
|
LOGTALKUSER are not set.
|
|
|
|
Updated the "install.sh" POSIX shell script to better clean and sanitize
|
|
the file permissions on the installation directory.
|
|
|
|
Updated the "build_release.sh" POSIX shell script to also build a Debian
|
|
binary installer package (experimental).
|
|
|
|
The Windows GUI installer no longer spans command-line shells running
|
|
JScript scripts to build the Prolog integration shortcuts. This hopefully
|
|
solves issues with security software silently blocking and breaking the
|
|
Logtalk installation.
|
|
|
|
Added basic syntax coloring support for the GNU Nano 2.x text editor.
|
|
|
|
|
|
2.29.5 - March 28, 2007
|
|
|
|
Added a new built-in predicate, threaded/1, for proving each goal in
|
|
a conjunction in its own thread, simplifying common multi-threading
|
|
tasks that previously required sequences of calls to the built-in
|
|
predicates threaded_call/1 and threaded_exit/1.
|
|
|
|
Simplified and optimized the implementation of Logtalk multi-threading
|
|
support.
|
|
|
|
Simplified implementation of the database built-in methods. Simplified
|
|
caching of dynamic predicate lookups. Improved performance of the
|
|
built-in methods retract/1 and retractall/1.
|
|
|
|
Simplified the code generated when compiling entities in debugging mode.
|
|
|
|
Corrected a bug in the built-in debugger when processing actions at a
|
|
port that implies reading a port action again (e.g. print exception term,
|
|
print debugging status, and help options). Allow the debugger command
|
|
"skip" to work as the command "creep" in ports other than "call" and
|
|
"redo". Added a new debugger command, "ignore". Suspend debugging when
|
|
using the "break" debugger command.
|
|
|
|
Generate a compilation error instead of just printing a warning when
|
|
compiling calls to the multi-threading built-in predicates within an
|
|
object with no threaded/0 directive present.
|
|
|
|
Corrected a bug when compiling entities containing synchronization
|
|
directives on single-threaded Prolog configurations.
|
|
|
|
Improving reporting of working directory when loading or compiling source
|
|
files by expanding any environment variables occurring in the path.
|
|
|
|
Added a new compiler option, "reload", for defining the Logtalk behavior
|
|
when reloading source files. Valid values are "always" (default value;
|
|
defined in the config files) and "skip".
|
|
|
|
Updated the programming examples to use the new "reload" compiler option
|
|
when loading library entities. Simplified loading of example source files
|
|
(by updating the utility loader files to automatically load all required
|
|
library files).
|
|
|
|
Updated GNU Prolog config file to take advantage of some built-in list
|
|
predicates (requires version 1.2.14 or later); changed the compiler flag
|
|
"underscore_vars" value to "dont_care" to avoid spurious warnings with
|
|
some examples.
|
|
|
|
Added a config file for B-Prolog 7.0b1.
|
|
|
|
Updated the POSIX integration shell scripts to pass along any command
|
|
line options to the corresponding Prolog compiler and to prevent some
|
|
problems with paths containing spaces.
|
|
|
|
Much improved syntax coloring and code completion support for the jEdit
|
|
text editor.
|
|
|
|
Updated the "threads/primes" example to use the new "threaded/1" built-in
|
|
predicate. Updated the "threads/birthdays" example to better illustrate
|
|
the use of the built-in multi-threading predicates. Added a new
|
|
multi-threading example, "msort", implementing single-threaded and
|
|
multi-threaded versions of the merge sort algorithm.
|
|
|
|
Expanded the "operators" example to illustrate a simple solution for
|
|
making operators local to source files (but global to all entities
|
|
defined within the source files).
|
|
|
|
|
|
2.29.4 - February 19, 2007
|
|
|
|
Added a new library category, "listing", defining listing/0 and
|
|
listing/1 methods for helping in debugging tasks.
|
|
|
|
Added two new experimental multi-threading predicates, threaded_wait/1
|
|
and threaded_notify/1, which allows suspension of a thread's goal until
|
|
a notification is received. Added two new examples, "threads/buffer" and
|
|
"threads/blackboard", illustrating the use of these predicates.
|
|
|
|
Simplified and changed implementation of the threaded built-in
|
|
predicates in order to ensure that the threaded/0 directive is only
|
|
required on objects calling these predicates.
|
|
|
|
Only print a warning for a missing threaded/0 directive for objects.
|
|
|
|
Corrected a ordering bug on the entity initialization goal that
|
|
prevented using an object initialization goal that make use of
|
|
the object thread.
|
|
|
|
Corrected a bug when asserting rules into an object's database that
|
|
resulted in only the first asserted rule being visible when calling
|
|
the predicate through message sending. Thanks to Parker Jones for
|
|
the bug report.
|
|
|
|
Corrected a bug when compiling dynamic entities (defined in source
|
|
files using the dynamic/0 directive) where declared predicates would
|
|
be wrongly compiled as static instead of dynamic.
|
|
|
|
Updated the "make_xsblgt.sh" integration script again to fix an
|
|
additional problem resulting from the lack of support in XSB for
|
|
using environment variables in file paths.
|
|
|
|
Added minimal support for using Exuberant Ctags with Logtalk.
|
|
|
|
Added auto indent support to the jEdit text editor.
|
|
|
|
Added support for listing public predicates in the "Functions" window
|
|
of the SuperEdi text editor.
|
|
|
|
Converted TextMate code snippets from the old Property List format
|
|
to XML in order to provide compatibility with the "e" Windows text
|
|
editor.
|
|
|
|
New example: 99 bottles of beer on the wall! Sing along!
|
|
|
|
|
|
2.29.3 - January 15, 2007
|
|
|
|
Corrected a bug in the Logtalk compiler optimizer code which was
|
|
discarding some declaration and definition catchall clauses needed
|
|
by the Logtalk built-in database methods when there is no initial
|
|
declaration and definition for the referenced dynamic predicates.
|
|
Thanks to Parker Jones for the bug report.
|
|
|
|
Corrected a bug in the compilation of empty, standalone protocols
|
|
and categories.
|
|
|
|
Updated the "make_xsblgt.sh" integration script to workaround
|
|
the lack of support in XSB for using environment variables in
|
|
the argument of the reconsult/1 predicate.
|
|
|
|
Corrected a bug in the "potions.lgt" example puzzle that prevented
|
|
its solution of being found.
|
|
|
|
|
|
2.29.2 - January 10, 2007
|
|
|
|
Silently compile synchronized predicates as normal predicates on
|
|
single-threaded Prolog compilers.
|
|
|
|
When using the threaded_race/1 predicate, competing threads are
|
|
now created detached.
|
|
|
|
Corrected a bug that resulted in a loading error when reloading
|
|
source files defining threaded objects.
|
|
|
|
Corrected a bug in the implementation of the built-in predicate
|
|
threaded_peek/1 that prevented alternative solutions from being
|
|
retrieved using the built-in predicate threaded_exit/1. Removed
|
|
the built-in predicate threaded_discard/1.
|
|
|
|
The library object "random" is now a synchronized object. Updated
|
|
the "philosophers" multi-threading example accordingly.
|
|
|
|
Dropped loading of broken "cleanup" library from the YAP config file
|
|
(the call_cleanup/2 predicate, required for Logtalk multi-threading,
|
|
is now available as a built-in predicate in the YAP CVS version).
|
|
|
|
|
|
2.29.1 - December 28, 2006
|
|
|
|
Added a Logtalk version of John Fletcher's Prolog XML parser (see the
|
|
folder "contributions/xml_parser").
|
|
|
|
Added shell scripts for helping building the distribution files of a
|
|
new Logtalk release. Updated the MacOS X installer package to set
|
|
default values for the Logtalk environment variables. Corrected a bug
|
|
in the "logtalk.spec" file where the default value for the LOGTALKUSER
|
|
environment variable only worked for the user doing the RPM installation.
|
|
|
|
Corrected a bug in the reporting of the line number where a compilation
|
|
error (or warning) occurred. Extended support for reporting warning and
|
|
error line numbers to Quintus Prolog, Ciao Prolog, Qu-Prolog, and
|
|
ECLiPSe.
|
|
|
|
Corrected a bug when using partial lists with the predicates nth0/3-4
|
|
and nth1/3-4 provided by the "list" library object.
|
|
|
|
Improved "philosophers" multi-threading programming example.
|
|
|
|
|
|
2.29.0 - December 18, 2006
|
|
|
|
Added a new built-in, empty object named "logtalk", which can play the
|
|
role of both a class and a prototype. It may be used to define class
|
|
hierarchies without forcing the use of metaclasses or reflective
|
|
designs.
|
|
|
|
Added a built-in protocol named "monitoring" with declarations for
|
|
the before/3 and after/3 public event handler predicates. Updated
|
|
the Logtalk compiler to print a warning when defining an event handler
|
|
with no reference to the "monitoring" protocol.
|
|
|
|
The default value of the compiler flag events/1 is now off. As most
|
|
applications do not use events, this setting ensures the best possible
|
|
message processing performance for those applications.
|
|
|
|
Removed the experimental threaded_call/2 and threaded_exit/2 thread
|
|
predicates, replaced by new threaded_once/1, threaded_ignore/1,
|
|
threaded_race/1, threaded_peek/1, and threaded_discard/1 predicates.
|
|
Renamed predicate directive atomic/1 to synchronized/1. Added new
|
|
entity directive synchronized/0. Added support for new "synchronized"
|
|
and "threaded" entity properties.
|
|
|
|
Corrected a bug when using threaded calls as initialization goals
|
|
within threaded objects.
|
|
|
|
Corrected an elusive bug in the Logtalk compiler where a source file
|
|
may not be properly closed when it contains a syntax error (thanks
|
|
to Robert Shiplett for the bug report).
|
|
|
|
Corrected a bug in the implementation of the built-in methods retract/1
|
|
and retractall/1 that could result in unexpected exceptions. Updated
|
|
the built-in method assertz/1 to always use the lookup cache.
|
|
|
|
Corrected a bug in the compilation of empty classes that are not
|
|
instances of a metaclass.
|
|
|
|
Corrected a bug in the built-in method predicate_property/2 where some
|
|
predicate properties may not be returned when enumerating properties
|
|
using backtracking.
|
|
|
|
Modified the SWI-Prolog config file and integration scripts to set
|
|
the flag "iso" to "true". Corrected an elusive bug in the definition
|
|
of predicate '$lgt_directory_exists'/1 that resulted in "library not
|
|
found" errors when loading Logtalk source files from within the
|
|
SWI-Prolog initialization file (thanks to Robert Shiplett for the bug
|
|
report).
|
|
|
|
Updated the K-Prolog config file to workaround a problem when using
|
|
library notation due to failure to check directory existence with the
|
|
provided "libpaths.pl" file.
|
|
|
|
Added a RELAX NG file describing the structure of the XML documenting
|
|
files generated by Logtalk.
|
|
|
|
Corrected a bug in the Logtalk DTD file (missing "copyright" tag
|
|
declaration).
|
|
|
|
Corrected a bug in the lgt2*.js scripts where the "custom.ent" file
|
|
was not being copied when generating (X)HTML and PDF files.
|
|
|
|
Added a new multi-threading example, "philosophers", illustrating a
|
|
possible implementation of the "dining philosophers" problem.
|
|
|
|
Improved the "metapredicates" example in order to illustrate the use
|
|
of closures instead of goals as meta-arguments.
|
|
|
|
Added a reference to the "e" Windows text editor, which supports
|
|
the MacOS X TextMate 1.x text editor syntax configuration files.
|
|
|
|
Updated the manuals index pages in order to workaround browsers bugs
|
|
with parsing of empty "span" tags (e.g. Internet Explorer and Opera).
|
|
|
|
|
|
2.28.2 - November 6, 2006
|
|
|
|
Corrected a compiler bug where unknown entities will not be report when
|
|
compiling a source file whenever an entity with the same name but of a
|
|
different type is already known.
|
|
|
|
Added a XPCE hook file ("configs/xpcehook.pl") supporting Logtalk message
|
|
sending goals as XPCE call-back goals. The XPCE library is now loaded by
|
|
default by the SWI-Prolog integration scripts.
|
|
|
|
Added support for generating single PDF files of the User and Reference
|
|
Manuals. Removed the PDF versions of the individual manual XHTML pages.
|
|
|
|
The ECLiPSe config files now require release 5.10#26 or a later version.
|
|
|
|
Added support for listing Logtalk entity names (objects, categories, and
|
|
protocols) in the SubEthaEdit symbols menu.
|
|
|
|
Added a Vim dictionary file for Logtalk keyword completion and support
|
|
for automatic indentation.
|
|
|
|
Added basic support for the MacOS X Smultron text editor. Added basic
|
|
support for the Notepad++, SuperEdi, and ConTEXT Windows text editors.
|
|
|
|
|
|
2.28.1 - October 10, 2006
|
|
|
|
Added support for using XML entities using the notation "{entity name}"
|
|
in info/1 documenting directives for the "author", "copyright", and
|
|
"license" keywords. The XML entities are defined on a "custom.ent" file.
|
|
|
|
Updated Logtalk bibliographic references (in file "BIBLIOGRAPHY.bib").
|
|
|
|
Added a "lgt_uninstall.sh" shell script for uninstalling Logtalk on POSIX
|
|
operating systems.
|
|
|
|
Improved RPM install-time messages on the defined Logtalk environment
|
|
variables.
|
|
|
|
Updated the ECLiPSe integration scripts and config files to work with
|
|
and require version 5.10 (the first open source version of ECLiPSe).
|
|
|
|
Corrected a typo on the "logtalk.dtd" file that prevents validation of
|
|
XML documenting files that use a local reference to the DTD.
|
|
|
|
|
|
2.28.0 - September 28, 2006
|
|
|
|
Updated the Logtalk license to the final version of the "The Artistic
|
|
License 2.0" (see http://www.perlfoundation.org/legal/ for details).
|
|
|
|
Added experimental support for multi-threading programming on selected
|
|
Prolog compilers. Added a new object directive, threaded/0, a new
|
|
predicate directive, atomic/1, and four new built-in predicates,
|
|
threaded_call/1-2 and threaded_exit/1-2. Added a new set of examples,
|
|
"threads". Thanks to Paulo Nunes for helping developing and testing
|
|
these new features.
|
|
|
|
Expanded support for meta-predicates by allowing the declaration of meta-
|
|
arguments as closures instead of goals.
|
|
|
|
Added the generalized call/N predicate as a built-in method. This built-in
|
|
method must be used in the implementation of meta-predicates which work
|
|
with closures instead of goals.
|
|
|
|
The metapredicate/1 directive should be considered deprecated. Use the
|
|
meta_predicate/1 directive instead.
|
|
|
|
Updated the Logtalk compiler to generate an error whenever a non-variable
|
|
meta-argument is found in a clause head of a user-defined meta-predicate.
|
|
|
|
Improved compilation of meta-predicate meta-arguments. Corrected a bug
|
|
in the compilation of user meta-predicates that allowed illegal calls
|
|
to non-public predicates on the caller object to be made from the object
|
|
defining the meta-predicates. Thanks to Rémy Haemmerlé and François
|
|
Fages for reporting the problem.
|
|
|
|
Improved performance for non-cached messages, notably when running with
|
|
YAP, GNU Prolog, and SWI-Prolog on all operating systems and with SICStus
|
|
Prolog 4.0 on POSIX operating systems.
|
|
|
|
Updated the Logtalk compiler to generate an error whenever a predicate
|
|
directive appears in a source file after predicate clauses that call the
|
|
predicate specified in the directive.
|
|
|
|
Added support for "copyright" and "license" keys to the info/1 entity
|
|
documenting directive.
|
|
|
|
Improved compiler error messages to also report source file line number
|
|
for selected Prolog compilers.
|
|
|
|
Added PDF versions of all the manual XHTML pages. Added links to all the
|
|
manual XHTML pages to the corresponding PDF versions.
|
|
|
|
Corrected a bug (introduced in version 2.27.0) in the built-in predicates
|
|
abolish_object/1, abolish_protocol/1, and abolish_category/1 that resulted
|
|
in some clauses not being retracted when an object is abolished (thanks to
|
|
Neng-Fa Zhou for the bug report).
|
|
|
|
Corrected a bug (introduced in version 2.27.1) in the processing of the
|
|
term_expansion/2 predicate.
|
|
|
|
Corrected a bug in the compilation of redefined built-in predicates with
|
|
no clauses.
|
|
|
|
Added an experimental config file for CxProlog 0.93.1.
|
|
|
|
Updated the SWI-Prolog config and hook files in order to support the
|
|
edit/1 and make/0 development predicates.
|
|
|
|
Changed the Logtalk - SWI-Prolog integration scripts to load the hook
|
|
file "swihook.pl" after the other files in order to avoid some possible
|
|
errors at startup.
|
|
|
|
Updated the config file for the forthcoming SICStus Prolog 4.0 version
|
|
to work in the current beta version. Modified the "make_sicstuslgt.*"
|
|
shell scripts to work with both SICStus Prolog 3.12 and 4.0 versions.
|
|
|
|
Updated the config file for YAP to workaround a problem on the Windows
|
|
version where testing for directory existence fails if the path ends with
|
|
a slash (or a double backslash); this problem prevents the use of library
|
|
notation to load source files (problem already fixed in the current YAP
|
|
CVS version).
|
|
|
|
Updated the config file for B-Prolog to match (and require) the new 6.9
|
|
version; added integration shell scripts (for both Windows and POSIX
|
|
systems).
|
|
|
|
Updated the config files and the integration scripts for ECLiPSe in order
|
|
to workaround bugs on the predicates abolish/1 and canonical_path_name/2.
|
|
Modified the "make_eclipselgt.js" script to work with both ECLiPSe 5.8
|
|
and 5.9 versions.
|
|
|
|
Dropped support for versions of XSB older than 3.0. Added support for
|
|
smart compilation of source files to the XSB config file.
|
|
|
|
Updated the config file for IF/Prolog 5.1 by adding a missing definition
|
|
for predicate retractall/1 and avoiding some harmless singleton warnings.
|
|
|
|
Add a ".txt" extension to all "NOTES" and "SCRIPT" files.
|
|
|
|
Extended "dcgs", "parametric", and "metainterpreters" examples.
|
|
|
|
Added Inno Setup GUI Windows installer script.
|
|
|
|
Update all the JScript scripts to check if a compatible version of WSH
|
|
is installed and to workaround some problems with spaces in file paths.
|
|
|
|
Updated the "lgt_install.js" JScript script to copy the scripts/*.bat and
|
|
the xml/*.bat batch scripts to the system's Windows directory instead of
|
|
modifying the PATH environment variable.
|
|
|
|
Updated the "cplgtdirs.*" shell scripts to make a backup copy of any
|
|
previous LOGTALKUSER directory.
|
|
|
|
Added post-install scripts to the LINUX RPM "logtalk.spec" file for
|
|
setting the environment variable LOGTALKHOME for all users, defining
|
|
a default value for the environment variable LOGTALKUSER, and running
|
|
the Prolog integration scripts.
|
|
|
|
Split the installation and customization instructions in two files,
|
|
"INSTALL.txt" and "CUSTOMIZE.txt".
|
|
|
|
Added shell scripts for converting the manual XHTML pages into PDF files
|
|
using CSSToXSLFO.
|
|
|
|
|
|
2.27.1 - March 27, 2006
|
|
|
|
Allow calls to the built-in method parameter/2 with the first argument
|
|
not instantiated at compile time. Detect and report as a compilation
|
|
error parameter/2 indexes that are out of range.
|
|
|
|
Optimized generation of predicate definition and declaration linking
|
|
clauses, resulting in small lookup performance improvements and in space
|
|
savings for the Prolog code generated when compiling Logtalk entities.
|
|
|
|
Many minor code and documentation improvements to the Logtalk compiler.
|
|
|
|
Added an object version of the tokenizer described in the Michael
|
|
Covington's paper "Tokenization using DCG Rules" to the "dcgs" example.
|
|
|
|
Improved integration code for Qu-Prolog and Logtalk ("configs/qphook.ql").
|
|
|
|
Improved library hierarchy methods that return lists of objects in order
|
|
to avoid duplicated elements (library objects "proto_hierarchy.lgt" and
|
|
"class_hierarchy.lgt"). Added new methods extension/1 and extensions/1 to
|
|
the library object "proto_hierarchy.lgt".
|
|
|
|
Documented the concept of "parametric object proxy". Added a new example,
|
|
"proxies", illustrating the use of parametric object proxies.
|
|
|
|
Added support for code completion and for listing entity names on the
|
|
symbol pop-up menu to the MacOS X TextMate text editor.
|
|
|
|
Updated the "cplgtdirs.*" scripts to also create an alias/shortcut to the
|
|
"wenv" directory.
|
|
|
|
Renamed the alternative compilation and documentation directory names on
|
|
all config files to be compatible across operating-systems. Removed unused
|
|
predicate '$lgt_reverse'/2 from all config files.
|
|
|
|
Updated HTML manuals "print.css" CSS file for compatibility with the
|
|
latest version of CSSToXSLFO.
|
|
|
|
|
|
2.27.0 - February 9, 2006
|
|
|
|
Improved performance for local calls to the built-in methods phrase/2-3.
|
|
Allow the built-in methods phrase/2-3 to accept both partial and proper
|
|
lists of terminals.
|
|
|
|
Improved grammar rule translator. Report calls to undefined non-terminals
|
|
when translating grammar rules.
|
|
|
|
Added support for declaring grammar rule non-terminal aliases using the
|
|
alias/3 directive.
|
|
|
|
Added a new predicate property, non_terminal/1, for predicates resulting
|
|
from the compilation of grammar rule non-terminals.
|
|
|
|
Improved support for the built-in method expand_term/2 in order to allow
|
|
bypassing of the default Logtalk grammar rule translator by defining
|
|
clauses for the term_expansion/2 predicate. Added a "term_expansionp"
|
|
protocol to the Logtalk library. Added a new example, "expansion",
|
|
illustrating the use of the term_expansion/2 predicate.
|
|
|
|
Added a new compiler flag, hook/1, allowing the specification of a
|
|
compiler hook that is called for which term read from a source file.
|
|
Added a simple example, "hooks", of using the Logtalk compiler hook
|
|
to expand author abbreviations in info/1 directives into full names
|
|
and email addresses.
|
|
|
|
Added support for XSB 3.x to the runtime error handler. Updated the XSB
|
|
3.x config file with declarations for multi-threading meta-predicates.
|
|
|
|
Removed a few choice-points when checking validity of entity directives.
|
|
|
|
Added two new objects, list(Type) and set(Type), to the standard library
|
|
supporting the validation of lists and ordered sets whose elements are
|
|
restricted to a single type.
|
|
|
|
Added a new DCG example for solving enigmas encoded using a cellphone
|
|
keypad.
|
|
|
|
Added a missing library dependency to the "puzzles" example SCRIPT file.
|
|
|
|
Removed the experimental "systemp.lgt" protocol from the list of files
|
|
loaded by the "library/all_loader.lgt" loader utility files to avoid
|
|
compilation errors on some Prolog systems.
|
|
|
|
Corrected a bug that prevented dynamic creation of categories using the
|
|
built-in predicate create_category/4.
|
|
|
|
Corrected a bug in the reporting of singleton variables, which failed to
|
|
write an accurate message for facts and grammar rules.
|
|
|
|
Corrected a bug in passing the correct calling context ("this") when
|
|
processing meta-calls in objects.
|
|
|
|
Corrected a bug in scope checking with local calls to reflection and
|
|
database methods.
|
|
|
|
Corrected a bug in checking the validity of the arguments of the op/3
|
|
directive appearing inside entities.
|
|
|
|
Added predicates for testing if a term is a partial list or a proper list
|
|
to all config files.
|
|
|
|
Added a definition for missing open/4 ISO Prolog predicate to the config
|
|
file of Bin Prolog.
|
|
|
|
Added a workaround for a B-Prolog bug to this compiler config file.
|
|
|
|
|
|
2.26.2 - December 20, 2005
|
|
|
|
Improved error-checking for the Logtalk compiler and for the grammar rule
|
|
translator.
|
|
|
|
Small performance improvements for message sending and for the built-in
|
|
database methods.
|
|
|
|
Corrected a bug on the implementation of the built-in methods phrase/2-3
|
|
for negated grammar rule bodies (thanks to Mats Carlsson for pointing the
|
|
error).
|
|
|
|
Removed the read-only compiler flag "iso_initialization_dir".
|
|
|
|
Corrected a compilation bug on the "metapredicates" example source file.
|
|
Corrected several bugs on the performance monitor of the "searching"
|
|
example.
|
|
|
|
Switched off default generation of XML documenting files for the "symdiff"
|
|
example in order to avoid file names compatibility problems on Windows.
|
|
|
|
Updated compatibility notes on B-Prolog 6.8 and Qu-Prolog 7.0. Added a
|
|
config file for the forthcoming SICStus Prolog 4.0 version (based only
|
|
on publicly available information). Updated the config file for Amzi!
|
|
Prolog to solve issues with predicate properties and to ensure that file
|
|
system utility predicates are loaded.
|
|
|
|
Added a config file for the current XSB CVS version and the corresponding
|
|
integration shell scripts (for both Windows and POSIX systems). Modified
|
|
the "cplgtdirs.*" shell scripts in order to make either links or copies of
|
|
the config files and the "libpaths.pl" file with the required ".P" file
|
|
name extension.
|
|
|
|
Improved integration scripts documentation and help screens.
|
|
|
|
Added a predicate for checking directory existence to the config files.
|
|
|
|
|
|
2.26.1 - November 28, 2005
|
|
|
|
Added a CSS style-sheet to the Logtalk XHTML documentation that can be
|
|
used with CSSToXSLFO to generate nicely formatted PDF files suitable for
|
|
printing with running headers and page numbers.
|
|
|
|
Updated the Logtalk XHTML documentation for compliance with the XHTML 1.1
|
|
standard.
|
|
|
|
Updated the "lgtxhtml.xsl" XSLT file in order to generate XHTML 1.1 files.
|
|
|
|
Added a new, generic "lgtpdf.xsl" XSLT file. Redefined the "lgtpdfa4.xsl"
|
|
and "lgtpdfus.xsl" files to import the "lgtpdf.xsl" file.
|
|
|
|
Added support for the Lunasil XSL-FO processor to the "lgt2pdf.*" shell
|
|
scripts.
|
|
|
|
Updated the "lgt2pdf.sh", "lgt2xml.sh", and "lgt2html.sh" shell scripts
|
|
in order to write a warning message when the current directory does not
|
|
contain any XML documenting file.
|
|
|
|
Added a definition for missing open/4 ISO Prolog predicate to the config
|
|
files of Open Prolog, LPA Prolog compilers, and MasterProlog.
|
|
|
|
|
|
2.26.0 - November 7, 2005
|
|
|
|
Added support for defining predicate aliases when using uses/2 directives
|
|
(using the format Predicate::Alias).
|
|
|
|
Added Prolog modules migration code allowing modules to be compiled as
|
|
objects and allowing messages to be sent to modules. Added a new "modules"
|
|
example.
|
|
|
|
Added a "Prolog Integration and Migration Guide" to the Logtalk
|
|
documentation.
|
|
|
|
Added support for syntax coloring of common Prolog module directives to
|
|
the configuration files of the supported text editors.
|
|
|
|
Added support for using library aliases on the second argument of the
|
|
logtalk_library_path/2 predicate (using the format alias(path)).
|
|
|
|
Added support for ignoring, copying as-is, or rewriting proprietary Prolog
|
|
directives. The action to be taken is defined on a per-directive basis on
|
|
the config files.
|
|
|
|
Updated the config files of CIAO, ECLiPSe, SWI-Prolog, and YAP to define
|
|
actions for some proprietary directives in order to allow some or most of
|
|
the module libraries distributed with these compilers to be compiled as
|
|
objects.
|
|
|
|
Renamed some XML documentation-related compiler flags to more meaningful
|
|
names: "xml" -> "xmldocs", "xsl" -> "xslfile", and "doctype" -> "xmlsref".
|
|
No changes to the other flags or flag valid values.
|
|
|
|
Updated documenting scripts to use system-wide resources from LOGTALKHOME
|
|
and user-modifiable resources from LOGTALKUSER.
|
|
|
|
Updated "cplgtdirs.*" shell scripts to create links to the documenting
|
|
scripts and to the DTD and XML Schema specifications instead of making
|
|
local copies. Updated the "cplgtdirs.js" Windows JScript script to create
|
|
a link to the Logtalk manuals.
|
|
|
|
Changed generation of predicate compiled functors to add an underscore
|
|
between the original predicate functor and arity (further minimizing the
|
|
chance of name conflicts).
|
|
|
|
Improved compilation warning messages (separately handling plural and
|
|
singular forms).
|
|
|
|
Improved documentation of Windows JScript installation and integration
|
|
scripts.
|
|
|
|
Corrected a bug on the Logtalk built-in debugger on the processing of the
|
|
abort option at a leashed port (option was ignored instead of aborting the
|
|
debugging session).
|
|
|
|
Added an option to choose between a "verbose" or "compact" listing of the
|
|
default compilation flags at Logtalk startup (defined on the config files).
|
|
|
|
Improved CIAO integration scripts in order to suppress some (harmless)
|
|
warnings which are generated at first run.
|
|
|
|
Updated SWI-Prolog hook file ("swihook.pl") in order to support Logtalk
|
|
library notation when loading Logtalk files using the SWI-Prolog consult/1
|
|
predicate.
|
|
|
|
Corrected a bug on the implementation of the built-in method abolish/1
|
|
that prevented abolishing of dynamic predicates with arity zero.
|
|
|
|
Corrected a bug on the "gplgt" shell script generated by the make_gplgt.sh
|
|
shell script where the value of the LOGTALKHOME environment variable would
|
|
not be retrieved at runtime.
|
|
|
|
Removed config file for older versions of XSB (up to 2.6). Renamed the
|
|
config file for XSB 2.7.1 to simply "xsb.config".
|
|
|
|
Consolidated the source files of the "birds", "errors", "lpa", "lo",
|
|
"metainterpreters", "poem", "relations", "roots", and "symdiff" examples
|
|
into single source files. Updated the "searching" example to take advantage
|
|
of the uses/2 directive.
|
|
|
|
Removed outdated documenting shell scripts from the "xml" directory.
|
|
|
|
Corrected a bug when compiling a source file where the generated Prolog
|
|
file might not be properly closed when a compilation error occurs.
|
|
|
|
|
|
2.25.3 - September 12, 2005
|
|
|
|
Consolidated the source files of the examples "bricks", "dynpred", "mi",
|
|
"parametric", "points", "polygons", "reflection", "shapes", "sicstus",
|
|
and "viewpoints" into single source files.
|
|
|
|
Improved documentation on most example source files. Improved "parametric"
|
|
example by adding a new parametric objects and by illustrating alternative
|
|
ways of accessing object parameters.
|
|
|
|
Updated several config files with declarations for some more non-standard
|
|
Prolog meta-predicates.
|
|
|
|
Corrected some omissions and typos on the B-Prolog - Logtalk integration
|
|
instructions.
|
|
|
|
Small performance optimization for messages and super-calls with not yet
|
|
cached method lookups.
|
|
|
|
|
|
2.25.2 - August 11, 2005
|
|
|
|
Updated Logtalk installation and Prolog integration scripts in order to
|
|
detect a wrongly defined LOGTALKHOME environment variable.
|
|
|
|
Corrected a bug on the lgt_install.sh and make*lgt.sh shell scripts where
|
|
the wrong variable was being referenced when testing the existence of the
|
|
installation directory prefix.
|
|
|
|
Corrected a bug on the makeall_lgt.sh shell script that failed to properly
|
|
detect unsuccessful completion of individual Prolog integration scripts.
|
|
|
|
|
|
2.25.1 - August 8, 2005
|
|
|
|
Added support for using the "source-highlight" package (version 2.0 or
|
|
later) by Lorenzo Bettini with Logtalk source files.
|
|
|
|
Several optimizations to the syntax coloring configuration files of most
|
|
of the supported text editors. Added support for code folding to the Vim,
|
|
Kate, and TextMate text editors.
|
|
|
|
Updated the SWI-Prolog shell integration script (make_swilgt.sh) to use
|
|
either "swipl" or "pl" as the name of the Prolog executable, depending
|
|
on the host operating system.
|
|
|
|
Modified the way entity prefixes are generated for compiled code in order
|
|
to further minimize possible conflicts resulting from the same prefix being
|
|
used for different entities (bug report and fix by Brian Hulley). Changes
|
|
to the prefix format are also reflected on the names of the automatically
|
|
generated XML documenting files.
|
|
|
|
Updated the lgt2html.* and lgt2xml.* documenting scripts in order to index
|
|
parametric objects using the notation <entity>/<number of parameters>.
|
|
|
|
Corrected a bug on the lgtxml.xsl XSLT file where links to related files
|
|
pointed to .html files instead of .xml files.
|
|
|
|
Updated the lgt_install.sh and the make_*lgt.sh shell scripts to check and
|
|
report invalid installation directory prefixes.
|
|
|
|
Added a new state-space search problem, "salt3.lgt", contributed by Paula
|
|
Marisa Sampaio, to the "searching" example.
|
|
|
|
|
|
2.25.0 - May 23, 2005
|
|
|
|
Logtalk compiler is now source file-based instead of entity-based. Thus,
|
|
a source file may now contain any number of entities, without the need of
|
|
using source metafiles. Therefore, this version drops support for source
|
|
metafiles and the .mlgt file name extension.
|
|
|
|
The experimental encoding/1 directive, when used, must be the first term
|
|
on a source file. Added an entry to the reference manual describing the
|
|
directive. Improved "encodings" example.
|
|
|
|
Added a new method, debugging/1, to the "debugger" pseudo-object for
|
|
querying the system about entities compiled in debug mode.
|
|
|
|
Improved source file and entity compilation and loading reporting. In
|
|
particular, when using library notation for source files, the Logtalk
|
|
compiler now prints the library path containing the source files being
|
|
compiled or loaded.
|
|
|
|
Added new shell scripts, makeall_lgt.*, which run all the make_*lgt.*
|
|
shell scripts in sequence.
|
|
|
|
Simplified compiler reporting of singleton variables in directives and
|
|
clauses.
|
|
|
|
Added an adaption of the "timetables" LPA Prolog++ example.
|
|
|
|
Updated B-Prolog config file for the new 6.7 #2 version. Dropped support
|
|
for older versions of B-Prolog.
|
|
|
|
|
|
2.24.0 - April 22, 2005
|
|
|
|
Added experimental support for a encoding/1 directive for declaring the
|
|
text character encoding of a source file. This directive is fully based
|
|
on a directive with the same name and with similar semantics found on
|
|
recent development versions of SWI-Prolog. For now, this directive only
|
|
works with SWI-Prolog as most Prolog compilers lack support for dealing
|
|
with different text encodings. Added new flag "supports_encoding_dir".
|
|
Added a new example, "encodings", of using the new encoding/1 directive.
|
|
|
|
When a source file contains an encoding/1 directive, the XML documenting
|
|
files will use the same encoding. When no encoding/1 directive is present,
|
|
the XML documenting files will assume UTF-8 encoding.
|
|
|
|
Added new info/1 documenting directive key, "parameters", allowing the
|
|
declaration of both parameter names and parameter descriptions. Added new
|
|
info/1 documenting directive key, "remarks", allowing general remarks
|
|
about an entity to be stated. Added new info/2 documenting directive key,
|
|
"arguments", allowing declaration of both predicate argument names and
|
|
predicate argument descriptions. Added new info/2 documenting directive
|
|
key, "examples", allowing the representation of predicate call examples.
|
|
|
|
Much improved and accurate reporting of non-portable predicate calls when
|
|
using the "portability" flag.
|
|
|
|
Added a new directory to the Logtalk distribution, "contributions", which
|
|
will be used for user-contributed code. On this release, it contains an
|
|
implementation of the ISO 8601 standard by Daniel L. Dudley, providing a
|
|
library of useful date predicates.
|
|
|
|
Added new lgt2xml.* shell scripts for generating (X)HTML indexes of XML
|
|
documenting files.
|
|
|
|
Rewritten the lgtxhtml.xsl, lgthtml.xsl, lgtxml.xsl XSLT scripts in order
|
|
to make it easier to define alternative CSS files for the generated HTML
|
|
files. Rewritten the lgtpdfa4.xsl and lgtpdfus.xsl XSLT scripts in order
|
|
to improve appearance of the generated PDF files.
|
|
|
|
Improved the documentation of the "benchmarks" example and added new
|
|
predicates for running batches of benchmark tests and for generating
|
|
lists of known size for the benchmark tests of static code.
|
|
|
|
Corrected a bug in the lgt2html.*, lgt2pdf.*, and cplgtdirs.sh shell
|
|
scripts which resulted in failed transformations whenever the LOGTALKHOME
|
|
and LOGTALKUSER environment variables or the output directory contained
|
|
spaces or accented characters.
|
|
|
|
Added workaround for Prolog compilers that define operators other than
|
|
','/2 that cannot be redefined (such as new B-Prolog 6.7).
|
|
|
|
Added a Logtalk "clip" file for the TextPad Windows text editor.
|
|
|
|
Renamed directory "misc" to the more meaningful name "scripts".
|
|
|
|
Corrected a bug in the implementation of the built-in database methods
|
|
asserta/1 and assertz/1 when asserting facts on objects compiled in debug
|
|
mode.
|
|
|
|
Corrected a bug in the method leash/1 of the built-in pseudo-object
|
|
"debugger", which failed to accept an empty list as a valid argument.
|
|
|
|
Corrected a bug in the header of the automatically generated XML
|
|
documenting files when using the XML Schema specification (logtalk.xsd),
|
|
which could prevented validation when the compiler flag "doctype" is set
|
|
to "web".
|
|
|
|
Corrected a compilation bug where Prolog clauses written outside entities
|
|
on source metafiles would have their order reversed. Simplified splitting
|
|
of source metafiles.
|
|
|
|
Corrected a compilation bug where Prolog clauses written before an entity
|
|
opening directive would not be copied to the generated Prolog file.
|
|
|
|
Corrected a bug on the "roots" example in the object "class" which failed
|
|
to properly test the validity of new object identifiers.
|
|
|
|
Corrected a bug in the syntax coloring file for the Vim text editor, which
|
|
resulted in an error message when opening a Logtalk source file for the
|
|
first time.
|
|
|
|
|
|
2.23.1 - March 7, 2005
|
|
|
|
Simplified message sending compilation, improving performance of both
|
|
entity compilation and runtime top-level message sending.
|
|
|
|
Simplified implementation and improved performance of the built-in method
|
|
current_predicate/2.
|
|
|
|
Updated the runtime error handler for top-level ::/2 calls to recognize
|
|
non-existing predicate exceptions thrown by XSB, SICStus Prolog, CIAO,
|
|
B-Prolog, and recent development versions of SWI-Prolog. Rewritten the
|
|
::/2 predicate in order to minimize the overhead of the catch/3 calls
|
|
associated with the runtime error handler, thus improving performance.
|
|
|
|
Expanded the benchmarks example to test performance of the built-in
|
|
database methods.
|
|
|
|
Lookup caches are now cleaned before loading a redefined entity in order
|
|
to avoid potential problems with entity initialization goals containing
|
|
message sending calls (previous versions cleaned the caches only after
|
|
entity loading).
|
|
|
|
When reloading an object, its tables of dynamic predicate declarations
|
|
and dynamic predicate definitions are now reseted.
|
|
|
|
Corrected a compatibility problem with the "birds" example due to the use
|
|
of an operator not available in some Prolog compilers.
|
|
|
|
|
|
2.23.0 - February 21, 2005
|
|
|
|
Optimized the code generated for local calls to the built-in predicates
|
|
asserta/1, assertz/1, retract/1, and retractall/1, when the argument is
|
|
a dynamic predicate declared by a scope directive in the object making
|
|
the calls.
|
|
|
|
Added caching of predicate compiled forms for dynamic facts when used
|
|
with the database built-in methods clause/2, asserta/1, assertz/1,
|
|
retract/1, and retractall/1, resulting in a significant performance
|
|
improvement when using an object's dynamic database. Improved performance
|
|
of the database built-in methods abolish/1, asserta/1, assertz/1, clause/2,
|
|
retract/1, and retractall/1 when the cache is not used.
|
|
|
|
Corrected a bug on the implementation of the built-in methods asserta/1
|
|
and assertz/1 that prevented asserting of rules.
|
|
|
|
Corrected a bug on the implementation of built-in methods retractall/1,
|
|
retract/1, and clause/2 that allowed access to local dynamic predicates
|
|
from outside the container object.
|
|
|
|
Added a runtime error handler for top-level ::/2 calls which tries to deal
|
|
with exceptions thrown by calling non-existing predicates by translating
|
|
Logtalk generated internal predicate names to user names.
|
|
|
|
Print the total number of warnings after a call to the Logtalk built-in
|
|
predicates logtalk_compile/1-2 and logtalk_load/1-2.
|
|
|
|
|
|
2.22.5 - February 9, 2005
|
|
|
|
Added scripts for easy integration of Logtalk with K-Prolog. Updated the
|
|
K-Prolog config file, correcting a show-stopper bug and enabling support
|
|
for using the "library" notation for loading source files.
|
|
|
|
Updated JIProlog config file in order to allow smart compilation of source
|
|
files.
|
|
|
|
Changed format of preprocessor and runtime dynamic predicates that deal
|
|
with predicate indicators for better performance.
|
|
|
|
Simplified implementation of Logtalk built-in methods asserta/1 and
|
|
assertz/1.
|
|
|
|
Corrected a performance bug with calls to built-in predicates from objects
|
|
and categories.
|
|
|
|
Corrected spurious backtracking occurring on some calls to the built-in
|
|
predicate define_events/5.
|
|
|
|
Updated shell script "misc/cplgtdirs.sh" to prevent copy of Logtalk files
|
|
when the destination directory already exists (thus avoiding overriding
|
|
any user-modified files when upgrading Logtalk).
|
|
|
|
Added syntax coloring for the predicate logtalk_library_path/2 to the
|
|
supported text editors. Updated the syntax coloring file for the TextMate
|
|
text editor, adding some missing ISO Prolog predicates.
|
|
|
|
Improved printing of lists of unknown referenced entities, misspelt calls,
|
|
and singleton variables when compiling source files. Simplified handling
|
|
of references to unknown entities.
|
|
|
|
Added workaround for Prolog compilers with broken read_term/3 singletons/1
|
|
option.
|
|
|
|
Updated the Logtalk compiler/runtime and the documentation to always
|
|
use the expression "compiler flag" instead of "compiler option" for
|
|
consistency. Other minor documentation improvements.
|
|
|
|
Corrected a bug with the abolishing of dynamic entities where the clauses
|
|
corresponding to the alias/3 directive are not being abolished.
|
|
|
|
Added new predicates '$lgt_call'/9 and '$lgt_once'/9 to all config files.
|
|
|
|
Simplified and improved performance of compilation of directives containing
|
|
predicate indicators.
|
|
|
|
|
|
2.22.4 - January 12, 2005
|
|
|
|
Simplified method lookup cache tables, resulting in a small message
|
|
sending performance speedup. Improved method lookup caching for
|
|
parametric objects. Added support for caching method lookups for
|
|
parametric objects whose parameters contain cyclic terms.
|
|
|
|
Added a new category, "assignvars", to the Logtalk standard library,
|
|
containing an adaptation of the implementation of logical assignable
|
|
variables developed by Nobukuni Kino. Added a new example, "assignvars",
|
|
illustrating some possible uses of assignable variables in the context
|
|
of parametric objects.
|
|
|
|
Simplified compilation of op/3 directives: there is no longer need to
|
|
repeat the directives both before and inside an entity in order to make
|
|
the operators global and also use them in the compilation process.
|
|
|
|
Simplified installation instructions.
|
|
|
|
Corrected a compiler bug in the code that checks and prints a warning
|
|
when redefined parametric objects.
|
|
|
|
Corrected a bug in the built-in predicate abolish_category/1, which
|
|
failed to delete import relation clauses between the category being
|
|
abolished and other categories.
|
|
|
|
|
|
2.22.3 - December 30, 2004
|
|
|
|
Added a configuration file for XSB 2.7.
|
|
|
|
Corrected a bug where the use of alternative compilation directories
|
|
would fail the first time the logtalk_compile/1-2 or logtalk_load/1-2
|
|
predicates are used for a given file or library.
|
|
|
|
Corrected a bug in the built-in methods asserta/1 and assertz/1 when
|
|
asserting facts into an object being debugged, which resulted in wrong
|
|
execution context information being printed when tracing calls to
|
|
the asserted facts.
|
|
|
|
Corrected a bug in the built-in methods asserta/1 and assertz/1 when
|
|
asserting rules into an object being debugged, which resulted in rule
|
|
bodies compiled with no information being printed for the rule head
|
|
when tracing calls to the asserted rules.
|
|
|
|
Corrected a bug in the dynamic creation of objects, protocols, and
|
|
categories when the debug flag is on, which resulted in the table of
|
|
entities being debugged not being updated.
|
|
|
|
Corrected a bug in the handling of exceptions thrown when using the
|
|
built-in debugger, which resulted in exceptions always being turned
|
|
into failures.
|
|
|
|
|
|
2.22.2 - December 24, 2004
|
|
|
|
Improved performance of dynamic creation and compilation of objects,
|
|
protocols, and categories.
|
|
|
|
Improved error-checking code of methods asserta/1 and assertz/1 to
|
|
prevent asserting of non-callable terms as facts.
|
|
|
|
Improved error checking for documenting directives (info/1 and info/2).
|
|
|
|
Improved the XSB integration script (make_xsblgt.sh) in order to use the
|
|
configuration file and the libpaths file available from the $LOGTALKUSER
|
|
directory.
|
|
|
|
Improved installation instructions and installation scripts documentation.
|
|
|
|
Added documentation to the user manual on describing predicate exceptions
|
|
using the info/2 directive.
|
|
|
|
Corrected a bug in the predicate_property/2 built-in method when called
|
|
with the second argument instantiated to the alias/1 property.
|
|
|
|
|
|
2.22.1 - December 6, 2004
|
|
|
|
Improved installation instructions. Updated the Windows installation
|
|
JScript script to add the Logtalk directories "misc" and "xml" to the
|
|
system PATH environment variable and to reuse the environment variable
|
|
LOGTALKUSER if already defined.
|
|
|
|
Added helper batch scripts (misc/cplgtdirs.bat, xml/lgt2html.bat, and
|
|
xml/lgt2pdf.bat) for easily running the corresponding Windows JScript
|
|
scripts from the command-line (the two xml/lgt2*.bat scripts run the
|
|
corresponding *.js scripts stored in the %LOGTALKUSER%/xml directory
|
|
in order to support user customization).
|
|
|
|
Updated the lgt2html.* and lgt2pdf.* shell scripts to use the environment
|
|
variable LOGTALKUSER instead of LOGTALKHOME for finding supporting files,
|
|
thus allowing for end-user customization of the scripts and their related
|
|
files.
|
|
|
|
Added documentation on read-only compiler flags (which are defined in the
|
|
configuration files) to the User Manual.
|
|
|
|
Updated the misc/lgt_install.js JScript installer script to workaround a
|
|
Windows Scripting Host bug which may result in broken shortcuts in the
|
|
created "Logtalk" program group.
|
|
|
|
|
|
2.22.0 - November 29, 2004
|
|
|
|
Implemented a notion of library as simply a directory containing source
|
|
files. Added a new dynamic predicate, logtalk_library_path/2, for
|
|
specifying library paths. Added a sample file (libpaths/libpaths.pl) for
|
|
setting library paths for the Logtalk standard library and for all the
|
|
supplied examples.
|
|
|
|
Added support for using the notation <library>(<entity>) with the built-in
|
|
predicates logtalk_compile/1-2 and logtalk_load/1-2 for compiling and
|
|
loading source files contained on a library, without the need to first
|
|
change the current working directory.
|
|
|
|
Changed the library and the examples loading instructions to use the new
|
|
notation <library>(<entity>).
|
|
|
|
Improved installation instructions and installation scripts. Added a new
|
|
environment variable, LOGTALKUSER, for defining the location of the copies
|
|
of the user-modifiable Logtalk files in a multiple users setup environment.
|
|
|
|
Added utility predicates to most configuration files for querying and
|
|
changing the current working directory (needed for the <library>(<entity>)
|
|
notation to work).
|
|
|
|
Corrected a bug in the code that checks for file existence when compiling
|
|
or loading source files and source metafiles.
|
|
|
|
|
|
2.21.6 - November 15, 2004
|
|
|
|
Added support for using alternative directories for storing the Prolog files
|
|
and the XML documenting files resulting from entity compilation. A new read-
|
|
only flag, "altdirs", allows the support for alternative directories to be
|
|
turned on the configuration files of Prolog compilers providing the necessary
|
|
operating-system access predicates for implementing this feature.
|
|
|
|
Improved installation instructions and reporting of default compilation flags
|
|
at startup.
|
|
|
|
Added a sorely missing "Hello World!" example :-)
|
|
|
|
|
|
2.21.5 - November 2, 2004
|
|
|
|
Added a new optimization compiler flag, "events", which can be used to switch
|
|
off event-driven programming support when not needed, on a per-object basis,
|
|
resulting in improved message sending performance.
|
|
|
|
Small performance optimization to the runtime creation of dynamic objects,
|
|
protocols, and categories.
|
|
|
|
Updated the error handling code of the built-in predicates create_object/4,
|
|
create_protocol/3, and create_category/4 in order to throw an instantiation
|
|
error when called with a non-instantiated argument.
|
|
|
|
Updated the benchmarks example to calculate and subtract the benchmark loop
|
|
time in order to print absolute timings for the benchmarked goals.
|
|
|
|
Updated the Qu-Prolog patching instructions to also convert Logtalk source
|
|
metafiles.
|
|
|
|
Fixed a typo on the XSB compatibility notes in the configs/NOTES file.
|
|
|
|
|
|
2.21.4 - October 26, 2004
|
|
|
|
Corrected a silly bug in the definition of the predicate repeat/1 on the
|
|
new "benchmarks" example.
|
|
|
|
|
|
2.21.3 - October 25, 2004
|
|
|
|
Corrected a silly bug in message translation which resulted in a small
|
|
performance loss. Simplified implementation of message sending predicate
|
|
::/2, resulting in a small performance improvement.
|
|
|
|
Added a new section on message sending performance to the user manual.
|
|
|
|
Added a new example, "benchmarks", for helping measuring performance of
|
|
Logtalk message sending between Prolog compilers and for comparing message
|
|
sending with predicate calls in plain Prolog and with calls to modules
|
|
predicates.
|
|
|
|
Updated the YAP configuration file to hide some of the book-keeping tables
|
|
of the Logtalk runtime engine and to use statistics/2 instead of cputime/0
|
|
for more accurate timings.
|
|
|
|
Updated the Logtalk shell installation script to create the $prefix/bin
|
|
directory if it does not exist.
|
|
|
|
The lgt2pdf.sh and lgt2html.sh shell scripts now use "rm -f" when removing
|
|
the DTD and XSD files in order to avoid prompting the the user about the file
|
|
permissions.
|
|
|
|
Updated the cplgtdirs.sh shell script to make all copied files user writable.
|
|
|
|
|
|
2.21.2 - October 18, 2004
|
|
|
|
Added support for declaring grammar rule non-terminals as public, protected,
|
|
private, dynamic, or discontiguous using the notation Functor//Arity. Added
|
|
support for documenting non-terminals using the info/2 and mode/2 directives.
|
|
|
|
Added support for a new alias/1 predicate property.
|
|
|
|
New experimental config file for JIProlog 3.0 (see the configs/NOTES file
|
|
for details).
|
|
|
|
Added a mode bundle for the TextMode 1.0.x (MacOS X) text editor providing
|
|
syntax highlighting, folding, and code snippets for editing Logtalk source
|
|
files. Corrected a bug in the syntax coloring of the :-/1-2 operator on the
|
|
SubEthaEdit 2.x text editor.
|
|
|
|
|
|
2.21.1 - September 27, 2004
|
|
|
|
Added experimental support for a new built-in method, expand_term/2, which
|
|
allows access to the Logtalk grammar rule translator. Corrected bug in the
|
|
expansion of \+/1 in grammar rule bodies. Optimized code generated for
|
|
message sending calls in the body of grammar rules. Improved error handling
|
|
of the built-in methods phrase/2 and phrase/3. Added new section on definite
|
|
clause grammars to the user manual. Added two new objects to the "dcgs"
|
|
example, dcgtest and bypass, containing test cases for the Logtalk DCG
|
|
translator and illustrating some programming techniques with grammar rules.
|
|
|
|
Corrected a bug in the implementation of the built-in method clause/2 which
|
|
prevented access to clauses of local dynamic predicates.
|
|
|
|
Corrected some dead links on the XHTML manuals.
|
|
|
|
Corrected a bug in the syntax coloring of numbers on the SubEthaEdit 2.x
|
|
text editor.
|
|
|
|
|
|
2.21.0 - September 14, 2004
|
|
|
|
Added a new predicate directive, alias/3, which allows the definition of
|
|
alternative predicate names in order to improve readability of inherited
|
|
features and to solve conflicts between implemented, imported, or inherited
|
|
predicates.
|
|
|
|
Added new example, "aliases", illustrating the use of the new alias/3
|
|
predicate directive for improving readability of inherited features.
|
|
|
|
Added new example, "diamonds", illustrating problems and solutions for the
|
|
"diamond problem" (multi-inheritance conflicts and ambiguities) using the
|
|
new alias/3 predicate directive.
|
|
|
|
Allow categories to import other categories, i.e. allow categories to be
|
|
defined as a composition of other categories. This feature should only be
|
|
used when extending a category without breaking its functional cohesion
|
|
(for example, when a modified version of a category is needed for importing
|
|
into several unrelated objects).
|
|
|
|
Added new example, "engines", illustrating importing a category from another
|
|
category.
|
|
|
|
Updated the syntax coloring configuration files for the supported text
|
|
editors for the new alias/3 predicate directive.
|
|
|
|
Added auto-complete strings for Logtalk methods and for Logtalk and Prolog
|
|
built-in predicates and directives to the SubEthaEdit 2.x text editor.
|
|
|
|
Corrected a bug which prevented compilation of metafiles containing
|
|
parametric entities.
|
|
|
|
|
|
2.20.2 - August 31, 2004
|
|
|
|
Added a Windows JScript script for installing Logtalk. Improved the Windows
|
|
JScript scripts used for easy integration of Logtalk with selected Prolog
|
|
compilers.
|
|
|
|
Improved user manual section on defining object and category metapredicates
|
|
and on calling non-standard Prolog built-in metapredicates. Improved the
|
|
description of some compiler options.
|
|
|
|
Added some files missing from the "errors" example (which should have been
|
|
included in the previous release).
|
|
|
|
Added basic syntax coloring support for the BBEdit 8.x text editor.
|
|
|
|
|
|
2.20.1 - August 19, 2004
|
|
|
|
Added Windows JScript scripts for easy integration of Logtalk with CIAO and
|
|
GNU Prolog.
|
|
|
|
Added encoding attribute (set to UTF-8) to the xsl:output tag in the
|
|
lgtxml.xsl, lgthtml.xsl, and lgtxhtml.xsl files.
|
|
|
|
Replaced the Windows JScript scripts lgt2pdf.js and lgt2html.js by their
|
|
final versions (the wrong ones shipped with Logtalk version 2.20.0).
|
|
|
|
Updated the "errors" example to illustrate possible conflict errors when
|
|
using the uses/2 directive.
|
|
|
|
Updated the RPM logtalk.spec file to use the .tgz archive extension.
|
|
|
|
|
|
2.20.0 - August 16, 2004
|
|
|
|
Added support for the uses/2 predicate directive (whose semantics is similar
|
|
to C++ using-declarations). Updated the uses/1 entity directive to accept as
|
|
argument a single object identifier.
|
|
|
|
Improved installation instructions for Windows users.
|
|
|
|
Added four new sample bash shell scripts and Windows JScript scripts for
|
|
converting XML documenting files to PDF, HTML, and XHTML using several XSL
|
|
processors.
|
|
|
|
Added missing namespace to XSL files in order to generated valid (X)HTML
|
|
files with recent versions of XSLT processors.
|
|
|
|
Updated the User Manual documentation on converting XML documenting files
|
|
to other formats.
|
|
|
|
Removed the texml.xsl XSLT file as the TeXMLatte application it depends on
|
|
is no longer available.
|
|
|
|
Added Windows JScript script for copying the Logtalk examples, library, and
|
|
xml directories to the user directory.
|
|
|
|
Added Windows JScript scripts for easy integration of Logtalk with ECLiPSe,
|
|
SWI-Prolog, SICStus Prolog, and YAP.
|
|
|
|
Added missing extension for source metafiles to the SWI-Prolog hook file.
|
|
|
|
Corrected a bug in the lgtxhtml.xsl XSLT file where a wrong reference to
|
|
the Logtalk CSS file is being used in the xml-stylesheet tag.
|
|
|
|
The iso_initialization_dir/1 compiler option is now a read only flag,
|
|
defined in the configuration files.
|
|
|
|
|
|
2.19.1 - August 2, 2004
|
|
|
|
Corrected a bug where entities could not be reloaded if they depend on
|
|
other, not yet loaded entities.
|
|
|
|
Corrected a bug where compiler options would not be used when compiling
|
|
source metafiles.
|
|
|
|
Corrected several typos on the Logtalk manuals.
|
|
|
|
|
|
2.19.0 - July 26, 2004
|
|
|
|
Added support for defining more than one entity per file using Logtalk
|
|
source metafiles (*.mlgt), which the runtime engine automatically splits
|
|
on single entity source files plus loading and compiling helper files.
|
|
|
|
Updated the URL used on the automatically generated XML documenting files
|
|
when compiling entities with the option doctype(web).
|
|
|
|
Improved error checking when compiling calls to the {}/1 control construct.
|
|
|
|
Corrected several typos and some outdated links on the Logtalk manuals.
|
|
|
|
|
|
2.18.0 - July 9, 2004
|
|
|
|
Added caching of method lookups in order to improve message processing
|
|
performance (including messages to self and super calls). Applied several
|
|
optimizations to runtime translation of messages in order to further
|
|
improve performance.
|
|
|
|
Improved error checking while parsing and compiling messages to self.
|
|
|
|
Update ECLiPSe config files to compile the Prolog files generated by Logtalk
|
|
(when compiling source files) in optimized mode instead of traceable mode.
|
|
|
|
Updated description of patches needed for running Logtalk with XSB, added
|
|
a shell script for easy integration of Logtalk with this Prolog compiler,
|
|
and corrected a problem with its corresponding config file.
|
|
|
|
Added multifile/1 directive to the syntax coloring configuration files of the
|
|
supported text editors.
|
|
|
|
|
|
2.17.2 - June 14, 2004
|
|
|
|
Updated the Logtalk compiler to allow compilation of source files which
|
|
contain only directives and no entity definition.
|
|
|
|
Simplified loading of library and example entities by using Logtalk source
|
|
files as loader files.
|
|
|
|
Some improvements to the documentation, including the QUICK_START file and
|
|
the User Manual for first-time users, and to the example descriptions.
|
|
|
|
Corrected a bug in handling of local object operators that are also global
|
|
operators.
|
|
|
|
Corrected a bug where dynamic directives are not being generated for dynamic
|
|
predicates that lack a scope directive or an initial set of clauses.
|
|
|
|
Corrected a bug where local dynamic predicates would need a private scope
|
|
directive in order to allow clauses of the predicate to be retracted.
|
|
|
|
Simplified compilation of dynamic and discontiguous predicate directives.
|
|
|
|
Added new "logic" example implementing a translator from logic propositions
|
|
to conjunctive normal form.
|
|
|
|
Corrected a problem with wrong end-on-lines on some files.
|
|
|
|
Added a shell script for easy integration of Logtalk with CIAO Prolog.
|
|
|
|
|
|
2.17.1 - June 7, 2004
|
|
|
|
Added custom handling of specification of predicate exceptions in info/2
|
|
documenting directives when writing XML documenting files (declared as
|
|
"exceptions is [Cond1-Term1, Cond2-Term2, ...]"; each pair (Condi, Termi)
|
|
represents an error condition and its respective exception).
|
|
|
|
Changed debugger command "e" to print exception terms instead of exiting
|
|
Logtalk session.
|
|
|
|
Corrected a compilation error with B-Prolog due to operator priorities.
|
|
|
|
Corrected a possible problem with the redefinition of loaded entities that
|
|
define (possibly at runtime) dynamic predicates. All clauses for an entity
|
|
dynamic predicates are retracted before loading the new entity definition.
|
|
|
|
Corrected a potential bug when pretty printing terms with variables in the
|
|
debugger and in the created XML documenting files.
|
|
|
|
Added four more DCGs examples ("walker movements", "iterative shell command
|
|
parsing", "bill of materials", and "command language").
|
|
|
|
New "puzzles" and "metainterpreters" examples.
|
|
|
|
Added a mode bundle for the SubEthaEdit 2.x (MacOS X) text editor providing
|
|
syntax coloring for editing Logtalk source files. Optimized some of the
|
|
regular expressions in the syntax coloring files for the Kate/Kwrite and Vim
|
|
text editors.
|
|
|
|
Removed predicate nth/3 from library entities listp, list, and difflist.
|
|
Replaced by the predicates nth0/3 and nth1/3. Added new predicates nth1/4
|
|
and nth0/4.
|
|
|
|
Updated the config file for Quintus Prolog to make use of the "files"
|
|
library.
|
|
|
|
Added experimental implementations for some Prolog compilers of the library
|
|
portable protocol for operating system access (systemp.lgt). See the file
|
|
library/experimental/NOTES for details.
|
|
|
|
|
|
2.17.0 - April 26, 2004
|
|
|
|
Added built-in debugging support implemented through the definition of a
|
|
new pseudo-object named "debugger". Added "debug" compiler option. Renamed
|
|
library entities "debuggerp" and "debugger" to, respectively, "event_dbgp"
|
|
and "event_dbg".
|
|
|
|
Improved installation instructions for multi-user environments. Added
|
|
a shell script for installing Logtalk in Unix and Unix-like operating
|
|
systems. Added a shell script for copying Logtalk xml, examples, and
|
|
library directories to the user home directory.
|
|
|
|
Added a logtalk.spec file for building Linux RPMs from sources.
|
|
|
|
Added a set of shell scripts for easy integration of Logtalk with ECLiPSe,
|
|
GNU Prolog, Qu-Prolog, SICStus Prolog, SWI-Prolog, and YAP.
|
|
|
|
Corrected bug in the definition of the pseudo-object "user" that resulted
|
|
in mixed up metapredicate and type predicate properties.
|
|
|
|
Removed config files for outdated versions of Qu-Prolog, SWI-Prolog, ECLiPSe,
|
|
K-Prolog, CIAO, YAP, Amzi! Prolog, LPA Win-Prolog, SICStus Prolog, and XSB.
|
|
|
|
|
|
2.16.2 - April 2, 2004
|
|
|
|
Corrected a bug in the library category monitor (file library/monitor.lgt)
|
|
that prevents its compilation.
|
|
|
|
Changed the possible values of the read-only flag startup_message (defined
|
|
in the config files) to "flags" (print banner and flag values), "banner"
|
|
(print only the banner), and "none" (do not print neither the banner nor the
|
|
flag values). Default value is "flags".
|
|
|
|
Updated the "errors" example to illustrate the error messages thrown when
|
|
trying to redefine Logtalk built-in control constructs.
|
|
|
|
Corrected a small problem with the Logtalk language specification file for
|
|
Apple's Xcode IDE.
|
|
|
|
Added preliminary support for syntax coloring using the Windows text editor
|
|
Crimson Editor.
|
|
|
|
|
|
2.16.1 - March 23, 2004
|
|
|
|
The local built-in method parameter/2 can now be used inside categories
|
|
(but please read the warnings about such practice on the user manual).
|
|
|
|
Updated the Logtalk compiler to report an error when the user tries to
|
|
redefine a message sending or external call control construct inside an
|
|
object or category.
|
|
|
|
Corrected a bug in the compilation of metacalls whose meta-arguments are
|
|
variables.
|
|
|
|
Removed references to file sax.jar from the scripts used to convert XML
|
|
documenting files into (X)HTML. Updated scripts html.sh, htmlnt.cmd, and
|
|
htmldos.bat to use XT 20020426a or later version.
|
|
|
|
Improved syntax coloring accuracy of built-in predicates and methods for
|
|
the SubEthaEdit text editor.
|
|
|
|
Updated config file for Qu-Prolog 6.4.
|
|
|
|
|
|
2.16.0 - March 3, 2004
|
|
|
|
Logtalk is now distributed under the Artistic License 2.0.
|
|
|
|
Operators declared inside an entity are now local to the entity, not
|
|
affecting the global operator table (complying with the Logtalk language
|
|
specification). Input and output of terms from inside objects and
|
|
categories now work as expected in the presence of local operator
|
|
declarations. Added a new example named "operators".
|
|
|
|
Updated built-in method predicate_property/2 for returning metapredicate/1
|
|
properties for both Logtalk and Prolog metapredicates.
|
|
|
|
Added support for calls to non-ISO Prolog standard built-in metapredicates
|
|
inside objects and categories. Added support for the declaration of non-ISO
|
|
Prolog standard metapredicates in the config files.
|
|
|
|
Small change to the way the Logtalk compiler reports the compilation of
|
|
entities. Small optimizations to the compilation of Logtalk source files.
|
|
|
|
Corrected a bug where calls to Logtalk built-in predicates would be
|
|
reported as non-portable when the value of compiler option portability is
|
|
set to warning.
|
|
|
|
New config file for Qu-Prolog 6.4 (see the configs/NOTES file for details).
|
|
|
|
Corrected a problem with the syntax coloring of quoted atoms and strings
|
|
in the SubEthaEdit text editor. Added more accurate syntax highlight for
|
|
built-in methods and built-in predicates.
|
|
|
|
Updated the syntax coloring configuration files for all supported text
|
|
editors to recognize the file extension used by the config files.
|
|
|
|
|
|
2.15.6 - February 9, 2004
|
|
|
|
Added "xmlspec" compiler option in order to specify the extension (dtd
|
|
or xsd) of the file describing the XML documenting files specification.
|
|
|
|
Renamed compiler option "named_anonymous_vars" to the more appropriated
|
|
name "underscore_vars". Changed possible option values to "dont_care" and
|
|
"singletons" (default).
|
|
|
|
Added XSLT file for converting XML documenting files to XHTML 1.0 Strict
|
|
files. Set the default encoding of all XSLT files to UTF-8.
|
|
|
|
Added syntax coloring support for the KDE Kate and Kwrite text editors.
|
|
|
|
Improved syntax coloring configuration files for VIM, jEdit, NEdit,
|
|
SubEthaEdit, and Emacs text editors.
|
|
|
|
Removed outdated support for MacOS X Project Builder and added support
|
|
for the new MacOS X Xcode developer tool.
|
|
|
|
Corrected bug in the built-in predicate current_logtalk_flag/2 that
|
|
prevented some flag values from being returned after using the built-in
|
|
predicate set_logtalk_flag/2.
|
|
|
|
Corrected bug in the shapes example (wrong placement of the declaration
|
|
of the predicate side/1).
|
|
|
|
|
|
2.15.5 - December 30, 2003
|
|
|
|
Make operator ^^/1 right-associative for consistency with remaining
|
|
operator declarations.
|
|
|
|
Added file BIBLIOGRAPHY containing a list of Logtalk publications in
|
|
BibTeX format.
|
|
|
|
Added a font-lock file for Emacs providing syntax coloring for editing
|
|
Logtalk source files.
|
|
|
|
Added an implementation of the Smalltalk dependent mechanism to the
|
|
standard Logtalk library.
|
|
|
|
Updated the config file for ECLiPSe 5.4~5.7 with missing ISO Prolog
|
|
predicate definitions needed for successful compilation of all entities
|
|
in the Logtalk standard library.
|
|
|
|
Updated manual pages to comply with XHTML 1.0 Strict and to provide
|
|
better navigation.
|
|
|
|
|
|
2.15.4 - July 9, 2003
|
|
|
|
Corrected a spurious backtracking bug in the DCG rule translator. Added
|
|
two more examples of DCGs.
|
|
|
|
New config file for XSB 2.6. Updated Logtalk compiler to compile cleanly
|
|
under XSB after applying the patch described in configs/NOTES.
|
|
|
|
Updated SWI-Prolog config file to hide compiled entity predicates (requires
|
|
SWI-Prolog 5.2.3 or later version). New optional file configs/swihook.pl
|
|
contains hook code that allows Logtalk entities to be compiled and loaded
|
|
using SWI-Prolog load_files/2 and consult/1 predicates.
|
|
|
|
Syntax definition file for the Hydra 1.1 (MacOS X) text editor providing
|
|
syntax coloring for editing Logtalk source files.
|
|
|
|
Updated syntax coloring files for jEdit, NEdit, Vim, and TextPad in order
|
|
to recognize character code constants (0'x) and the DCG operator -->/2.
|
|
|
|
|
|
2.15.3 - June 27, 2003
|
|
|
|
Updated experimental support for DCG rules to prevent over-simplification
|
|
of unification goals in the compilation of rules to clauses. Push-back
|
|
lists can now be used on rule heads.
|
|
|
|
The compilation mode of an entity (static/dynamic) is now stored in the
|
|
corresponding entity table (implying recompilation of all entities).
|
|
|
|
Updated GNU Prolog config file to hide compiled entity predicates.
|
|
|
|
Updated SWI-Prolog config file for better integration of Logtalk with
|
|
this compiler.
|
|
|
|
|
|
2.15.2 - April 2, 2003
|
|
|
|
Experimental support for DCG rules inside categories and objects. Added
|
|
built-in methods phrase/2 and phrase/3.
|
|
|
|
Updated GNU Prolog config file to not hide compiled entity predicates in
|
|
order to avoid incompatibilities with dynamic entities.
|
|
|
|
|
|
2.15.1 - March 8, 2003
|
|
|
|
New example, msglog, of using events and monitors to record, replay, and
|
|
print user messages.
|
|
|
|
Corrected a typo on the jEdit templates that resulted in syntax errors.
|
|
Corrected wrong year format in info/1 directive in all entity templates.
|
|
Added missing version info key to jEdit prototype template.
|
|
|
|
Corrected documentation of built-in local methods self/1 and sender/1.
|
|
Updated documentation of built-in local methods parameter/2 and this/1.
|
|
|
|
|
|
2.15.0 - February 5, 2003
|
|
|
|
Changed "authors" key in info/1 directive to "author".
|
|
|
|
Corrected documentation of built-in local method this/1.
|
|
|
|
New geometric shapes example implemented in two versions, one
|
|
prototype-based and the other one class-based.
|
|
|
|
Improved support for jEdit text editor by adding a set of programming
|
|
templates for use with the editor Templates plug-in.
|
|
|
|
Added basic support for syntax highlighting and programming templates
|
|
for MacOS X Project builder.
|
|
|
|
|
|
2.14.7 - January 10, 2003
|
|
|
|
Corrected a bug in the built-in methods asserta/1 and assertz/1 when
|
|
asserting predicate rules.
|
|
|
|
The built-in predicates logtalk_compile/1-2 and logtalk_load/1-2 now
|
|
accept both an entity (an atom) or a list of entities (a list of atoms).
|
|
|
|
Optimized the code generated when compiling or asserting clauses for
|
|
dynamic predicates.
|
|
|
|
Optimized protected inheritance performance on some Prolog compilers.
|
|
|
|
|
|
2.14.6 - December 31, 2002
|
|
|
|
Corrected a bug where the opening directive of an object that,
|
|
simultaneously, implements a protocol, imports a category, instantiates
|
|
a class, and specializes a superclass, will not be recognized.
|
|
|
|
|
|
2.14.5 - December 20, 2002
|
|
|
|
Simplified dynamic table of predicate declarations by removing two
|
|
redundant arguments.
|
|
|
|
Corrected a bug where sending messages such as true/0 or !/0 to an
|
|
unknown object succeeded instead of throwing the correct exception.
|
|
|
|
Simplified the code used to generate links in the lgtpdfa4.xsl and
|
|
lgtpdfus.xsl XSLT files.
|
|
|
|
|
|
2.14.4 - November 5, 2002
|
|
|
|
Removed definition of deprecated built-in predicate logtalk_version/3.
|
|
|
|
Show flag names when printing at startup the default flag values.
|
|
|
|
Small change to messages printed on console with smart compilation of
|
|
source files turned on.
|
|
|
|
Updated YAP 4.3.x config file to use the YAP "system" library to access
|
|
the operating system for time, date, and file properties (enabling smart
|
|
source code compilation).
|
|
|
|
Updated the lgtpdfa4.xsl and lgtpdfus.xsl XSLT files to workaround a bug
|
|
in the PassiveTeX 1.21 XSL:FO processor.
|
|
|
|
|
|
2.14.3 - September 16, 2002
|
|
|
|
New compiler option, doctype, to set the doctype reference (if any)
|
|
in the XML documenting files. Default value is "local" for backward
|
|
compatibility. Updated the user manual section on compiler options.
|
|
|
|
The Logtalk built-in predicate logtalk_version/3 should be considered
|
|
deprecated (use current_logtalk_flag/3 instead). All references to this
|
|
predicate have been removed from the manuals.
|
|
|
|
Updated the jEdit syntax coloring config file for the new jEdit 4.1
|
|
version.
|
|
|
|
Updated the lgtpdfa4.xsl and lgtpdfus.xsl XSLT files for compatibility
|
|
with the XSL:FO processors Apache FOP 0.20.4, PassiveTeX, and RenderX
|
|
and with the XSL W3C Recommendation of October 15, 2001. Updated the
|
|
pdf.bat and pdf.sh scripts to reference the latest version of the
|
|
Apache FOP processor (0.20.4).
|
|
|
|
Changed the shell scripts html.sh and pdf.sh for compatibility with the
|
|
sh, bash, and zsh shells.
|
|
|
|
|
|
2.14.2 - August 26, 2002
|
|
|
|
Calls to built-in method parameter/2 are now compiled inline, improving
|
|
call performance.
|
|
|
|
Updated Logtalk compiler to clean temporary compilation predicates after
|
|
compiling an entity instead of only before compilation.
|
|
|
|
Updated YAP 4.3.x config file for better Logtalk integration by hiding
|
|
all internal compiler, runtime, and compiled entities static predicates.
|
|
|
|
Updated GNU Prolog config file for better Logtalk integration by hiding
|
|
all internal compiler, runtime, and compiled entities predicates.
|
|
|
|
Updated the XSLT conversion scripts lgtxml.xsl and lgthtml.xsl to correct
|
|
some HTML conformance errors in the generated pages.
|
|
|
|
Corrected some XHTML conformance errors in the manual pages.
|
|
|
|
|
|
2.14.1 - July 31, 2002
|
|
|
|
New Windows NT script and updated Unix shell script for batch converting
|
|
XML documenting files to HTML. Both scripts also generate an index.html
|
|
file containing links to all converted XML documenting files.
|
|
|
|
Corrected wrong XHTML DOCTYPE declaration in manual pages.
|
|
|
|
|
|
2.14.0 - July 26, 2002
|
|
|
|
Renamed all compiler and runtime internal predicates and all auxiliary
|
|
predicates in the config files to start with a "$" character.
|
|
|
|
New compiler option, code_prefix, to set a prefix for all Prolog code
|
|
functors generated by Logtalk when compiling entities. Default is ''.
|
|
|
|
New compiler option, named_anonymous_vars, that instructs the compiler to
|
|
interpret variables that start with an underscore as anonymous variables
|
|
(and to not report them as singleton variables). Default value is "off".
|
|
|
|
Directive info/2 was wrongly declared as a entity directive instead of a
|
|
predicate directive.
|
|
|
|
Converted all manual pages to XHTML 1.0 format. Corrected a wrong link in
|
|
the reference manual. Replaced GIF images by PNG versions.
|
|
|
|
Updated BProlog 6.x config file to workaround the new 6.2 built-in
|
|
predicate ::/2 that conflicts with the same named Logtalk message sending
|
|
operator.
|
|
|
|
Removed call to the obsolete built-in predicate nodbgcomp/0 from all
|
|
ECLiPSe config files.
|
|
|
|
|
|
2.13.0 - June 15, 2002
|
|
|
|
Logtalk now outputs Prolog code using write_canonical/2 instead of
|
|
write_term/3. Goals are better portability of the generated Prolog files
|
|
and avoid issues with clauses with long bodies for Prolog compilers that
|
|
use a term print depth limit to prevent problems with cyclic terms.
|
|
|
|
Added report of default flag values at Logtalk startup.
|
|
|
|
Logtalk now prints a warning when redefining parametric objects.
|
|
|
|
Removed need of an abort/0 predicate from the Logtalk debugger example.
|
|
Removed any definition of this predicate from the config files.
|
|
|
|
Added missing definitions for some ISO built-in predicates to the Amzi!
|
|
Prolog 6.2.2 config file.
|
|
|
|
|
|
2.12.0 - May 25, 2002
|
|
|
|
New read-only Logtalk flag "version". Corrected exception term generated
|
|
when trying to modify a read-only flag using the set_logtalk_flag/2
|
|
built-in predicate.
|
|
|
|
Updated config file for OpenProlog 1.1b5.
|
|
|
|
New config file for ECLiPSe 5.4.
|
|
|
|
Renamed config files for CIAO 1.7 (beta of 1.8) to "ciao_aux18.config"
|
|
and "ciao18.config".
|
|
|
|
Updated config file for Amzi! Prolog 6.2.2.
|
|
|
|
New example of using some of the built-in database handling methods
|
|
(dynpred).
|
|
|
|
Syntax configuration files for jEdit 4.0, VIM 6.1, NEdit 5.2, and
|
|
TextPad 4.5 text editors providing syntax highlighting for editing
|
|
Logtalk source files.
|
|
|
|
|
|
2.11.0 - April 22, 2002
|
|
|
|
Added a "smart compilation" feature to the Logtalk compiler, controlled
|
|
by a "smart_compilation" flag. Only available in Prolog compilers that
|
|
provide access to file modification dates.
|
|
|
|
Added a "startup_message" flag to control printing of the Logtalk banner
|
|
at startup.
|
|
|
|
Reworked Logtalk pre-processor compilation and loading reports. Compiler
|
|
option "report" now toggles between normal reporting (as specified by the
|
|
other flags) and silent compilation/loading of source files.
|
|
|
|
|
|
2.10.0 - April 5, 2002
|
|
|
|
Scope of object asserted predicates for which there is no declaration is
|
|
now a function of the context instead of always being declared public.
|
|
Asserting in this, the predicate is declared private, asserting in self,
|
|
the predicate is declared protected, otherwise the predicate is declared
|
|
public.
|
|
|
|
Throw an error if a category contains clauses for dynamic predicates.
|
|
|
|
Updated documentation on categories and built-in methods for database
|
|
handling.
|
|
|
|
Retracting all clauses for a dynamic predicate from an object now allows
|
|
an inherited definition to be called when sending the corresponding
|
|
message. In previous versions the message just failed.
|
|
|
|
Added missing entries for the built-in predicates current_logtalk_flag/2
|
|
and set_logtalk_flag/2 to the Logtalk compiler built-in predicates table.
|
|
|
|
Updated config file for Amzi! Prolog 6.1.74.
|
|
|
|
Updated notes on patching XSB to work with Logtalk.
|
|
|
|
|
|
2.9.3 - February 9, 2002
|
|
|
|
New current_logtalk_flag/2 and set_logtalk_flag/2 built-in predicates.
|
|
|
|
Updated documentation on new built-in predicates.
|
|
|
|
Renamed SWI-Prolog config file swi330.config to swi.config.
|
|
|
|
Renamed config file predicate lgt_default_compiler_option/2 to lgt_flag/2.
|
|
|
|
New XSL style-sheets and shell scripts to convert Logtalk XML entity
|
|
documenting files to PDF format using XSL Formating Objects.
|
|
|
|
|
|
2.9.2 - January 4, 2002
|
|
|
|
The Logtalk compiler can now print a warning when compiling source files
|
|
that use non-ISO defined built-in predicates using a new portability/1
|
|
compiler option. Updated the relevant sections of the user manual and the
|
|
errors example.
|
|
|
|
Corrected a compiler bug where the entity relation tables only recorded
|
|
the last entry per entity relation type.
|
|
|
|
Updated config file for CIAO 1.7#162.
|
|
|
|
|
|
2.9.1 - December 5, 2001
|
|
|
|
Logtalk compiler now prints a warning when redefining or replacing an
|
|
existing entity.
|
|
|
|
Corrected a compiler bug in the error checking code for the info/1
|
|
and info/2 directives.
|
|
|
|
Changed the order of object loading in the "mi" example to avoid
|
|
spurious warning messages.
|
|
|
|
Added a new problem ("bridge") to the "searching" example. Improved
|
|
"performance" monitor to give correct reports on alternative solutions.
|
|
Corrected a bug in the "water jug" state space example.
|
|
|
|
|
|
2.9.0 - October 22, 2001
|
|
|
|
Added config files for CIAO Prolog 1.7p115 and B-Prolog 6.0.
|
|
|
|
Compiling and loading an entity that contains references to unknown
|
|
entities (by default) prints a warning. Updated user and reference
|
|
manuals.
|
|
|
|
Rewritten all the compiler warning/error code and output messages.
|
|
|
|
Changed compiled code functors postfixes from "_sdcl" and "_sdef" to
|
|
"_idcl" and "_idef" (implies recompilation of all objects, protocols,
|
|
and categories).
|
|
|
|
Changed all occurrences and references to the term "entity_scope" to
|
|
"scope".
|
|
|
|
Removed some redundant productions from the Logtalk grammar.
|
|
|
|
Updated documentation on the xml directory. Renamed some of the .xsl
|
|
files. Added sample scripts to batch convert .xml files to .html files.
|
|
|
|
Added a new loader utility file, all.loader, to load all library files
|
|
loaded by the other loader files.
|
|
|
|
Started work on documenting the Logtalk pre-processor/compiler source
|
|
file.
|
|
|
|
New "errors" example. Updated the "inheritance" example.
|
|
|
|
|
|
2.8.4 - March 9, 2001
|
|
|
|
Updated config files for BinProlog 8.0, K-Prolog 5.01, XSB 2.3, and
|
|
Amzi! Prolog 4.103~5.0.
|
|
|
|
New config file for Amzi! Prolog 6.1 beta.
|
|
|
|
Corrected an incomplete entity definition in the Logtalk XML DTD.
|
|
Rewrite the Logtalk XSLT files for improved compatibility with XSLT
|
|
processors regarding handling of whitespace.
|
|
|
|
A first cut of a XML Schema for the Logtalk XML documentation files
|
|
(file xml/logtalk.xsd).
|
|
|
|
Small improvements to the documentation.
|
|
|
|
|
|
2.8.3 - November 21, 2000
|
|
|
|
Corrected a bug where sending a message for a built-in method to an
|
|
unknown object fails instead of generating the expected exception.
|
|
|
|
Put some occurrences of atoms public, mode, and type between ()'s to
|
|
avoid compilation errors in BinProlog 8.0 and other Prolog compilers
|
|
that declare these atoms as operators.
|
|
|
|
Corrected the definition of the state space of the "Missionaries and
|
|
Cannibals" problem in the "searching" example that resulted in some
|
|
wrong solutions.
|
|
|
|
|
|
2.8.2 - November 5, 2000
|
|
|
|
New .xsl file to convert .xml files to TeXML files.
|
|
|
|
Fixed a problem with explicit compilation options being correctly parsed
|
|
but not processed.
|
|
|
|
Corrected a bug regarding default init options definition for the
|
|
points, polygons, and bricks examples. Updated category initialization
|
|
in roots example.
|
|
|
|
|
|
2.8.1 - October 28, 2000
|
|
|
|
New config file for K-Prolog 5.0.
|
|
|
|
Improved compiler error detection and reporting of invalid directives
|
|
and clauses.
|
|
|
|
Corrected a problem with some Prolog compilers where compiling a file
|
|
containing syntax errors may not close the file after the errors are
|
|
reported.
|
|
|
|
Many small improvements to all documentation.
|
|
|
|
Small improvements to the .xsl files and to the output of .xml files.
|
|
|
|
|
|
2.8.0 - October 1, 2000
|
|
|
|
I have found just a few days ago that I have uploaded to the Logtalk web
|
|
server a development version of Logtalk 2.7.0 instead of the final one!
|
|
To avoid confusions I decided to release a new version.
|
|
|
|
Changed implementation of the logtalk_compile/1-2 and logtalk_load/1-2
|
|
predicates to only accept a list of entities instead of either an entity
|
|
or a list of entities, simplifying and improving the performance of these
|
|
predicates. Improved error reporting for the logtalk_compile/1 and
|
|
logtalk_load/1 predicates. Updated relevant sessions in the user and
|
|
reference manuals.
|
|
|
|
Simplified the implementation of the following predicates, by sharing
|
|
the error checking code with the corresponding extended versions:
|
|
implements_protocol/2, imports_category/2, instantiates_class/2,
|
|
specializes_class/2, extends_protocol/2, and extends_object/2.
|
|
|
|
Completed some missing library file dependencies documentation in some
|
|
examples.
|
|
|
|
New version of the QUICK_START help file. Updated tutorial.
|
|
|
|
|
|
2.7.0 - August 24, 2000
|
|
|
|
First release of the Logtalk standard library of objects, protocols and
|
|
categories.
|
|
|
|
Rewritten all examples to use the new Logtalk standard library.
|
|
|
|
New logtalk_load/2 and logtalk_compile/2 Logtalk built-in predicates,
|
|
accepting a list of compiler options. See the User and Reference Manuals
|
|
for details.
|
|
|
|
New XSLT file for viewing .xml files in Microsoft Internet Explorer 5.5
|
|
for Windows after installing the latest Microsoft XML Parser Preview
|
|
Release. Small improvements in all XSLT files.
|
|
|
|
Starting with this version all config files need to provide a definition
|
|
for the compare/3 predicate if it is not built-in in the corresponding
|
|
Prolog compiler. Also, default Logtalk compiler options are now also set
|
|
in the config files using the lgt_default_compiler_option/2 predicate.
|
|
|
|
Updated config file for CIAO 1.6p1. See the configs/NOTES file for
|
|
details.
|
|
|
|
|
|
2.6.2 - July 4, 2000
|
|
|
|
Improved performance and error checking for the built-in predicates
|
|
create_object/4, create_protocol/3 and create_category/4.
|
|
|
|
Updated config file for BinProlog 7.83.
|
|
|
|
Many small updates to all documentation.
|
|
|
|
New PDF versions of the documentation formated for printing (with page
|
|
numbers, table of contents and index)are now available in both A4 and
|
|
US letter formats.
|
|
|
|
|
|
2.6.1 - May 5, 2000
|
|
|
|
Modified the structure of the automatically generated XML documenting
|
|
files to improve XSL translation performance. Added a new, more standard
|
|
compliant, XSL file to generate HTML files and renamed the old one to
|
|
ie5.xsl. See the xml/NOTES file for details. Corrected an error in the
|
|
logtalk.css CSS file.
|
|
|
|
Modified the definitions of predicates lgt_file_extension/2 and
|
|
lgt_file_name/2 in all config files.
|
|
|
|
Updated all the user manual sessions related to automatic documentation.
|
|
|
|
Updated all HTML documentation for future XHTML 1.0 conformance.
|
|
|
|
Start adding documenting directives to most examples.
|
|
|
|
|
|
2.6.0 - April 27, 2000
|
|
|
|
Added support for documentation of objects, protocols, and categories,
|
|
using automatic generation of XML files.
|
|
|
|
Added info/1 and info/2 directives for documenting objects, protocols,
|
|
categories, and predicates. Added definition of documentation file name
|
|
extension and default file names for the DTD and XSL files to the config
|
|
files.
|
|
|
|
Improved error checking for the built-in predicates create_object/4,
|
|
create_protocol/3 and create_category/4 to also detect invalid entity
|
|
identifiers.
|
|
|
|
Updated the user and reference manuals to describe the new automatic
|
|
documenting features.
|
|
|
|
Updated all HTML documentation to conform to HTML 4.01 strict standard.
|
|
|
|
Corrected some wrong cross-reference links and titles in the reference
|
|
and user manuals HTML pages.
|
|
|
|
PDF versions of the manuals and tutorial are now available in both A4
|
|
and US letter formats.
|
|
|
|
Corrected two errors in the searching example, one in the definition of
|
|
the farmer problem state space and the other when backtracking over
|
|
performance reports.
|
|
|
|
|
|
2.5.2 - March 7, 2000
|
|
|
|
Updated manuals to clarify some limitations of declaring and defining
|
|
dynamic predicates inside categories and documented a way of using the
|
|
built-in local method this/1 to access object parameters.
|
|
|
|
Removed references to parametric categories from the Logtalk
|
|
documentation (at runtime we can only access object parameters,
|
|
not category parameters).
|
|
|
|
Corrected two wrong declarations of built-in methods (forall/2 and
|
|
retractall/1) in the Logtalk pre-processor.
|
|
|
|
Corrected bug where predicates declared in dynamic entities may have
|
|
a "static" instead of a "dynamic" property.
|
|
|
|
Corrected a bug in category compilation that prevented a dynamic category
|
|
from being abolished. Speedup predicate definition lookups for categories.
|
|
|
|
|
|
2.5.1 - February 18, 2000
|
|
|
|
Two new examples: birds, a bird identification expert system adopted
|
|
(with permission) from an Amzi example, and viewpoints, a set of
|
|
prototypes showing how to do property sharing and value sharing in
|
|
Logtalk.
|
|
|
|
Renamed config file yap421.config to yap430.config to match the name of
|
|
the new YAP 4.3.0 public release (named 4.2.1 while on beta testing).
|
|
|
|
Partial config file for Trinc Prolog R3.
|
|
|
|
|
|
2.5.0 - December 29, 1999
|
|
|
|
The Logtalk pre-processor now accepts arbitrary clauses and directives
|
|
to appear in a file before an opening entity directive. The clauses and
|
|
directives are added unchanged to the compiled file.
|
|
|
|
Improved performance for all kinds of message sending.
|
|
|
|
Two new examples: reflection, showing how to implement a simple
|
|
class-based reflective system, and symdiff, showing how to use
|
|
parametric objects to implement symbolic expression differentiation
|
|
and simplification.
|
|
|
|
Updated config file for the beta 8 release of SWI-Prolog 3.3.0.
|
|
|
|
|
|
2.4.0 - December 1, 1999
|
|
|
|
Logtalk is now an Open Source project, available under Perl's Artistic
|
|
license.
|
|
|
|
Two new examples: instmethods, illustrating the use of instance defined
|
|
methods, and classvars, showing how to implement class variables.
|
|
|
|
Updated Logtalk grammar to explicitly allow for user-defined types
|
|
in mode/2 directives.
|
|
|
|
New config files for SWI-Prolog 3.3.0, SICStus Prolog 3.8 and CIAO
|
|
Prolog 1.4p0 (incomplete).
|
|
|
|
Updated config file for B-Prolog 4.0.
|
|
|
|
Updated config file for GNU Prolog to use the new call_with_args()
|
|
built-in predicate added in version 1.1.0.
|
|
|
|
Updated config file for YAP Prolog to use the new call_with_args()
|
|
built-in predicate added in version 4.2.1.
|
|
|
|
|
|
2.3.1 - September 22, 1999
|
|
|
|
Logtalk pre-processor updated to only report one warning per redefined
|
|
Logtalk or Prolog built-in predicate.
|
|
|
|
Changed some occurrences of atom "public" to "(public)" in
|
|
compiler/logtalk.pl file to avoid syntax errors in Prolog compilers
|
|
(like BinProlog) that define "public" as an operator. Also put some
|
|
terms between ()'s to avoid syntax errors with ALS Prolog 3.1
|
|
|
|
Update config file for ALS Prolog to work with version 3.1.
|
|
|
|
Updated configs/NOTES file include a workaround to use Logtalk with
|
|
XSB 2.0, some guidelines on how to write loader utility files for
|
|
BinProlog 7.50, and a bug in ALS Prolog 3.1 that affects Logtalk.
|
|
|
|
|
|
2.3.0 - September 12, 1999
|
|
|
|
Metapredicate information is now stored with the other predicate
|
|
properties, instead of being discarded after compiling the clauses of
|
|
a metapredicate. Added predicate property metapredicate/1. It is now
|
|
possible to assert clauses for dynamic metapredicates.
|
|
|
|
Corrected a bug in the processing of metacalls in pseudo-object user.
|
|
|
|
Corrected a bug in the implementation of private inheritance.
|
|
Improved performance of protected inheritance.
|
|
|
|
Corrected failure of processing initialization/1 and op/3 directives in
|
|
create_object/4, create_category/4 and create_protocol/3 built-in
|
|
predicates.
|
|
|
|
Corrected a bug when calling private static category predicates from
|
|
importing objects. Simplified code generated for categories.
|
|
|
|
Rewrite code for the built-in method current_predicate/1 to avoid
|
|
duplicated or wrong results when overriding predicate declarations
|
|
and to ensure that all possible argument type errors are detected.
|
|
|
|
Changed compilation of classes that do not instantiate any (meta)class
|
|
in order to throw the correct exception when a message is sent to them.
|
|
|
|
Changed compilation of root objects (that do not instantiate, specialize
|
|
or extend other objects) so that calls to "super" (^^/1) fail (as they
|
|
should) instead of generating a "predicate does not exist" error message.
|
|
|
|
Changed implementation of "super" calls (^^/1) to avoid a potential
|
|
endless loop problem when using these calls from the inheritance root
|
|
object of a reflexive class-based systems.
|
|
|
|
Pre-processor now checks for callable and object identifier errors.
|
|
Runtime now checks for non-instantiated messages.
|
|
|
|
Added new example (inheritance) about public, protected and private
|
|
inheritance.
|
|
|
|
Updated metapredicates, lo, kernel, and types examples. Most of the
|
|
code in the last two examples is being updated to form the basis of an
|
|
upcoming Logtalk standard library.
|
|
|
|
Small changes in the pre-processor/runtime code for compatibility with
|
|
ECLiPSe 4.2.2. Updated config files for this Prolog compiler.
|
|
|
|
Rewrite some predicates in the config files for SWI-Prolog and LPA
|
|
Mac & WIN Prologs for improved performance.
|
|
|
|
New tutorial session about events and monitors.
|
|
|
|
Updated documentation to match the changes made in this version.
|
|
|
|
|
|
2.2.0 - July 10, 1999
|
|
|
|
Implemented public, protected and private object inheritance, protocol
|
|
implementation and category importation.
|
|
|
|
New Logtalk built-in predicates instantiates_class/3, extends_object/3,
|
|
extends_protocol/3, specializes_class/3, imports_category/3 and
|
|
implements_protocol/3. The third argument returns the relation scope.
|
|
|
|
Pre-processor now checks most directive errors.
|
|
|
|
Changed ^^/1 (super call) implementation to only allow the use of a
|
|
single predicate call for argument and to retain the original sender
|
|
of the message (see the updated sicstus example).
|
|
|
|
Fixed bug that prevented directives with a variable number of arguments
|
|
(like dynamic(), public(), uses(), ...) being recognized.
|
|
|
|
Changed definition of predicate read_term/3 in the configs files of Amzi!,
|
|
Aquarius, Arity, Eclipse, IC, K, LPA Mac&WIN, Master and XSB to always
|
|
instantiates the singleton variables list to the empty list. Needed to
|
|
prevent backtracking problems in logtalk_load/1 and logtalk_compile/1
|
|
predicates.
|
|
|
|
Removed choice-point in processing metacalls in predicate definitions.
|
|
|
|
A banner with the Logtalk version is printed after loading the runtime/
|
|
pre-processor.
|
|
|
|
Removed variables example. The category attributes is now part of the
|
|
kernel example. Corrected some harmless syntax errors in directives in
|
|
kernel/attributes.lgt, kernel/monitor.lgt and miscellaneous/queens.lgt.
|
|
|
|
Changed name of blocks example to bricks and object "block" to "brick"
|
|
in order to avoid problems with some Prolog compilers that use the atom
|
|
"block" for operators or built-in predicates.
|
|
|
|
|
|
2.1.0 - May 11, 1999
|
|
|
|
Fixed some bugs in the definition of the pseudo-object user when sending
|
|
the message predicate_property/2.
|
|
|
|
Renamed config file for Calypso to GNU Prolog.
|
|
|
|
New config file for LPA WinProlog 4.0.
|
|
|
|
Corrected the omission in the documentation of the Logtalk grammar of the
|
|
built_in entity property.
|
|
|
|
New tutorial pages about building reflective class-based systems.
|
|
|
|
Modified pre-processor to compile throw/1 as a control structure to
|
|
ensure compatibility with the GNU-Prolog compiler.
|
|
|
|
Modified pre-processor to ensure compatibility with Prolog compilers that
|
|
use immediate update semantics instead of the ISO logical database update.
|
|
|
|
Improved simplification of compiled object and category clauses.
|
|
|
|
Rewrite and clean up pre-processor code for better compiler performance.
|
|
|
|
Several updates to the examples files.
|
|
|
|
Changed all example loader files to wrap the call to logtalk_load/1 inside
|
|
an initialization/1 directive for ISO standard compliance.
|
|
|
|
|
|
2.0 GM - February 9, 1999
|
|
|
|
Removed some redundant choice-points that are being created when
|
|
compiling Logtalk entities.
|
|
|
|
Small compilation speed optimizations.
|
|
|
|
Logtalk compiled files now contain the declarations for the message
|
|
sending operators to ensure compatibility with some Prolog compilers.
|
|
|
|
Changed the way Logtalk pre-processor writes directives to ensure
|
|
compatibility with some Prolog compilers. Corrected a bug in the
|
|
processing of the op/3 directive.
|
|
|
|
Updated PrologII+ config file for version 4.5.
|
|
|
|
Changed the definitions of catch/3 and throw/1 in the config files for
|
|
LPA Prolog compilers.
|
|
|
|
New config file for MasterProlog 4.1; removed config file for the
|
|
old BIM Prolog 4.0.
|
|
|
|
Corrected an error in the config file for OpenProlog in the definition
|
|
of the write_term/3 predicate.
|
|
|
|
Added a safer definition for write_term/3 predicate in the config
|
|
files for Amzi, Aquarius, Arity, Eclipse, IC, K, LPA Mac, LPA Win,
|
|
and XSB Prolog compilers.
|
|
|
|
Added a QUICK_START file.
|
|
|
|
|
|
2.0 Beta 3 - February 1, 1999
|
|
|
|
Closed some encapsulation holes in the implementation of super calls.
|
|
|
|
Changed Logtalk pre-processor to use write_term/3 instead of write/2 and
|
|
writeq/2 to workaround some compatibility problems with some Prolog
|
|
compilers.
|
|
|
|
Changed mode operators priority and type to be compatible with the ISO
|
|
standard.
|
|
|
|
Modified definition of predicate read_term/3 in the config file for Amzi
|
|
compiler to return the atom end_of_file instead of '!EOF' at the end of
|
|
a file (this prevented Logtalk to complete compilation any file under
|
|
this compiler). Improved detection of built-in predicates while compiling.
|
|
|
|
Removed config file for wamcc. This compiler have been replaced by
|
|
Calypso (developed by the same author).
|
|
|
|
Updated K-Prolog config file for version 4.50.
|
|
|
|
Improved documentation of template config file.
|
|
|
|
Added SCRIPT files to the kernel and types examples.
|
|
|
|
Updated Tutorial and User and Reference Manuals.
|
|
|
|
New end user license.
|
|
|
|
|
|
2.0 Beta 2 - November 16, 1998
|
|
|
|
Built-ins logtalk_compile/1 and logtalk_load/1 updated to match
|
|
the documentation regarding thrown errors and to accept a list of
|
|
entities to compile/load.
|
|
|
|
Modified the examples loader utility files to make only a call to
|
|
logtalk_load/1 by using a list of entities. This should make it easy to
|
|
modify these files for compilers that don't support arbitrary queries
|
|
in a file.
|
|
|
|
Logtalk runtime no longer tries to catch some of the errors thrown
|
|
by ::/2.
|
|
|
|
Added to all config files a Logtalk predicate to check if a file
|
|
exists in the current working directory (used by the logtalk_load/1
|
|
and logtalk_compile/1 Logtalk built-in predicates).
|
|
|
|
New configs files for the K-Prolog 4.14 and Calypso 1.0b6 Prolog
|
|
compilers.
|
|
|
|
Completed the config file for Open Prolog 1.03d38 (with the exception
|
|
of lgt_current_date/3 that still have a dummy definition).
|
|
|
|
Added a missing definition for Logtalk predicate forall/2 to the config
|
|
file for Prolog II+ 4.4.
|
|
|
|
Modified Logtalk pre-processor/runtime to avoid syntax errors when
|
|
running on Open Prolog or Calypso and to remove some redundant
|
|
choice-points that are being created when compiling categories and
|
|
protocols.
|
|
|
|
Modified some examples that use operators to avoid syntax errors in
|
|
some Prolog compilers.
|
|
|
|
Modified the implementation of the built-in method
|
|
predicate_property/2 to avoid duplicate answers and to throw an
|
|
instantiation error if the first argument is not bound.
|
|
|
|
Modified definition of the pseudo-object user to hide Logtalk pre-
|
|
processor predicates from the current_predicate/1 built-in method and
|
|
to ensure that the predicate_property/2 built-in method returns
|
|
Logtalk defined predicate properties for built-in Logtalk and Prolog
|
|
predicates.
|
|
|
|
Modified Prolog code generated by the pre-processor to further minimize
|
|
possible conflicts with user defined predicates.
|
|
|
|
Added a lgt_predicate_property/2 predicate to the config files to
|
|
improve Logtalk portability.
|
|
|
|
Updated Tutorial and User and Reference Manuals.
|
|
|
|
|
|
2.0 Beta 1 - October 18, 1998
|
|
|
|
Added basic support for implementation multi-inheritance.
|
|
|
|
Logtalk pre-processor updated to try to detect misspelt local
|
|
predicate calls.
|
|
|
|
First public beta.
|
|
|
|
|
|
2.0 Alpha 1 - July, 1998
|
|
|
|
First release for registered users.
|