forked from vscosta/yap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.nt
161 lines (105 loc) · 5.05 KB
/
README.nt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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