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.

162 lines
5.1 KiB

Yap should compile under both cygwin and Visual C++ 6.0. We next describe
how to do it from scratch.
$YAPSRC is the directory where you can find the sources
$YAPVERSION is the current version for YAP.
GCC-Based compilation:
GCC is distributed in the MINGW32 and CYGWIN packages.
The Mingw32 environment is available from the URL:
You will need to install the @code{msys} and @code{mingw}
packages. You should be able to do configure, make and make install.
If you use mingw32 you may want to search the contributed packages for
the @code{gmp} multi-precision arithmetic library. If you do setup Yap
with @code{gmp} note that @code{libgmp.dll} must be in the path,
otherwise Yap will not be able to execute.
CygWin environment is available from the URL:
and mirrors. We suggest using recent versions of the cygwin shell. The
compilation steps under the cygwin shell are as follows:
mkdir cyg
$YAPSRC/configure --enable-coroutining \\
--enable-depth-limit \\
make install
@end example
By default, Yap will use the @code{--enable-cygwin=no} option to
disable the use of the cygwin dll and to enable the mingw32 subsystem
instead. Yap thus will not need the cygwin dll. It instead accesses
the system's @code{CRTDLL.DLL} @code{C} run time library supplied with
Win32 platforms through the mingw32 interface. Note that some older
WIN95 systems may not have @code{CRTDLL.DLL}, in this case it should
be sufficient to import the file from a newer WIN95 or WIN98 machine.
You should check the default installation path which is set to
@code{/PROGRA~1/Yap} in the standard Makefile. This string will usually
be expanded into @code{c:\Program Files\Yap} by Windows.
The cygwin environment does not provide @t{gmp}. You can fetch a dll for
the @t{gmp} library from @url{}.
It is also possible to configure Yap to be a part of the cygwin
environment. In this case you should use:
mkdir cyg
$YAPSRC/configure --enable-coroutining \\
--enable-max-performance \\
make install
@end example
Yap will then compile using the cygwin library and will be installed
in cygwin's @code{/usr/local}. You can use Yap from a cygwin console,
or as a standalone application as long as it can find
@code{cygwin1.dll} in its path.
To the best of my knowledge, Yap compiles cleanly under VC++ release
First, it is a good idea to build Yap as a DLL:
1. create a project named yap using File.New. The project will be a
DLL project, initially *empty*.
NOTICE: Either the project is named yap or you must replace
YAP_EXPORTS to match your project names in c_interface.h and
o Use the FileView tab to add all .c files in the $YAPSRC/C directory
and in the $YAPSRC/OPTYap directory to the "Source Files".
o add all .h files in the $YAPSRC/H directory, $YAPSRC/include directory and in the $YAPSRC/OPTYap subdirectory to the "Header Files".
o include the .h from .m4 files and config.h. You can find these files at $YAPSRC/VC/include.
o You may want to go to Build.Set Active Configuration and set Project Type to Release
o set Project.Settings.C/C++.Preprocessor.Additional Include Directories to include the $YAPSRC/H, $YAPSRC/VC/include, $YAPSRC/OPTYap and $YAPSRC/include.
The syntax is:
$YAPSRC\H, $YAPSRC\VC\include, $YAPSRC\OPTYap, $YAPSRC\include
o Build: the system should generate an yap.dll and an yap.lib.
o Copy the yapdll.dll file to your path. The yapdll.lib should be copied to
where the linker can find it (you can also give the explicit path).
2. create a second project say wyap with File.New. The project will be a
WIN32 console project, initially empty.
o add $YAPSRC/console/yap.c to the Source Files.
o add $YAPSRC/VC/include/config.h and the files in $YAPSRC/include/ to
the Header Files.
o You may want to go to Build.Set Active Configuration and set Project Type to Release
o you will eventually need to bootstrap the system by booting from
boot.yap, so write:
-b $YAPSRC\pl\boot.yap
in Project.Project Settings.Debug.Program Arguments
o You need the sockets and yap libraries. Add
ws2_32.lib yapdll.lib to
Project.Project Settings.Link.Object/Library Modules
You may also need to set the Link Path so that VC++ will find yap.lib.
o set Project.Project Settings.C/C++.Preprocessor.Additional Include Directories to include the $YAPSRC/VC/include and $YAPSRC/include.
The syntax is:
$YAPSRC\VC\include, $YAPSRC\include
o Build the system.
o Use Build.Start Debug to boot the system, and then create the saved state with
That's it, you've got YAP and the saved state!
The $YAPSRC\VC directory has the make files to build Yap4.3.17 under VC++ 6.0.
Problems with this release:
o alarm/3 does not work in WIN98. This seems to be a limitation of WIN98.
o signals still do not work properly with console applications :-(.
o ??