177 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| 
 | |
| 			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 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, 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.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://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 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 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. 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-depth-limit=yes allows depth limited evaluation, say for
 | |
| implementing iterative deepening. It is required by the ILP system
 | |
| Aleph.
 | |
| 
 | |
|  o --enable-use-malloc=yes makes YAP use the system's library for all
 | |
|  memory allocation. 
 | |
| 
 | |
|  o --enable-threads=yes enables POSIX thread support.
 | |
| 
 | |
|  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.
 | |
| 
 | |
|  o --with-jpl=JAVA_PATH activates the Java Interface Library JPL. In
 | |
|  Linux and WIN32 you have to provide a path to the Java library, in
 | |
|  OSX it is sufficient to say yes.
 | |
| 
 | |
| 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.
 | |
| 
 | |
| 
 | |
| 
 |