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
Vítor Santos Costa e3a56234e4 big sys split
2015-11-05 16:47:11 +00:00
BEAM Use z for initialisation 2015-11-05 15:04:12 +00:00
C fix conversion to be stricter, fix a looping bug 2015-11-05 16:40:25 +00:00
cmake cmake: support older versions 2015-10-20 08:07:42 +01:00
console submods work 2015-10-13 09:10:53 +01:00
CVSROOT mode changes 2011-07-25 17:09:28 +01:00
CXX gmp and C++, ugh 2015-11-05 15:35:03 +00:00
H t->T 2015-11-05 16:41:39 +00:00
include gcc warnings 2015-10-20 08:06:46 +01:00
JIT fix error handling 2015-09-25 10:57:26 +01:00
LGPL change SWI stuff to swi directory. 2013-03-05 15:50:38 -06:00
library take your own MD5, use version in Python/SWI 2015-11-05 16:14:45 +00:00
misc caps 2015-11-05 16:15:35 +00:00
OPTYap fix files dragged in 2015-09-30 00:02:59 +01:00
os big sys split 2015-11-05 16:47:11 +00:00
packages remove debugging 2015-11-05 16:10:51 +00:00
pl fix $VAR handling. 2015-10-22 12:01:54 +01:00
PrologCommons add pointer to commons. 2014-11-05 07:43:48 +00:00
swi submods work 2015-10-13 09:10:53 +01:00
utf8proc remove session 2015-10-13 02:14:45 +01:00
.ctags avoid tagging unnecessary files 2015-06-17 23:48:25 +01:00
.gitignore more changes to ignore 2015-10-22 12:10:20 +01:00
.gitmodules stop using submodule 2015-10-13 08:17:51 +01: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
atom.yap increase the ignore list 2015-06-17 23:49:02 +01:00
bodyLine increase the ignore list 2015-06-17 23:49:02 +01:00
ChangeLog Avoid complaining from strlen 2015-09-21 17:05:36 -05: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-6.0.html changes for pdf generation in ProbLog. 2010-08-31 15:53:43 -05:00
changes.css library(system) plus several new support builtins 2001-05-21 20:00:05 +00:00
CMakeLists.txt Try to use USE for all options 2015-10-27 23:02:31 +00:00
config.guess ndk support 2014-02-27 16:31:20 +00:00
config.h.cmake ensure locks are library provided by default 2015-10-22 11:55:42 +01:00
config.h.in enable path expansion by default 2015-04-24 10:03:44 -06:00
config.sub ndk support 2014-02-27 16:31:20 +00:00
configure cmake & text support 2015-06-19 01:30:13 +01:00
configure.in cmake & text support 2015-06-19 01:30:13 +01:00
COPYING mode changes 2011-07-25 17:09:28 +01:00
css3deps.rdf Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
customdoxygen.css Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
depcomp Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
distribute mode changes 2011-07-25 17:09:28 +01:00
endBodyLine Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
example.py Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
exports.yap Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
GIT get rid of wrong docs. 2010-06-14 08:46:58 +01:00
GitSHA1.c fix files dragged in 2015-09-30 00:02:59 +01:00
GitSHA1.c.in git versioning 2015-06-19 01:14:28 +01:00
ICLP2014_examples.yap Added examples for ICLP2014 submission 2014-02-10 15:35:37 +00:00
INSTALL chnage define ACOW to YAPOR_COW 2011-03-30 16:39:09 +01:00
install_manifest.txt Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
install-sh mode changes 2011-07-25 17:09:28 +01:00
Makefile.am Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
Makefile.in cmake & text support 2015-06-19 01:30:13 +01:00
missing Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
new_stylesheet.css Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
NEWS Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
README Avoid complaining from strlen 2015-09-21 17:05:36 -05: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 saved state should be startup.yss, not startup.yss, in case YAP looks up 2009-05-02 14:06:24 -05:00
README.TXT README -> add TXT file. 2014-03-11 11:24:10 +00:00
TO_DO upgrade to 5.1.4 2008-06-18 10:02:27 +00:00
YapTermConfig.h.cmake JIT 2015-01-20 03:00:42 +00:00
YapTermConfig.h.in Android 2014-06-11 19:36:50 +01:00


			README for YAP6


This directory contains a release of the YAP 6.3.* Prolog system,
originally developed at the Universidade do Porto by Luis Damas and
Vitor Santos Costa. YAP contains the SWI-Prolog I/O library anad a
number of SWI-Prolog packages, originally developed by Jan Wielemaker
and other. It includes 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, 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, BDS, and MacOSX configurations. It has been built on Windows7
using the mingw toolkit and cygwin 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. 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.dcc.fc.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://sourceforge.net/p/yap/yap-6.3/ci/master/tree/

Please use

git clone git://git.code.sf.net/p/yap/yap-6.3

to obtain a copy of the current YAP tree.

3. How to compile YAP

First, make sure you have gmp and readline development packages
installed. If you plan to use ProbLog, also check for cudd.

Now, to compile YAP from the source directory just do:

 (1) ./configure

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

 (3) make

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

 (5) Happy? "make install"

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

 (7) "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 system directories.

3.1 Where to install YAP

 YAP uses autoconf. Recent versions of YAP try to follow GNU
conventions on where to place software. By default, this location is
/usr/local on Unix, Linux, and OS/X machines. 

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.

  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:

Compilation options:

 o --enable-tablingt=yes allows tabled evaluation (default option)

 o --enable-depth-limit=yes allows depth limited evaluation, say for
implementing iterative deepening. It is required by the ILP system
Aleph. (default option)

 o --enable-use-malloc=yes makes YAP use the system's C-library
 allocation routines for all memory allocation (default).

 o --enable-threads=yes enables POSIX thread support.

 o --enable-pthread-locking=yes always use POSIX p-thread routines for locking.

 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-or-parallelism={env-copy,sba,a-cow} allows or-parallelism
supported by one of these three forms. This is still experimental.

 o --enable-dynamic-loading compile YAP as as a shared library.

 o --enable-cygwin compile YAP as a CYGWIN environment application, and not as stand-alone application.

 o --with-gmp[=GMP_PATH] provide a path for GMP, in case GMP is not
 installed in the system. In a Linux machine, make sure you have
 installed the gmp-dev package. Binary versions of GMP are available
 for WIN32.

 o --enable-condor compile YAP as a static program that can be run by
 condor. condor_compile must be in the system path.

Packages and Interface Libraries

 o --with-cudd[=CUDD_PATH] enables compilation of the CUDD library,
 used by packages such as PFL/CLP(BN) and ProbLog. The source of the
 CUDD package is availablr from:

  http://vlsi.colorado.edu/~fabio/CUDD

 Fedora Linux and MacPorts have cudd packages. In the case of Fedora,
 install cudd-devel. Ask vsc@dcc.fc.up.pt for a WIN32/WIN64 port 

 o --with-java[=JAVA_PATH] enables the Java Interface Library JPL.

 o --enable-chr installs the Leuven CHR language implementation
 (enabled by default, if package/chr exists)

 o --enable-clpqr installs the Leuven CLPQR port, originally developed
 for SWI-Prolog (enabled by default, if Cpackage/clpqe exists)

 o --enable-myddas[=PATH] installs the MYDDAS MYSQL and/or ODBC interface
 package (enabled by default, if ODBC and/or MySql
 development files can be found). It also enables support for the
 SWI-Prolog ODBC package.

 o --with-matlab[=PATH] installs the MATLAB interface (not
 default). You need to provide the full path of the MATLAB libraries.

 o --with-mpi[=PATH] installs the  MPI interface. This is default,
 if the development libraries can be found.

 o --with-gecode[=PATH] installs the  GeCode Solver interface. This is default,
 if gecode libraries can be found.

 o --with-R[=PATH] installs the Real interface to the R language.

 o --with-python[=PATH] installs a Python interface