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
2016-02-18 19:46:03 +00:00
autoconf update README to refer to cmake, and to use MD format. 2016-02-18 13:20:49 +00:00
BEAM allow the option to have priorities above 1200 2015-12-15 08:38:56 +00:00
C Fix encoding 2016-02-18 12:10:58 +00:00
cmake related changes 2016-02-11 06:20:16 -08:00
console submods work 2015-10-13 09:10:53 +01:00
CVSROOT mode changes 2011-07-25 17:09:28 +01:00
CXX macos fixes 2016-02-11 15:32:42 +00:00
docs Merge branch 'master' of github.com:vscosta/yap-6.3 2016-02-03 10:17:01 +00:00
H Fix encoding 2016-02-18 12:10:58 +00:00
include ISO error handling (Paulo Moura's suite). 2016-02-18 19:46:03 +00: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 Eyal Dechter: The YAP version of assoc.pl has gen_assoc(Assoc, Key, Value). Both SWI and Sicstus use gen_assoc(Key, Assoc, Value). Could it be changed for compatibility with the other systems? 2016-02-18 19:41:11 +00:00
misc related changes 2016-02-11 06:20:16 -08:00
OPTYap manual for yap version 2016-02-03 07:52:52 +01:00
os Fix encoding 2016-02-18 12:10:58 +00:00
packages small changes 2016-02-13 03:11:25 +00:00
pl Fix encoding 2016-02-18 12:10:58 +00:00
PrologCommons add pointer to commons. 2014-11-05 07:43:48 +00:00
regression Hide and Seek 2016-01-04 17:18:43 +00:00
swi rid of error library 2016-01-31 10:30:54 +00:00
tmp cleanup 2016-01-31 19:41:10 +00:00
utf8proc windows dlls, meet thy mxmake 2016-01-20 22:25:25 +00:00
utils cleanup 2016-01-31 19:42:57 +00:00
YAP Merge branch 'master' of github.com:vscosta/yap-6.3 2016-02-03 10:17:01 +00:00
.ctags avoid going into build directories 2016-02-11 05:58:21 -08:00
.gitignore fix encoding 2016-02-18 12:11:17 +00: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 Merge branch 'master' of github.com:vscosta/yap-6.3 2016-02-03 10:17:01 +00:00
config.h.cmake fix encoding 2016-02-18 12:11:17 +00: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 small changes 2016-02-13 03:11:25 +00: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_manifest.txt Avoid complaining from strlen 2015-09-21 17:05:36 -05:00
Makefile.am Avoid complaining from strlen 2015-09-21 17:05:36 -05: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.md update README to refer to cmake, and to use MD format. 2016-02-18 13:20:49 +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
TO_DO upgrade to 5.1.4 2008-06-18 10:02:27 +00:00
yap-6.3.anjuta Merge branch 'master' of github.com:vscosta/yap-6.3 2016-02-03 10:17:01 +00:00
yap-6.3.workspace Merge branch 'master' of github.com:vscosta/yap-6.3 2016-02-03 10:17:01 +00:00
yap-6.project Merge branch 'master' of github.com:vscosta/yap-6.3 2016-02-03 10:17:01 +00:00
YapTermConfig.h.cmake JIT 2015-01-20 03:00:42 +00:00

README for YAP6

NOTE: this version of YAP is stil experimental, documentation may be out of date.

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, Ulrich Neumerkel, 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.

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. Moreover, we are working on integrating YAP on multi-programming language environments.

Obtaining YAP's development sources.

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

https://github.com/vscosta/yap-6.3

Please use

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

to obtain a copy of the current YAP tree.

Notice that the current version of YAP does not use submodules

  1. How to compile YAP

First, make sure you have gmp and readline development packages installed (that is, the headers and libraries). If you are in a WIN32 environment you will still need GMP.

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 so that "make install" can write on the standard system directories.

Where to install YAP

YAP now uses cmake. Still, YAP try to follow GNU conventions on where to place software. By default, the home location is /usr/local on Unix, Linux, and OS/X machines.

You can use the CMAKE_INSTALL_PREFIX variable to set the YAP default home directory. Use the graphical interface to cmake, or from the command line

cmake -DCMAKE_INSTALL_PREFIX=/home/xpto

Which YAP to compile

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

Compilation options:

  • -DWITH_Threads=ON enables POSIX thread support. The threads library mostly follows the SWI design: each thread has its own stack, and they all share the same data-base.

  • -DWITH_CALL_TRACER=ON allows support for tracing all calls, retries, and backtracks in the system. This can help in debugging a application, but results in performance loss. It is default in debug mode.

Packages and Interface Libraries

YAP includes a number of interface libraries. Some, like the Java interface JPL, have been ported from other Prologs (often from SWI-Prolog). Others, like the python and swig interface, have been developed within YAP.

As an example:

-DWITH_CUDD enables compilation of the CUDD library, used by packages such as PFL/CLP(BN) and ProbLog. The source of the CUDD package is available 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

The cmake graphical interface lists all currently available external packages.