YAP Development release
This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2009-04-26 10:51:18 -05:00
BEAM BEAM is not quite a package 2009-02-16 12:33:37 +00:00
C should use YENV, not ENV. 2009-04-26 10:51:18 -05:00
CLPQR try to reduce overheads when running with goal expansion enabled. 2004-12-05 05:01:45 +00:00
console more patches to support Anderson's JIT. 2009-04-08 00:32:36 +01:00
CVSROOT * configured to use syncmail to send mail notification of commits to 2001-06-08 18:10:32 +00:00
docs Ulrich's fixes to documentation. 2009-04-25 10:59:23 -05:00
GPL YAP can emulate apply.pl with apply_macros.yap. 2009-04-24 21:01:09 +01:00
H fix gmp support to give out of resource error if the bignum is too big. 2009-04-25 11:01:33 -05:00
include YAP_FileNoFromStream for Nf 2009-04-22 21:42:15 -05:00
LGPL apply_macros.yap should do this (and more). 2009-04-24 21:46:27 +01:00
library fix maplist and friends to handle non-var non-ground arguments (obs from Jose Santos). 2009-04-26 10:46:53 -05:00
m4 The bump to version number 5.1.3 seems to have missed these two files. 2007-11-13 01:52:14 +00:00
misc fix gmp support to give out of resource error if the bignum is too big. 2009-04-25 11:01:33 -05:00
MYDDAS MYDDAS is too closely integreated to be a package. 2009-02-16 17:15:21 +00:00
OPTYap remove early completion code. 2008-09-26 18:50:09 +01:00
packages clpqr is now a separate package. 2009-04-24 10:01:27 -05:00
pl support calling attribute_goals. 2009-04-25 12:54:50 -05:00
shlib@9ca7abd128 Upgrade to new CHR (with Jan's changes). 2008-08-30 16:24:44 +01:00
VC some fixes in info 2002-06-01 04:29:01 +00:00
.gitmodules declae all modules. 2009-04-22 17:34:31 -05:00
Artistic Updated the YAP license to the final version of the "The Artistic License 2.0" (see http://www.perlfoundation.org/legal/ for details). 2006-09-27 18:09:14 +00:00
build-distr avoid adding junk to tar files 2001-07-17 18:51:50 +00:00
changes4.3.html move to 4.5.3 2004-03-08 19:31:01 +00:00
changes-5.0.html more files ;-). 2005-10-28 17:57:25 +00:00
changes-5.1.html more locking fixes 2008-08-13 01:16:26 +00:00
changes.css library(system) plus several new support builtins 2001-05-21 20:00:05 +00:00
config.guess support for configure 2.5 2001-06-11 15:12:07 +00:00
config.h.in PLStream needs getpagesize 2009-04-21 08:28:10 -05:00
config.sub support for configure 2.5 2001-06-11 15:12:07 +00:00
configure ENABLE_WINCONSOLE badly defined. 2009-04-22 21:35:05 -05:00
configure.in ENABLE_WINCONSOLE badly defined. 2009-04-22 21:35:05 -05:00
distribute upgrade to 5.1.4 2008-06-18 10:02:27 +00:00
GIT tell people to use clpqr 2009-03-10 18:08:37 +00:00
INSTALL fix missing characters in INSTALL 2002-04-08 22:14:22 +00:00
install-sh This commit was generated by cvs2svn to compensate for changes in r4, 2001-04-09 19:54:03 +00:00
Makefile.in get rid of depend 2009-04-22 21:22:04 -05:00
README add type to BIG NUMs, so that we can easily know what it is all about. 2008-11-28 15:54:46 +00:00
README.EAM.html eamconsult can now be used to pre-compile simple prolog code. 2006-04-08 15:12:08 +00:00
README.nt commit configure 2002-11-13 15:29:44 +00:00
TO_DO upgrade to 5.1.4 2008-06-18 10:02:27 +00:00


			README for Yap6


This directory contains a release of the Yap 6.0.* Prolog system,
originally developed at the Universidade do Porto by Luis Damas and
Vitor Santos Costa, with contributions from the Edinburgh Prolog
library, the C-Prolog manual authors, Ricardo Lopes, Ricardo Rocha,
M. Hermenegildo, D. Cabeza, Eric Alphonse, Paulo Moura, Nuno Fonseca,
Jan Wielemaker, Paul Singleton, Fred Dushin, Jan Wielemaker, Markus
Triska, and many others. You should read the rest of this file for
information on what Yap is and for instructions on how to build it.

YAP 6 has been built with several versions on GCC on a variety of
Linux, MacOSX. It has been built on Windows XP and VISTA using
cygwin/mingw from Cygnus Solutions.

The main core of the YAP distribution is distributed under a dual
license: the Perl Artistic license 2 and the FSF's LGPL. The YAP
distribution also contains files distributed under the LGPL
exclusively, and under the GPL.

The YAP distribution includes several packages ported to Yap, such as
Pillow, JPL, CLP(R) and CHR. We would like to take the opportunity to
thank the developers of these packages for their generosity in
allowing YAP to distribute these packages. Any bugs in these packages
are probably our fault.

If you have a question about this software, desire to add code, found
a bug, want to request a feature, or wonder how to get further
assistance, please send e-mail to yap-users@lists.sourceforge.net. To
subscribe to the mailing list or access the list archives, please see
http://lists.sourceforge.net/lists/listinfo/yap-users

Online documentation is available for Yap at:

	http://www.ncc.up.pt/~vsc/Yap/

Recent versions of Yap, including both source and selected binaries,
can be found from this same URL.

1. What is YAP

The Yap Prolog System is a high-performance Prolog compiler developed
at LIACC, Universidade do Porto. Yap provides several important
features:

 o speed: Yap is widely considered one of the fastest available Prolog
systems.

 o functionality: it supports stream I/O, sockets, modules,
exceptions, Prolog debugger, C-interface, dynamic code, internal
database, DCGs, saved states, co-routining, arrays.

 o we explicitly allow both commercial and non-commercial use of Yap.

Yap is based on the David H. D. Warren's WAM (Warren Abstract
Machine), with several optimizations for better performance. Yap
follows the Edinburgh tradition, and was originally designed to be
largely compatible with DEC-10 Prolog, Quintus Prolog, and especially
with C-Prolog.

Yap implements most of the ISO-Prolog standard. We are striving at
full compatibility, and the manual describes what is still
missing. The manual also includes a (largely incomplete) comparison
with SICStus Prolog.
 
2. Obtaining YAP's development sources.

YAP is now being maintained using the git source management system. A
public repository is available at 

http://gitorious.org/projects/yap-git

Please use

git clone git://gitorious.org/yap-git/mainline.git

to obtain a copy of the current YAP tree.

3. How to compile YAP

To compile YAP just do:

 (1) mkdir arch

 (2) cd arch

 (3) ../configure

 (4) check the Makefile for any extensions or changes you want to make.

 (5) make

 (6) If the compilation succeeds, try ./yap

 (7) Happy? make install

 (8) "make install_info" will create the info files in the standard
     info directory.

 (9) "make html" will create documentation in html format in the
     current directory.

In most systems you will need to be superuser in order to do "make
install" and "make info" on the standard directories.

3.1 Where to install Yap

 YAP uses autoconf. Recent versions of Yap try to follow GNU
conventions on where to place software. You can use the --prefix
configure option to set the ROOTDIR macro and the --exec-prefix option
to set the EROOTDIR macro (for architecture-dependent files). EROOTDIR
defaults to ROOTDIR.

  o The main executable is placed at BINDIR, which defaults at
$(EROOTDIR)/bin. This executable is actually a script that calls the
Prolog engine, stored at YAPLIBDIR.

  o SHAREDIR is the directory where the Prolog libraries are stored.
Its default value is $(ROOTDIR)/share. The Prolog libraries are
machine-independent text files that only need to be installed once,
even on systems where multiple copies of Yap of the same version are
installed. (e.g. with different configurations or for different
architectures sharing a file server.)

  o LIBDIR is the directory where binary libraries are stored. It is
set to $(EROOTDIR)/lib by default. YAPLIBDIR is a subdirectory (by
default $(EROOTDIR)/lib/Yap) that contains the Prolog engine and the
binary Prolog libraries.

  o INCLUDEDIR is used if you want to use Yap as a library.

  o INFODIR is where the info help files will be stored. It defaults
to $(SHAREDIR)/info.

3.2 Which Yap to compile

Compiling Yap with the standard options give you a plain vanilla
Prolog. You can tune Yap to use extra functionality by using the
following options to configure:

 o --enable-rational-trees=yes gives you support for infinite rational
trees (enabled by default).

 o --enable-coroutining=yes gives you support for coroutining,
including freezing of goals, attributed variables, and
constraints. This will also enable support for infinite rational
trees  (enabled by default).

 o --enable-depth-limit=yes allows depth limited evaluation, say for
implementing iterative deepening.

 o --enable-low-level-tracer=yes allows support for tracing all calls,
retries, and backtracks in the system. This can help in debugging your
application, but results in performance loss.

 o --enable-wam-profile=yes allows profiling of abstract machine
instructions. This is useful when developing YAP, should not be very
useful for normal users.

 o --enable-parallelism={env-copy,sba,a-cow} allows or-parallelism
supported by one of these three forms. This is still highly experimental.

 o --enable-tabling=yes allows tabling support. This is still experimental.

3.3 Porting Yap

The system has been mainly tested with GCC, but we have been able to
compile older versions of Yap under lcc in Linux, Sun's cc compiler,
IBM's xlc, SGI's cc, HP's cc, and Microsoft's Visual C++ 6.0. Recent
versions of YAP have also been compiled using Intel's lcc.