523 lines
18 KiB
Plaintext
523 lines
18 KiB
Plaintext
|
=================================================================
|
||
|
Logtalk - Object oriented extension to Prolog
|
||
|
Release 2.8.4
|
||
|
|
||
|
Copyright (c) 1998-2001 Paulo Moura. All Rights Reserved.
|
||
|
=================================================================
|
||
|
|
||
|
|
||
|
RELEASE NOTES
|
||
|
=============
|
||
|
|
||
|
|
||
|
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 ocorrences 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 "Missionaires 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, ilustrating 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 warmless 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 definiton
|
||
|
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 arbritrary 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.
|