Skip to content

josephnunn/yap-6.3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

		COMPILING YAP UNDER WIN32 (WIN95, WIN98, NT, 2000)

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:

@code{http://www.mingw.org}

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:

@code{http://www.cygwin.com}

@noindent
and mirrors. We suggest using recent versions of the cygwin shell. The
compilation steps under the cygwin shell are as follows:

@example
mkdir cyg
$YAPSRC/configure --enable-coroutining \\
                  --enable-depth-limit \\
                  --enable-max-performance
make
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{http://www.sf.net/projects/mingwrep}.

It is also possible to configure Yap to be a part of the cygwin
environment. In this case you should use:
@example
mkdir cyg
$YAPSRC/configure --enable-coroutining \\
                  --enable-max-performance \\
                  --enable-cygwin=yes
make
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.

VISUAL C++:

To the best of my knowledge, Yap compiles cleanly under VC++ release
6.0.

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
c_interface.c.

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

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

['$YAPSRC\\pl\\init'].
save_program('startup.yss').
^Z

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 ??


Enjoy!

Vitor

About

YAP Development release

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 60.0%
  • Prolog 24.2%
  • C++ 7.9%
  • Java 2.9%
  • HTML 1.5%
  • CMake 1.1%
  • Other 2.4%