Logtalk 2.30.1 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1903 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
84f478c301
commit
6b4bde14e1
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
This file contains detailed instructions for customizing your Logtalk
|
This file contains detailed instructions for customizing your Logtalk
|
||||||
@ -31,14 +31,14 @@ operating-system requirements. For details, see the "libpaths/NOTES.txt" file.
|
|||||||
|
|
||||||
Logtalk interfaces with a specific Prolog compiler via a configuration file
|
Logtalk interfaces with a specific Prolog compiler via a configuration file
|
||||||
that can be found on the "configs" folder inside your Logtalk user folder.
|
that can be found on the "configs" folder inside your Logtalk user folder.
|
||||||
These configuration files can be customized by changing the values of the
|
These configuration files can be customized by changing the default values
|
||||||
default flags that are used by Logtalk when compiling source files. For a
|
of the flags that are used by Logtalk when compiling source files. For a
|
||||||
full description of these default flags, consult the "Running and debugging
|
full description of these flags, consult the "Running and debugging Logtalk
|
||||||
Logtalk programs" section of the User Manual. Some of the default flags that
|
programs" section of the User Manual. Some of the default flags that you may
|
||||||
you may want to change include: "smart_compilation", "startup_message",
|
want to change include: "smart_compilation", "startup_message", "altdirs",
|
||||||
"portability", "underscore_vars", "altdirs", and the set of documentation-
|
"tmpdir", "portability", "underscore_vars", and the documentation-related
|
||||||
related flags ("xmldocs", "xslfile", "xmlspec", and "xmlsref"). Be sure to
|
flags ("xmldocs", "xmldir", "xslfile", "xmlspec", and "xmlsref"). Be sure
|
||||||
read the "configs/NOTES.txt" file for Prolog specific notes; some Prolog
|
to read the "configs/NOTES.txt" file for Prolog specific notes; some Prolog
|
||||||
compilers do not support the whole range of compilation flag values.
|
compilers do not support the whole range of compilation flag values.
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,17 +1,18 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
The recommended way of installing Logtalk is to use, whenever possible, one
|
The recommended way of installing Logtalk is to use, whenever possible, one
|
||||||
of the provided installers. This file contains detailed instructions for
|
of the provided installers. This file contains detailed instructions for
|
||||||
manual installation and configuration of Logtalk. You should also consult
|
manual installation and configuration of Logtalk. You should also consult
|
||||||
the "scripts/NOTES.txt" file for a description of a set of shell scripts
|
the "scripts/NOTES.txt" and "integration/NOTES.txt" files for a description
|
||||||
that might be used for Logtalk installation on some operating-systems and
|
of a set of shell scripts that might be used for Logtalk installation on
|
||||||
for easy Logtalk integration with popular Prolog compilers.
|
some operating-systems and for easy Logtalk integration with popular Prolog
|
||||||
|
compilers.
|
||||||
|
|
||||||
Note that the broad compatibility of Logtalk, both with Prolog compilers and
|
Note that the broad compatibility of Logtalk, both with Prolog compilers and
|
||||||
operating-systems, together with all the possible user scenarios, means that
|
operating-systems, together with all the possible user scenarios, means that
|
||||||
@ -47,21 +48,13 @@ directory can be copied to any location that its accessible by all the users
|
|||||||
for some reason, not feasible or desired).
|
for some reason, not feasible or desired).
|
||||||
|
|
||||||
The "scripts" sub-directory contains shell scripts for easy installation of
|
The "scripts" sub-directory contains shell scripts for easy installation of
|
||||||
Logtalk on MacOS X, Windows, Linux, and Unix-like (POSIX) operating systems
|
Logtalk on POSIX operating systems (see the "scripts/NOTES.txt" file for
|
||||||
(see the "scripts/NOTES.txt" file for details).
|
details). Starting from the Logtalk directory, type:
|
||||||
|
|
||||||
>> POSIX systems installation (starting from the Logtalk directory):
|
|
||||||
|
|
||||||
% cd scripts
|
% cd scripts
|
||||||
% sudo ./lgt_install.sh
|
% sudo ./install.sh
|
||||||
|
|
||||||
>> Windows installation (starting from the Logtalk directory):
|
This installation script makes all files read-only for non-admin users in
|
||||||
|
|
||||||
C:\logtalk> cd scripts
|
|
||||||
C:\logtalk> cscript lgt_install.js
|
|
||||||
RESTART
|
|
||||||
|
|
||||||
The "scripts/lgt_install.*" installation scripts make all files read-only in
|
|
||||||
order to avoid user tempering. This is a convenient setup for computer labs,
|
order to avoid user tempering. This is a convenient setup for computer labs,
|
||||||
given that making directories world-writable is a security risk.
|
given that making directories world-writable is a security risk.
|
||||||
|
|
||||||
@ -69,10 +62,10 @@ given that making directories world-writable is a security risk.
|
|||||||
2. SETTING LOGTALK ENVIRONMENT VARIABLES
|
2. SETTING LOGTALK ENVIRONMENT VARIABLES
|
||||||
|
|
||||||
You need to set two environment variables, LOGTALKHOME and LOGTALKUSER. The
|
You need to set two environment variables, LOGTALKHOME and LOGTALKUSER. The
|
||||||
environment variable LOGTALKHOME should point to the Logtalk installation
|
environment variable LOGTALKHOME should be set to the Logtalk installation
|
||||||
directory. The environment variable LOGTALKUSER should point to a directory
|
directory. The environment variable LOGTALKUSER should point to a directory
|
||||||
in your home directory where you want to store the user-specific Logtalk files
|
in your home directory where you want to store the user-specific Logtalk files
|
||||||
(for example, ~/logtalk). Both environment variables may be set for all users
|
(by default, ~/logtalk). Both environment variables may be set for all users
|
||||||
by a user with administration privileges. The two environment variables can
|
by a user with administration privileges. The two environment variables can
|
||||||
have the same value if you are the only Logtalk user on your computer and if
|
have the same value if you are the only Logtalk user on your computer and if
|
||||||
you have full permissions to the Logtalk installation directory. In addition,
|
you have full permissions to the Logtalk installation directory. In addition,
|
||||||
@ -103,13 +96,13 @@ Logtalk.
|
|||||||
>> Windows systems:
|
>> Windows systems:
|
||||||
|
|
||||||
In Windows 2000/XP, environment variables are defined using the System
|
In Windows 2000/XP, environment variables are defined using the System
|
||||||
properties control panel. If you are a system administrator, the "scripts/
|
properties control panel. If you are a system administrator, the Windows
|
||||||
lgt_install.js" JScript install script sets the LOGTALKHOME environment
|
GUI installer sets the LOGTALKHOME environment variable for all users and
|
||||||
variable for all users and also sets the LOGTALKUSER environment variable
|
also sets the LOGTALKUSER environment variable for the administrator user
|
||||||
for the administrator user running the script.
|
running the installer.
|
||||||
|
|
||||||
|
|
||||||
3. COPYING THE LOGTALK USER-MODIFIABLE FILES TO USERS HOME DIRECTORIES
|
3. END-USER SETUP (COPYING LOGTALK USER-MODIFIABLE FILES TO USERS HOME DIRS)
|
||||||
|
|
||||||
If you installed Logtalk on your home directory, then skip this step if you
|
If you installed Logtalk on your home directory, then skip this step if you
|
||||||
have set both Logtalk environment variables (LOGTALKHOME and LOGTALKUSER) to
|
have set both Logtalk environment variables (LOGTALKHOME and LOGTALKUSER) to
|
||||||
@ -131,36 +124,27 @@ in the "scripts/NOTES.txt" file).
|
|||||||
|
|
||||||
The local copies made by the "cplgtdirs" scripts have both read and write
|
The local copies made by the "cplgtdirs" scripts have both read and write
|
||||||
permissions for the user running the script. When used with one of the
|
permissions for the user running the script. When used with one of the
|
||||||
Prolog compilers for which an integration script is provided on the "scripts"
|
back-end Prolog compilers for which an integration script is provided on
|
||||||
directory, this setup as the advantage of allowing each end-user to
|
the "integration" directory, this setup as the advantage of allowing each
|
||||||
independently customize default compilation options and library paths.
|
end-user to independently customize default compilation options and library
|
||||||
|
paths.
|
||||||
|
|
||||||
|
Windows (non-admin) users may also use the Logtalk GUI installer to setup
|
||||||
|
their Logtalk user folder and the LOGTALKUSER environment variable.
|
||||||
|
|
||||||
|
|
||||||
4. CREATING NEW PROLOG TOP-LEVELS FOR AUTOMATIC LOADING OF LOGTALK
|
4. CREATING NEW PROLOG TOP-LEVELS FOR AUTOMATIC LOADING OF LOGTALK
|
||||||
|
|
||||||
Most Prolog compilers allows the user to define an initialization file that
|
Most Prolog compilers allows the user to define an initialization file
|
||||||
is automatically consulted at startup. This initialization file may contain
|
that is automatically consulted at startup. These initialization files
|
||||||
directives for loading other files, such as the Logtalk configuration file
|
may contain directives for loading other files, such as the Logtalk
|
||||||
and the Logtalk compiler. The "$LOGTALKHOME/scripts" sub-directory contains
|
configuration file and the Logtalk compiler. The "$LOGTALKHOME/integration"
|
||||||
several scripts (named "make_*lgt.*") for automating the creation of these
|
sub-directory contains several pre-made scripts (named "*lgt.*") for running
|
||||||
initialization files for some Prolog compilers. In addition, be sure to read
|
Logtalk with selected back-end Prolog compilers. You can use these scripts
|
||||||
the "configs/NOTES.txt" file notes on the Prolog compilers that you intend to
|
as examples when creating initialization files for other Prolog compilers.
|
||||||
use. There are also "makeall_lgt.*" scripts that try to run all the individual
|
Be sure to read the "configs/NOTES.txt" file notes on the Prolog compilers
|
||||||
"make_*lgt.*" scripts:
|
that you intend to use. You may also simply follow the steps described in
|
||||||
|
the "QUICK_START.txt" file.
|
||||||
>> POSIX systems:
|
|
||||||
|
|
||||||
% cd $LOGTALKHOME/scripts
|
|
||||||
% sudo ./makeall_lgt.sh
|
|
||||||
|
|
||||||
>> Windows:
|
|
||||||
|
|
||||||
C:\> cd %LOGTALKHOME%\scripts
|
|
||||||
C:\> cscript makeall_lgt.js
|
|
||||||
|
|
||||||
This assumes that your favorite Prolog compilers are supported by the
|
|
||||||
"make_*lgt.*" scripts. If that is not the case, don't worry: just follow
|
|
||||||
the steps described in the "QUICK_START.txt" file.
|
|
||||||
|
|
||||||
|
|
||||||
5. CUSTOMIZING LOGTALK
|
5. CUSTOMIZING LOGTALK
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
Quick start
|
Quick start
|
||||||
@ -22,6 +22,26 @@ favorite Prolog compiler. In this case, skip the instructions below
|
|||||||
for starting up Logtalk and go straight to the instructions on running
|
for starting up Logtalk and go straight to the instructions on running
|
||||||
the examples.
|
the examples.
|
||||||
|
|
||||||
|
On POSIX operating-systems, the following shell scripts are installed
|
||||||
|
by default for running Logtalk with selected back-end Prolog compilers
|
||||||
|
(which must be properly installed for running the scripts!):
|
||||||
|
|
||||||
|
B-Prolog: bplgt (first run must use sudo)
|
||||||
|
CIAO: ciaolgt (first run must use sudo)
|
||||||
|
CxProlog: cxlgt
|
||||||
|
ECLiPSe: eclipselgt
|
||||||
|
GNU Prolog: gplgt
|
||||||
|
K-Prolog: plclgt
|
||||||
|
SICStus Prolog: sicstuslgt
|
||||||
|
SWI-Prolog: swilgt
|
||||||
|
XSB: xsblgt (first run must use sudo)
|
||||||
|
YAP: yaplgt
|
||||||
|
|
||||||
|
On Windows systems, shortcuts for running Logtalk with selected back-end
|
||||||
|
Prolog compilers are created on the "Start Menu/Programs/Logtalk" menu.
|
||||||
|
If you get an unexpected failure when using one of the Prolog integration
|
||||||
|
scripts, consult the "configs/NOTES.txt" file for compatibility notes.
|
||||||
|
|
||||||
2. Open the "manuals/index.html" file with a web browser.
|
2. Open the "manuals/index.html" file with a web browser.
|
||||||
|
|
||||||
3. Select the "Tutorial" link. This will provide you with a basic
|
3. Select the "Tutorial" link. This will provide you with a basic
|
||||||
@ -33,7 +53,8 @@ programs" links. This will provide you with a basic understanding of
|
|||||||
how to start Logtalk as well as how to compile and load Logtalk code.
|
how to start Logtalk as well as how to compile and load Logtalk code.
|
||||||
|
|
||||||
|
|
||||||
Assuming that Logtalk supports your Prolog compiler:
|
In case a manual installation is necessary, and assuming that Logtalk
|
||||||
|
supports your Prolog compiler, apply the following steps:
|
||||||
|
|
||||||
1. Read the "NOTES.txt" file in the "configs" sub-directory to check if
|
1. Read the "NOTES.txt" file in the "configs" sub-directory to check if
|
||||||
any patch or workaround is needed for your compiler.
|
any patch or workaround is needed for your compiler.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
CONTENTS
|
CONTENTS
|
||||||
@ -43,7 +43,8 @@ about Logtalk.
|
|||||||
3. REGISTRATION
|
3. REGISTRATION
|
||||||
|
|
||||||
To register as a Logtalk user either use the registration form found at
|
To register as a Logtalk user either use the registration form found at
|
||||||
the Logtalk web site or send an email message to:
|
the Logtalk web site, http://logtalk.org/regform.html, or send an email
|
||||||
|
message to:
|
||||||
|
|
||||||
registration@logtalk.org
|
registration@logtalk.org
|
||||||
|
|
||||||
@ -56,25 +57,7 @@ platforms (mac, pc, unix,...) (optional)
|
|||||||
|
|
||||||
4. SUPPORT
|
4. SUPPORT
|
||||||
|
|
||||||
Logtalk support is available for registered users via email to
|
For support options, please consult the page http://logtalk.org/support.html.
|
||||||
support@logtalk.org.
|
|
||||||
|
|
||||||
At the URL http://logtalk.org/bugs.html you can find a list of known
|
|
||||||
problems and download bug fixes. The latest news about Logtalk are
|
|
||||||
available at the URL http://logtalk.org/news.html.
|
|
||||||
|
|
||||||
There is also a mailing list, "logtalk", used to announce new releases and
|
|
||||||
bug fixes and for discussion between registered Logtalk users, that you
|
|
||||||
may subscribe. For instructions on how to subscribe, please visit the web
|
|
||||||
page:
|
|
||||||
|
|
||||||
http://lserv.ci.uc.pt/mailman/listinfo/logtalk
|
|
||||||
|
|
||||||
or send an email message to:
|
|
||||||
|
|
||||||
logtalk-request@lserv.ci.uc.pt
|
|
||||||
|
|
||||||
with just the word "help" in the subject or in the message body.
|
|
||||||
|
|
||||||
|
|
||||||
5. INSTALLATION
|
5. INSTALLATION
|
||||||
|
@ -1,18 +1,185 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
RELEASE NOTES
|
RELEASE NOTES
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
|
||||||
|
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
|
2.29.5 - March 28, 2007
|
||||||
|
|
||||||
Added a new built-in predicate, "threaded/1", for proving each goal in
|
Added a new built-in predicate, threaded/1, for proving each goal in
|
||||||
a conjunction in its own thread, simplifying common multi-threading
|
a conjunction in its own thread, simplifying common multi-threading
|
||||||
tasks that previously required sequences of calls to the built-in
|
tasks that previously required sequences of calls to the built-in
|
||||||
predicates threaded_call/1 and threaded_exit/1.
|
predicates threaded_call/1 and threaded_exit/1.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
Upgrading from Logtalk 1.x
|
Upgrading from Logtalk 1.x
|
||||||
@ -158,3 +158,9 @@ Logtalk 2.29.2 removes the built-in predicate threaded_discard/1.
|
|||||||
Logtalk 2.29.5 adds a new compiler option, "reload", whose default value is
|
Logtalk 2.29.5 adds a new compiler option, "reload", whose default value is
|
||||||
defined in the config files. This makes previous config files incompatible
|
defined in the config files. This makes previous config files incompatible
|
||||||
with this new Logtalk version.
|
with this new Logtalk version.
|
||||||
|
|
||||||
|
Logtalk 2.30.0 adds two new compiler options, "xmldir" and "tmpdir", allowing
|
||||||
|
a per-project definition of directories for storing XML documenting files and
|
||||||
|
for storing intermediate compilation files (e.g. Prolog files). Removed from
|
||||||
|
the config files the predicate '$lgt_alt_directory'/2. Older config files are
|
||||||
|
incompatible with this new Logtalk version.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
This folder contains code contributions from Logtalk users. Here is
|
This folder contains code contributions from Logtalk users. Here is
|
||||||
a short description of each included contribution:
|
a short description of each included contribution:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
This folder contains a Logtalk version of John Fletcher's Prolog XML
|
This folder contains a Logtalk version of John Fletcher's Prolog XML
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the necessary library support files (if not
|
% start by loading the necessary library support files (if not
|
||||||
|
@ -1,13 +1,3 @@
|
|||||||
|
|
||||||
:- initialization(
|
:- initialization(
|
||||||
logtalk_load(xml)).
|
logtalk_load(xml)).
|
||||||
|
|
||||||
/*
|
|
||||||
If you intend to use the FOP XSL:FO processor for generating PDF documenting
|
|
||||||
files, comment the directive above and uncomment the directive below
|
|
||||||
|
|
||||||
:- initialization(
|
|
||||||
logtalk_load(
|
|
||||||
xml,
|
|
||||||
[xmlsref(standalone)])).
|
|
||||||
*/
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
This folder contains several examples of Logtalk programs. A brief
|
This folder contains several examples of Logtalk programs. A brief
|
||||||
@ -194,6 +194,9 @@ symdiff
|
|||||||
example of using parametric objects to implement symbolic
|
example of using parametric objects to implement symbolic
|
||||||
expression differentiation and simplification
|
expression differentiation and simplification
|
||||||
|
|
||||||
|
tabling
|
||||||
|
simple example of using tabling directives within objects
|
||||||
|
|
||||||
threads
|
threads
|
||||||
several simple examples of multi-threading programming
|
several simple examples of multi-threading programming
|
||||||
(requires Logtalk to be run with either YAP or SWI-Prolog)
|
(requires Logtalk to be run with either YAP or SWI-Prolog)
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the "assignvars" category and the example:
|
% start by loading the "assignvars" category and the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
@ -13,10 +13,20 @@ sending performance with direct predicates calls in plain Prolog.
|
|||||||
These benchmarks may also be used for comparing Logtalk message sending
|
These benchmarks may also be used for comparing Logtalk message sending
|
||||||
performance across Prolog compilers.
|
performance across Prolog compilers.
|
||||||
|
|
||||||
This example is made of five source files:
|
This example is made of four loader files and five source files:
|
||||||
|
|
||||||
benchmark.lgt
|
loader_events.lgt
|
||||||
contains the benchmark predicates
|
loads all source files with event support turned on
|
||||||
|
loader_no_events.lgt
|
||||||
|
loads all source files with event support turned off
|
||||||
|
loader_static_binding.lgt
|
||||||
|
loads all source files with event support turned off and using
|
||||||
|
static binding
|
||||||
|
loader.lgt
|
||||||
|
the same as the loader_static_binding.lgt file
|
||||||
|
|
||||||
|
benchmarks.lgt
|
||||||
|
contains the benchmark goals and testing predicates
|
||||||
plain.lgt
|
plain.lgt
|
||||||
contains a definition for a list length predicate and a predicate
|
contains a definition for a list length predicate and a predicate
|
||||||
for testing performance of the built-in predicates assertz/1 and
|
for testing performance of the built-in predicates assertz/1 and
|
||||||
@ -24,37 +34,50 @@ This example is made of five source files:
|
|||||||
module.pl (not loaded by default; see below)
|
module.pl (not loaded by default; see below)
|
||||||
contains the same definition of a list length predicate
|
contains the same definition of a list length predicate
|
||||||
encapsulated in a module
|
encapsulated in a module
|
||||||
object.lgt
|
objects.lgt
|
||||||
contains the same definition of a list length predicate
|
contains an object encapsulating the same definition of a list
|
||||||
encapsulated in an object
|
length predicate, plus two descendant objects to simulate a small
|
||||||
|
hierarchy (used for testing calls to imported category predicates)
|
||||||
database.lgt
|
database.lgt
|
||||||
contains predicates for testing the performance of the built-in
|
contains predicates for testing the performance of the built-in
|
||||||
database methods assertz/1 and retract/1
|
database methods assertz/1 and retract/1
|
||||||
|
category.lgt
|
||||||
|
contains a single predicate used when comparing performance of
|
||||||
|
calls to imported category predicates using direct calls and using
|
||||||
|
messages to "self"
|
||||||
|
|
||||||
You may have noticed above that the benchmark predicates and the predicates
|
You may have noticed above that the benchmark predicates and the predicates
|
||||||
for plain Prolog testing are both encapsulated in Logtalk source files. The
|
for plain Prolog testing are both encapsulated in Logtalk source files. The
|
||||||
Logtalk compiler just copies the plain Prolog code to the generated Prolog
|
Logtalk compiler just copies the plain Prolog code to the generated Prolog
|
||||||
files. The reason for using the .lgt extension for these files is just to
|
files. The reason for using the .lgt extension for these files is simply to
|
||||||
make it possible to load all the example code using a single call to the
|
make it possible to load all the example code using calls to the predicates
|
||||||
logtalk_load/1 predicate.
|
logtalk_load/1-2.
|
||||||
|
|
||||||
By default, the benchmark tests on the SCRIPT file use a list of 30 elements
|
By default, the benchmark tests on the SCRIPT file use a list of 20 elements
|
||||||
as an argument to the list length predicates. Increasing the list length
|
as an argument to the list length predicates. When dynamic binding is used,
|
||||||
leads to decreasing performance differences between plain Prolog and Logtalk
|
increasing the list length leads to decreasing performance differences between
|
||||||
as the list length computation time far outweighs the overhead of the message
|
plain Prolog and Logtalk as the list length computation time far outweighs the
|
||||||
sending mechanism. Likewise, decreasing the list length leads to increasing
|
overhead of the message sending mechanism. Likewise, decreasing the list
|
||||||
performance differences between plain Prolog and Logtalk (up to the point you
|
length leads to increasing performance differences between plain Prolog and
|
||||||
will be measuring the Logtalk message sending mechanism overhead compared to
|
Logtalk (up to the point you will be measuring the Logtalk message sending
|
||||||
plain Prolog predicate calls). In real-life applications, only testing can
|
mechanism overhead compared to plain Prolog predicate calls). In real-life
|
||||||
give you a balanced view on the trade-offs between plain Prolog performance
|
applications, only testing can give you a balanced view on the trade-offs
|
||||||
and Logtalk programming features.
|
between plain Prolog performance and Logtalk programming features.
|
||||||
|
|
||||||
By default, the loader.lgt file used to load the example code does not load
|
By default, the loader files used to load the example code do not load the
|
||||||
the module.pl file. Edit this file if your Prolog compiler supports a module
|
module.pl file. Edit these files if your Prolog compiler supports a module
|
||||||
system and you want to run some comparative performance tests between plain
|
system and you want to run some comparative performance tests between plain
|
||||||
Prolog, Prolog modules, and Logtalk objects. Note that you may need to edit
|
Prolog, Prolog modules, and Logtalk objects. Note that you may need to edit
|
||||||
the code on the module.pl file to make any necessary compatibility changes
|
the code on the module.pl file to make any necessary compatibility changes
|
||||||
for your Prolog compiler module system. For most Prolog module systems, the
|
for your Prolog compiler module system. For most Prolog module systems, the
|
||||||
performance of module calls is close or even identical to the performance of
|
performance of module calls is close or even identical to the performance of
|
||||||
plain Prolog calls, specially when using imported predicates as opposed to
|
plain Prolog calls when using imported predicates and implicit qualification.
|
||||||
using explicit module qualification.
|
When using explicit module qualification, performance can be significantly
|
||||||
|
worse.
|
||||||
|
|
||||||
|
When static binding is used, messages to objects are, whenever possible,
|
||||||
|
translated to direct predicate calls. Thus performance should be about the
|
||||||
|
same as in plain Prolog predicate calls. However, due to the overhead of
|
||||||
|
three extra arguments per object predicate (used for passing the execution
|
||||||
|
context), the performance of Logtalk optimized calls might be slightly
|
||||||
|
worse than the equivalent plain Prolog predicate calls.
|
||||||
|
@ -1,136 +1,69 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example by choosing one of the loader files
|
||||||
|
% (you must quit and restart Logtalk for each testing scenario):
|
||||||
|
|
||||||
| ?- logtalk_load(benchmarks(loader)).
|
|
||||||
|
% run benchmarks with event support turned on:
|
||||||
|
|
||||||
|
| ?- logtalk_load(benchmarks(loader_events)).
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|
||||||
% run the default set of benchmark tests:
|
% run benchmarks with event support turned off:
|
||||||
|
|
||||||
| ?- benchmarks.
|
| ?- logtalk_load(benchmarks(loader_no_events)).
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|
||||||
% or run specific benchmark tests individually as exemplified next...
|
% run benchmarks with event support turned off and using static binding:
|
||||||
|
|
||||||
|
| ?- logtalk_load(benchmarks(loader_static_binding)).
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
% call the predicate my_length/0 defined in the Prolog database:
|
% list all the benchmark tests:
|
||||||
|
|
||||||
| ?- generate_list(30, List), benchmark(my_length(List, _)).
|
| ?- benchmarks::benchmark(Id, Goal).
|
||||||
|
|
||||||
|
Goal = my_length([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],_)
|
||||||
|
Id = s1 ? ;
|
||||||
|
|
||||||
|
Goal = object::length([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],_)
|
||||||
|
Id = s2 ? ;
|
||||||
|
|
||||||
|
Goal = create_object(xpto,[],[],[]),abolish_object(xpto)
|
||||||
|
Id = d1 ? ;
|
||||||
|
|
||||||
|
Goal = plain_dyndb
|
||||||
|
Id = d2 ? ;
|
||||||
|
|
||||||
|
Goal = database::this_dyndb
|
||||||
|
Id = d3 ? ;
|
||||||
|
|
||||||
|
Goal = database::self_dyndb
|
||||||
|
Id = d4 ? ;
|
||||||
|
|
||||||
|
Goal = database::obj_dyndb
|
||||||
|
Id = d5
|
||||||
|
|
||||||
Number of repetitions: 100000
|
|
||||||
Loop time: 0.03 seconds
|
|
||||||
Goal time: 0.39 seconds
|
|
||||||
Average time per call: 3.6e-06 seconds
|
|
||||||
Number of calls per second: 277777.777777778
|
|
||||||
List = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29] ?
|
|
||||||
yes
|
yes
|
||||||
|
|
||||||
|
|
||||||
% call the predicate object::length/2 from the top-level:
|
% run all the benchmark tests the default number of times:
|
||||||
|
|
||||||
| ?- generate_list(30, List), benchmark(object::length(List, _)).
|
| ?- benchmarks::run.
|
||||||
|
...
|
||||||
Number of repetitions: 100000
|
|
||||||
Loop time: 0.04 seconds
|
|
||||||
Goal time: 0.79 seconds
|
|
||||||
Average time per call: 7.5e-06 seconds
|
|
||||||
Number of calls per second: 133333.333333333
|
|
||||||
List = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29] ?
|
|
||||||
yes
|
|
||||||
|
|
||||||
|
|
||||||
% compiled call of the predicate object::length/2 (simulates message sending
|
% or run specific benchmark tests individually, for example:
|
||||||
% from a compiled object to another object; thus with no top-level overhead):
|
|
||||||
|
|
||||||
| ?- generate_list(30, List), benchmark('$lgt_send_to_object_nv'(object, length(List, _), user)).
|
|
||||||
|
|
||||||
Number of repetitions: 100000
|
|
||||||
Loop time: 0.0299999999999998 seconds
|
|
||||||
Goal time: 0.5 seconds
|
|
||||||
Average time per call: 4.70000000000001e-06 seconds
|
|
||||||
Number of calls per second: 212765.957446808
|
|
||||||
List = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29] ?
|
|
||||||
yes
|
|
||||||
|
|
||||||
|
|
||||||
% compiled call of the predicate object::length/2 (simulates message sending
|
| ?- benchmarks::run(s1, 1000000).
|
||||||
% from a compiled object to another object with event-driven programming
|
...
|
||||||
% support switched off and with no top-level overhead):
|
|
||||||
|
|
||||||
| ?- generate_list(30, List), benchmark('$lgt_send_to_object_ne_nv'(object, length(List, _), user)).
|
|
||||||
|
|
||||||
Number of repetitions: 100000
|
|
||||||
Loop time: 0.0300000000000002 seconds
|
|
||||||
Goal time: 0.46 seconds
|
|
||||||
Average time per call: 4.3e-06 seconds
|
|
||||||
Number of calls per second: 232558.139534884
|
|
||||||
List = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29] ?
|
|
||||||
yes
|
|
||||||
|
|
||||||
|
|
||||||
% create and abolish an elementary dynamic object:
|
|
||||||
|
|
||||||
| ?- benchmark((create_object(xpto, [], [], []), abolish_object(xpto))).
|
|
||||||
|
|
||||||
Number of repetitions: 100000
|
|
||||||
Loop time: 0.0300000000000011 seconds
|
|
||||||
Goal time: 51.59 seconds
|
|
||||||
Average time per call: 0.0005156 seconds
|
|
||||||
Number of calls per second: 1939.48797517455
|
|
||||||
yes
|
|
||||||
|
|
||||||
|
|
||||||
% test assertz/1 and retract/1 performance in plain Prolog:
|
|
||||||
|
|
||||||
| ?- benchmark(db_test_plain).
|
|
||||||
|
|
||||||
Number of repetitions: 100000
|
|
||||||
Loop time: 0.0299999999999727 seconds
|
|
||||||
Goal time: 51.07 seconds
|
|
||||||
Average time per call: 0.0005104 seconds
|
|
||||||
Number of calls per second: 1959.24764890282
|
|
||||||
yes
|
|
||||||
|
|
||||||
|
|
||||||
% test assertz/1 and retract/1 performance on "this" database:
|
|
||||||
|
|
||||||
| ?- benchmark('$lgt_send_to_object_ne_nv'(database, db_test_this, user)).
|
|
||||||
|
|
||||||
Number of repetitions: 100000
|
|
||||||
Loop time: 0.0299999999999727 seconds
|
|
||||||
Goal time: 63.37 seconds
|
|
||||||
Average time per call: 0.0006334 seconds
|
|
||||||
Number of calls per second: 1578.78118092832
|
|
||||||
yes
|
|
||||||
|
|
||||||
|
|
||||||
% test assertz/1 and retract/1 performance on "self" database:
|
|
||||||
|
|
||||||
| ?- benchmark('$lgt_send_to_object_ne_nv'(database, db_test_self, user)).
|
|
||||||
|
|
||||||
Number of repetitions: 100000
|
|
||||||
Loop time: 0.0299999999999727 seconds
|
|
||||||
Goal time: 71.3499999999999 seconds
|
|
||||||
Average time per call: 0.000713199999999999 seconds
|
|
||||||
Number of calls per second: 1402.13123948402
|
|
||||||
yes
|
|
||||||
|
|
||||||
|
|
||||||
% test assertz/1 and retract/1 performance on another object database (using ::/2):
|
|
||||||
|
|
||||||
| ?- benchmark('$lgt_send_to_object_ne_nv'(database, db_test_obj, user)).
|
|
||||||
|
|
||||||
Number of repetitions: 100000
|
|
||||||
Loop time: 0.0299999999999727 seconds
|
|
||||||
Goal time: 68.97 seconds
|
|
||||||
Average time per call: 0.0006894 seconds
|
|
||||||
Number of calls per second: 1450.53669857847
|
|
||||||
yes
|
|
||||||
|
155
Logtalk/examples/benchmarks/benchmarks.lgt
Normal file
155
Logtalk/examples/benchmarks/benchmarks.lgt
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
|
||||||
|
:- object(benchmarks).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
version is 3.0,
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
date is 2007/06/11,
|
||||||
|
comment is 'Benchmark utility predicates and standard set of benchmarks.']).
|
||||||
|
|
||||||
|
:- public(run/0).
|
||||||
|
:- mode(run, one).
|
||||||
|
:- info(run/0, [
|
||||||
|
comment is 'Runs all benchmarks the default number of times.']).
|
||||||
|
|
||||||
|
:- public(run/1).
|
||||||
|
:- mode(run(+integer), one).
|
||||||
|
:- info(run/1, [
|
||||||
|
comment is 'Runs all benchmarks the specified number of times.',
|
||||||
|
argnames is ['N']]).
|
||||||
|
|
||||||
|
:- public(run/2).
|
||||||
|
:- mode(run(+atom, +integer), one).
|
||||||
|
:- info(run/2, [
|
||||||
|
comment is 'Runs a specific benchmark the specified number of times.',
|
||||||
|
argnames is ['Id', 'N']]).
|
||||||
|
|
||||||
|
:- public(benchmark/2).
|
||||||
|
:- mode(move(?atom, -callable), zero_or_more).
|
||||||
|
:- info(move/2, [
|
||||||
|
comment is 'Table of benchmark identifiers and benchmark goals.',
|
||||||
|
argnames is ['Id', 'Goal']]).
|
||||||
|
|
||||||
|
% run all benchmarks the default number of times:
|
||||||
|
run :-
|
||||||
|
run(1000000).
|
||||||
|
|
||||||
|
% run all benchmark tests N times:
|
||||||
|
run(N) :-
|
||||||
|
benchmark(Id, Goal),
|
||||||
|
run(Id, N, Looptime, Goaltime, Average, Speed),
|
||||||
|
report(Id, Goal, N, Looptime, Goaltime, Average, Speed),
|
||||||
|
fail.
|
||||||
|
run(_).
|
||||||
|
|
||||||
|
% run a specific benchmark test:
|
||||||
|
run(Id, N) :-
|
||||||
|
benchmark(Id, Goal),
|
||||||
|
run(Id, N, Looptime, Goaltime, Average, Speed),
|
||||||
|
report(Id, Goal, N, Looptime, Goaltime, Average, Speed).
|
||||||
|
|
||||||
|
run(Id, N, Looptime, Goaltime, Average, Speed) :-
|
||||||
|
{'$lgt_cpu_time'(Seconds1)}, % defined in the config files
|
||||||
|
do_benchmark(empty_loop, N),
|
||||||
|
{'$lgt_cpu_time'(Seconds2)},
|
||||||
|
Looptime is Seconds2 - Seconds1,
|
||||||
|
{'$lgt_cpu_time'(Seconds3)},
|
||||||
|
do_benchmark(Id, N),
|
||||||
|
{'$lgt_cpu_time'(Seconds4)},
|
||||||
|
Goaltime is Seconds4 - Seconds3,
|
||||||
|
Average is (Goaltime - Looptime)/N,
|
||||||
|
Speed is 1.0/Average.
|
||||||
|
|
||||||
|
report(Id, Goal, N, Looptime, Goaltime, Average, Speed) :-
|
||||||
|
write(Id), write(': '),
|
||||||
|
writeq(Goal), nl,
|
||||||
|
write('Number of repetitions: '), write(N), nl,
|
||||||
|
write('Loop time: '), write(Looptime), nl,
|
||||||
|
write('Goal time: '), write(Goaltime), nl,
|
||||||
|
write('Average time per call: '), write(Average), nl,
|
||||||
|
write('Number of calls per second: '), write(Speed), nl,
|
||||||
|
nl.
|
||||||
|
|
||||||
|
% some benchmark tests for static code:
|
||||||
|
benchmark(s1, my_length(List, _)) :-
|
||||||
|
{generate_list(20, List)}.
|
||||||
|
benchmark(s2, object::length(List, _)) :-
|
||||||
|
{generate_list(20, List)}.
|
||||||
|
|
||||||
|
% some benchmark tests for category predicate calls:
|
||||||
|
benchmark(c1, leaf::ctg_direct).
|
||||||
|
benchmark(c2, leaf::ctg_self).
|
||||||
|
|
||||||
|
% some benchmark tests for dynamic code:
|
||||||
|
benchmark(d1, (create_object(xpto, [], [], []), abolish_object(xpto))).
|
||||||
|
benchmark(d2, plain_dyndb(_)).
|
||||||
|
benchmark(d3, database::this_dyndb(_)).
|
||||||
|
benchmark(d4, database::self_dyndb(_)).
|
||||||
|
benchmark(d5, database::obj_dyndb(_)).
|
||||||
|
|
||||||
|
% repeat a goal N times without using call/1 and using a failure-driven loop to
|
||||||
|
% avoid the interference of Prolog compiler memory management mechanism (such as
|
||||||
|
% garbage collection) on the results
|
||||||
|
do_benchmark(empty_loop, N) :-
|
||||||
|
{my_repeat(N)},
|
||||||
|
fail.
|
||||||
|
do_benchmark(empty_loop, _).
|
||||||
|
|
||||||
|
do_benchmark(s1, N) :-
|
||||||
|
{generate_list(20, List)},
|
||||||
|
{my_repeat(N)},
|
||||||
|
{my_length(List, _)},
|
||||||
|
fail.
|
||||||
|
do_benchmark(s1, _).
|
||||||
|
|
||||||
|
do_benchmark(s2, N) :-
|
||||||
|
{generate_list(20, List)},
|
||||||
|
{my_repeat(N)},
|
||||||
|
object::length(List, _),
|
||||||
|
fail.
|
||||||
|
do_benchmark(s2, _).
|
||||||
|
|
||||||
|
do_benchmark(c1, N) :-
|
||||||
|
{my_repeat(N)},
|
||||||
|
leaf::ctg_direct,
|
||||||
|
fail.
|
||||||
|
do_benchmark(c1, _).
|
||||||
|
|
||||||
|
do_benchmark(c2, N) :-
|
||||||
|
{my_repeat(N)},
|
||||||
|
leaf::ctg_self,
|
||||||
|
fail.
|
||||||
|
do_benchmark(c2, _).
|
||||||
|
|
||||||
|
do_benchmark(d1, N) :-
|
||||||
|
{my_repeat(N)},
|
||||||
|
create_object(xpto, [], [], []),
|
||||||
|
abolish_object(xpto),
|
||||||
|
fail.
|
||||||
|
do_benchmark(d1, _).
|
||||||
|
|
||||||
|
do_benchmark(d2, N) :-
|
||||||
|
{my_repeat(N)},
|
||||||
|
{plain_dyndb(N)},
|
||||||
|
fail.
|
||||||
|
do_benchmark(d2, _).
|
||||||
|
|
||||||
|
do_benchmark(d3, N) :-
|
||||||
|
{my_repeat(N)},
|
||||||
|
database::this_dyndb(N),
|
||||||
|
fail.
|
||||||
|
do_benchmark(d3, _).
|
||||||
|
|
||||||
|
do_benchmark(d4, N) :-
|
||||||
|
{my_repeat(N)},
|
||||||
|
database::self_dyndb(N),
|
||||||
|
fail.
|
||||||
|
do_benchmark(d4, _).
|
||||||
|
|
||||||
|
do_benchmark(d5, N) :-
|
||||||
|
{my_repeat(N)},
|
||||||
|
database::obj_dyndb(N),
|
||||||
|
fail.
|
||||||
|
do_benchmark(d5, _).
|
||||||
|
|
||||||
|
:- end_object.
|
14
Logtalk/examples/benchmarks/category.lgt
Normal file
14
Logtalk/examples/benchmarks/category.lgt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
:- category(category).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
version is 1.0,
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
date is 2007/06/10,
|
||||||
|
comment is 'Defines a simple predicate for comparing performance of calls from within an object to imported category predicates.']).
|
||||||
|
|
||||||
|
:- public(ctg_pred/0).
|
||||||
|
|
||||||
|
ctg_pred.
|
||||||
|
|
||||||
|
:- end_category.
|
@ -1,38 +1,47 @@
|
|||||||
|
|
||||||
:- object(database).
|
:- object(database).
|
||||||
|
|
||||||
:- public(db_test_this/0, db_test_self/0, db_test_obj/0).
|
:- info([
|
||||||
|
version is 2.0,
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
date is 2007/04/17,
|
||||||
|
comment is 'Dynamic database benchmark utility predicates.']).
|
||||||
|
|
||||||
:- private(pred_this/0, pred_self/0, pred_obj/0).
|
:- public(this_dyndb/1).
|
||||||
:- dynamic(pred_this/0, pred_self/0, pred_obj/0).
|
:- mode(this_dyndb(+nonvar), one).
|
||||||
|
:- info(this_dyndb/1, [
|
||||||
|
comment is 'Asserts and retracts a predicate in "this".',
|
||||||
|
argnames is ['Term']]).
|
||||||
|
|
||||||
db_test_this :-
|
:- public(self_dyndb/1).
|
||||||
{repeat(100)},
|
:- mode(self_dyndb(+nonvar), one).
|
||||||
assertz(pred_this),
|
:- info(self_dyndb/1, [
|
||||||
fail.
|
comment is 'Asserts and retracts a predicate using ::/1.',
|
||||||
db_test_this :-
|
argnames is ['Term']]).
|
||||||
retract(pred_this),
|
|
||||||
fail.
|
|
||||||
db_test_this.
|
|
||||||
|
|
||||||
db_test_self :-
|
:- public(obj_dyndb/1).
|
||||||
{repeat(100)},
|
:- mode(obj_dyndb(+nonvar), one).
|
||||||
::assertz(pred_self),
|
:- info(obj_dyndb/1, [
|
||||||
fail.
|
comment is 'Asserts and retracts a predicate using ::/2.',
|
||||||
db_test_self :-
|
argnames is ['Term']]).
|
||||||
::retract(pred_self),
|
|
||||||
fail.
|
|
||||||
db_test_self.
|
|
||||||
|
|
||||||
db_test_obj :-
|
:- private([pred_this/1, pred_self/1, pred_obj/1]).
|
||||||
|
:- dynamic([pred_this/1, pred_self/1, pred_obj/1]).
|
||||||
|
|
||||||
|
% direct calls to assertz/1 and retract/1:
|
||||||
|
this_dyndb(N) :-
|
||||||
|
assertz(pred_this(N)),
|
||||||
|
retract(pred_this(N)).
|
||||||
|
|
||||||
|
% calls to assertz/1 and retract/1 using ::/1:
|
||||||
|
self_dyndb(N) :-
|
||||||
|
::assertz(pred_self(N)),
|
||||||
|
::retract(pred_self(N)).
|
||||||
|
|
||||||
|
% calls to assertz/1 and retract/1 using ::/2:
|
||||||
|
obj_dyndb(N) :-
|
||||||
this(This),
|
this(This),
|
||||||
{repeat(100)},
|
This::assertz(pred_obj(N)),
|
||||||
This::assertz(pred_obj),
|
This::retract(pred_obj(N)).
|
||||||
fail.
|
|
||||||
db_test_obj :-
|
|
||||||
this(This),
|
|
||||||
This::retract(pred_obj),
|
|
||||||
fail.
|
|
||||||
db_test_obj.
|
|
||||||
|
|
||||||
:- end_object.
|
:- end_object.
|
||||||
|
@ -2,5 +2,7 @@
|
|||||||
% uncomment the next line if your Prolog compiler supports modules
|
% uncomment the next line if your Prolog compiler supports modules
|
||||||
%:- ensure_loaded(module).
|
%:- ensure_loaded(module).
|
||||||
|
|
||||||
:- initialization(
|
:- initialization((
|
||||||
logtalk_load([benchmark, plain, object, database])).
|
logtalk_load([category], [events(off), reload(skip)]),
|
||||||
|
logtalk_load([objects, database], [events(off), reload(skip)]),
|
||||||
|
logtalk_load([plain, benchmarks], [events(off)]))).
|
||||||
|
6
Logtalk/examples/benchmarks/loader_events.lgt
Normal file
6
Logtalk/examples/benchmarks/loader_events.lgt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
% uncomment the next line if your Prolog compiler supports modules
|
||||||
|
%:- ensure_loaded(module).
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load([category, objects, database, plain, benchmarks], [events(on)])).
|
6
Logtalk/examples/benchmarks/loader_no_events.lgt
Normal file
6
Logtalk/examples/benchmarks/loader_no_events.lgt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
% uncomment the next line if your Prolog compiler supports modules
|
||||||
|
%:- ensure_loaded(module).
|
||||||
|
|
||||||
|
:- initialization(
|
||||||
|
logtalk_load([category, objects, database, plain, benchmarks], [events(off)])).
|
8
Logtalk/examples/benchmarks/loader_static_binding.lgt
Normal file
8
Logtalk/examples/benchmarks/loader_static_binding.lgt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
% uncomment the next line if your Prolog compiler supports modules
|
||||||
|
%:- ensure_loaded(module).
|
||||||
|
|
||||||
|
:- initialization((
|
||||||
|
logtalk_load([category], [events(off), reload(skip)]),
|
||||||
|
logtalk_load([objects, database], [events(off), reload(skip)]),
|
||||||
|
logtalk_load([plain, benchmarks], [events(off)]))).
|
@ -6,11 +6,11 @@
|
|||||||
|
|
||||||
|
|
||||||
mod_length(List, Length) :-
|
mod_length(List, Length) :-
|
||||||
integer(Length) ->
|
( integer(Length) ->
|
||||||
Length >= 0,
|
Length >= 0,
|
||||||
mod_make_list(Length, List)
|
mod_make_list(Length, List)
|
||||||
;
|
; mod_length(List, 0, Length)
|
||||||
mod_length(List, 0, Length).
|
).
|
||||||
|
|
||||||
|
|
||||||
mod_make_list(0, []):-
|
mod_make_list(0, []):-
|
||||||
|
60
Logtalk/examples/benchmarks/objects.lgt
Normal file
60
Logtalk/examples/benchmarks/objects.lgt
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
|
||||||
|
:- object(object,
|
||||||
|
imports(category)).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
version is 3.0,
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
date is 2007/06/11,
|
||||||
|
comment is 'Example object for benchmarking library predicate calls and imported category predicate calls.']).
|
||||||
|
|
||||||
|
:- public(length/2).
|
||||||
|
|
||||||
|
length(List, Length) :-
|
||||||
|
length(List, 0, Length).
|
||||||
|
|
||||||
|
length([], Length, Length).
|
||||||
|
length([_| Tail], Acc, Length) :-
|
||||||
|
Acc2 is Acc + 1,
|
||||||
|
length(Tail, Acc2, Length).
|
||||||
|
|
||||||
|
:- public(ctg_self/0).
|
||||||
|
|
||||||
|
% call an imported category predicate by sending a message to self;
|
||||||
|
% performance will depend on the distance between "self" and "this"
|
||||||
|
% (always uses dynamic binding)
|
||||||
|
ctg_self :-
|
||||||
|
::ctg_pred.
|
||||||
|
|
||||||
|
:- public(ctg_direct/0).
|
||||||
|
|
||||||
|
% call an imported category predicate directly by using the :/1 control construct;
|
||||||
|
% (static binding may be used, depending on how the category is compiled)
|
||||||
|
ctg_direct :-
|
||||||
|
:ctg_pred.
|
||||||
|
|
||||||
|
:- end_object.
|
||||||
|
|
||||||
|
|
||||||
|
:- object(descendant,
|
||||||
|
extends(object)).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
version is 1.0,
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
date is 2007/04/17,
|
||||||
|
comment is 'Example object used for simulating a small hierarchy.']).
|
||||||
|
|
||||||
|
:- end_object.
|
||||||
|
|
||||||
|
|
||||||
|
:- object(leaf,
|
||||||
|
extends(descendant)).
|
||||||
|
|
||||||
|
:- info([
|
||||||
|
version is 1.0,
|
||||||
|
author is 'Paulo Moura',
|
||||||
|
date is 2007/04/17,
|
||||||
|
comment is 'Example object used for simulating a small hierarchy.']).
|
||||||
|
|
||||||
|
:- end_object.
|
@ -1,36 +1,42 @@
|
|||||||
|
|
||||||
my_length(List, Length) :-
|
my_length(List, Length) :-
|
||||||
integer(Length) ->
|
|
||||||
Length >= 0,
|
|
||||||
my_make_list(Length, List)
|
|
||||||
;
|
|
||||||
my_length(List, 0, Length).
|
my_length(List, 0, Length).
|
||||||
|
|
||||||
|
|
||||||
my_make_list(0, []):-
|
|
||||||
!.
|
|
||||||
|
|
||||||
my_make_list(N, [_| Tail]):-
|
|
||||||
M is N-1,
|
|
||||||
my_make_list(M, Tail).
|
|
||||||
|
|
||||||
|
|
||||||
my_length([], Length, Length).
|
my_length([], Length, Length).
|
||||||
|
|
||||||
my_length([_| Tail], Acc, Length) :-
|
my_length([_| Tail], Acc, Length) :-
|
||||||
Acc2 is Acc + 1,
|
Acc2 is Acc + 1,
|
||||||
my_length(Tail, Acc2, Length).
|
my_length(Tail, Acc2, Length).
|
||||||
|
|
||||||
|
|
||||||
:- dynamic(pred_plain/0).
|
:- dynamic(pred_plain/1).
|
||||||
|
|
||||||
db_test_plain :-
|
plain_dyndb(N) :-
|
||||||
repeat(100),
|
assertz(pred_plain(N)),
|
||||||
assertz(pred_plain),
|
retract(pred_plain(N)).
|
||||||
fail.
|
|
||||||
|
|
||||||
db_test_plain :-
|
|
||||||
retract(pred_plain),
|
|
||||||
fail.
|
|
||||||
|
|
||||||
db_test_plain.
|
my_between(Lower, _, Lower).
|
||||||
|
my_between(Lower, Upper, Integer) :-
|
||||||
|
Lower < Upper,
|
||||||
|
Next is Lower + 1,
|
||||||
|
my_between(Next, Upper, Integer).
|
||||||
|
|
||||||
|
|
||||||
|
my_repeat(_).
|
||||||
|
my_repeat(N) :-
|
||||||
|
N > 1,
|
||||||
|
N2 is N - 1,
|
||||||
|
my_repeat(N2).
|
||||||
|
|
||||||
|
|
||||||
|
% generate a list containing the first N non-negative integers
|
||||||
|
|
||||||
|
generate_list(N, List) :-
|
||||||
|
generate_list(0, N, List).
|
||||||
|
|
||||||
|
generate_list(N, N, []) :-
|
||||||
|
!.
|
||||||
|
generate_list(M, N, [M| Ms]) :-
|
||||||
|
M < N,
|
||||||
|
M2 is M + 1,
|
||||||
|
generate_list(M2, N, Ms).
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% just load the example, which contains an initialization/1 directive
|
% just load the example, which contains an initialization/1 directive
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example, please see the SCRIPT file.
|
To load this example, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
The entities on this example are divided in two sets. The first set
|
The entities on this example are divided in two sets. The first set
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
No self-respected programming language could do without a "Hello
|
No self-respected programming language could do without a "Hello
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% just load the example and check the output message:
|
% just load the example and check the output message:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
The examples in this folder are adopted from the Logic&Objects system
|
The examples in this folder are adopted from the Logic&Objects system
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
This directory contains examples adapted from the LPA Prolog++
|
This directory contains examples adapted from the LPA Prolog++
|
||||||
Reference Manual. This manual can be downloaded from the LPA web
|
Reference Manual. This manual can be downloaded from the LPA web
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
This example is an adaptation of the LPA Prolog++ faults example.
|
This example is an adaptation of the LPA Prolog++ faults example.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
This example is an adaptation of the LPA Prolog++ timetables example.
|
This example is an adaptation of the LPA Prolog++ timetables example.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by compiling and loading the Prolog module files as objects:
|
% start by compiling and loading the Prolog module files as objects:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT
|
To load this example and for sample queries, please see the SCRIPT
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
Run this example with no other examples loaded at the same time.
|
Run this example with no other examples loaded at the same time.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example:
|
% start by loading the example:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
% start by loading the example and the required library files:
|
% start by loading the example and the required library files:
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
=================================================================
|
================================================================
|
||||||
Logtalk - Object oriented extension to Prolog
|
Logtalk - Open source object-oriented logic programming language
|
||||||
Release 2.29.5
|
Release 2.30.1
|
||||||
|
|
||||||
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
|
||||||
=================================================================
|
================================================================
|
||||||
|
|
||||||
|
|
||||||
To load this example and for sample queries, please see the SCRIPT file.
|
To load this example and for sample queries, please see the SCRIPT file.
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user