|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 26-Jul-2019 | - |
| VisualStudio/ | H | 26-Jul-2019 | - | 4,390 | 4,372 |
| compiler/ | H | 03-May-2022 | - | 19,713 | 17,659 |
| disassembler/ | H | 26-Jul-2019 | - | 1,020 | 897 |
| front/ | H | 26-Jul-2019 | - | 4,530 | 3,125 |
| include/ | H | 03-May-2022 | - | 2,279 | 1,249 |
| installer/ | H | 26-Jul-2019 | - | 394 | 325 |
| linker/ | H | 26-Jul-2019 | - | 6,140 | 4,298 |
| loader/ | H | 26-Jul-2019 | - | 2,598 | 1,574 |
| simulator/ | H | 26-Jul-2019 | - | 13,620 | 9,050 |
| system/ | H | 26-Jul-2019 | - | 2,113 | 1,133 |
| tables/ | H | 26-Jul-2019 | - | 254 | 115 |
| tables_gen/ | H | 26-Jul-2019 | - | 7,842 | 5,484 |
| test/ | H | 26-Jul-2019 | - | 35,578 | 28,742 |
| OMakefile | H A D | 03-May-2022 | 6.5 KiB | 324 | 265 |
| README | H A D | 26-Jul-2019 | 8.6 KiB | 258 | 185 |
README
1 DEPENDENCIES
2 ============
3
4 ---*nix---
5
6The following dependencies must be in the path:
7
8 OCaml
9 OMake
10 flex
11 bison
12 diff
13 perl
14
15 ---Windows---
16
17Teyjus can be compiled with either the Cygwin toolchain or the MS
18toolchain.
19
20Cygwin:
21 The following software must be installed.
22
23 OCaml for the MinGW toolchain http://caml.inria.fr/
24 OMake http://omake.metaprl.org/
25 Cygwin http://www.cygwin.com/
26
27 When installing Cygwin, you must select the following packages
28 Devel: bison
29 Devel: gcc
30 Devel: flex
31
32 After Cygwin is installed, you must put Cygwin's binary directory
33 in your path. For example, 'C:\cygwin\bin'
34
35
36Microsoft Visual Studio 2008:
37 The following dependencies must be in the path. Listed is a place
38 to get either the actual dependency, or information on procuring it.
39
40 OCaml http://caml.inria.fr/
41 Microsoft Visual Studio 2008 http://msdn.microsoft.com/vstudio/
42 ocamake /util/ocamake.ml (included)
43 flex http://gnuwin32.sourceforge.net/
44 bison http://gnuwin32.sourceforge.net/
45 diff http://gnuwin32.sourceforge.net/
46 perl http://www.activestate.com/
47
48
49 BUILD SYSTEM
50 ============
51
52 ---*nix and Cygwin---
53
54 To build the system in a *nix or Cygwin environment, use omake:
55
56 component command path
57 -----------------------------------------------------------------
58 compiler omake tjcc teyjus/source
59
60 simulator omake tjsim teyjus/source
61
62 disassembler omake tjdis teyjus/source
63
64 linker omake tjlink teyjus/source
65
66 dependency analyzer omake tjdepend teyjus/source
67
68 parser omake tjparse teyjus/source
69
70 all omake all teyjus/source
71
72
73 ---Windows: Microsoft Visual Studio 2008---
74
75 Installing dependencies:
76 Make sure that O'Caml is installed and in your path.
77
78 Make sure that flex and bison are in your path.
79
80 Build ocamake and make sure it is in your path. To build ocamake,
81 run this command in the /util directory of the distribution:
82 ocamlc unix.cma str.cma ocamake.ml -o ocamake.exe
83 Then, copy that file into your ocaml/bin directory, or alternatively
84 modify your path. Be sure to use the provided version of ocamake.ml, as
85 it has been patched to work with Visual Studio 2008 project files.
86
87 Building the System:
88 To build the system in a Windows environment, use the provided
89 Microsoft Visual Studio 2008 solution file, (/source/VisualStudio/Teyjus.sln).
90
91 Then, simply click "Build\Rebuild Solution", or type Ctrl + Alt + F7.
92
93 The result should be "9 succeeded, 0 failed, 0 skipped." The produced
94 binaries will be written to /source/VisualStudio/Debug, to /bin, and to
95 /source. In addition, the file /source/prebuilt will be created; this will
96 allow the tests to run correctly.
97
98 Note that there is no support for building Teyjus using omake on Windows as
99 of yet.
100
101 Testing:
102 The testing harness only partially works on Windows. The test "maps" fails
103 due to ActivePerl's method of calling other programs through cmd.exe.
104
105
106 SYSTEM USAGE
107 ============
108
109 1. compiler (teyjus/source/tjcc)
110 --------------------------------
111
112 Usage: tjcc [options] <module-names>
113 options are:
114 -o Specifies the name of the output bytecode file
115 --output Specifies the name of the output bytecode file
116 -p Add PATH to the search path.
117 --path Add PATH to the search path.
118 -v Return the system version
119 --version Return the system version
120 -help Display this list of options
121 --help Display this list of options
122
123
124 2. simulator (tejus/source/tjsim)
125 ---------------------------------
126
127 Usage: tjsim [options] <module-name>
128 options are:
129 -p Add PATH to the search path.
130 --path Add PATH to the search path.
131 -s Solve the given query on startup. Several queries may be specified
132 --solve Solve the given query on startup. Several queries may be specified
133 -e Expect at least this many solutions from each query;
134 error if fewer. Valid only in batch mode
135 --expect Expect at least this many solutions from each query;
136 error if fewer. Valid only in batch mode
137 -m Halt after this many solutions to the query have been found.
138 Valid only in batch mode
139 --maximum Halt after this many solutions to the query have been found.
140 Valid only in batch mode
141 -q Suppress all non-error output from the system,
142 except variable bindings on query success
143 --quiet Suppress all non-error output from the system,
144 except variable bindings on query success
145 -b Suppress system interaction; send all output without stopping
146 --batch Suppress system interaction; send all output without stopping
147 -k Allocate a heap of the given size (K)
148 --heap Allocate a heap of the given size (K)
149 -v Return the system version
150 --version Return the system version
151 -help Display this list of options
152 --help Display this list of options
153
154 3. disassembler (teyjus/source/tjdis)
155 -------------------------------------
156
157 Usage: tjdis [options] <object-file>
158 options are:
159 -t Only print tables
160 --table Only print tables
161 -i Only print instructions
162 --instr Only print instructions
163 -v Return the system version
164 --version Return the system version
165 -help Display this list of options
166 --help Display this list of options
167
168
169 4. linker (teyjus/source/tjlink)
170 --------------------------------
171
172 Usage: tjlink [options] <module-name>
173 -V Produce verbose output - use multiple times to increase verbosity
174 --verbose Produce verbose output - use multiple times to increase verbosity
175 -v Return the system version
176 --version Return the system version
177 -help Display this list of options
178 --help Display this list of options
179
180
181 5. dependency analyzer (teyjus/source/tjdepend)
182 -----------------------------------------------
183
184 Usage: tjdepend [options] <module-files>
185 options are:
186 -v Return the system version
187 --version Return the system version
188 -help Display this list of options
189 --help Display this list of options
190
191
192 6. parser (teyjus/source/tjparse)
193 -----------------------------------------------
194
195 Usage: tjparse [options] <file>
196 options are:
197 -o Specifies the name of the output module
198 --output Specifies the name of the output module
199 -v Return the system version
200 --version Return the system version
201 -help Display this list of options
202 --help Display this list of options
203
204 TESTING
205 =======
206
207 ---*nix and Cygwin---
208
209 All tests reside in teyjus/source/test.
210
211 1. testing compiler:
212
213 a. all test cases:
214 use "omake compiler-test" under teyjus/source/test
215
216 b. individual test case:
217 use "omake compiler-test" under the directory containing a test case
218
219
220 2. testing linker:
221
222 a. all test cases:
223 use "omake linker-test" under teyjus/source/test
224
225 b. individual test case:
226 use "omake linker-test" under the directory containing a test case
227
228
229 3. system test:
230
231 use "omake system-test" under teyjus/source/test
232
233
234 4. all the above tests:
235
236 use "omake test" under teyjus/source/test
237
238
239 ---Windows: Microsoft Visual Studio 2008---
240
241 All of the above applies, however the file /source/prebuilt must exist in
242 order to run the tests. The file can contain anything (or nothing) at all;
243 its existence is used by the build system to determine whether or not to
244 attempt to rebuild the Teyjus binaries.
245
246 DOCUMENTATION
247 =============
248 See also:
249 /source/compiler/README
250 /source/front/README
251 /source/include/README
252 /source/linker/README
253 /source/loader/README
254 /source/simulator/README
255 /source/system/README
256 /source/tables/README
257
258