• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..26-Jul-2019-

VisualStudio/H26-Jul-2019-4,3904,372

compiler/H03-May-2022-19,71317,659

disassembler/H26-Jul-2019-1,020897

front/H26-Jul-2019-4,5303,125

include/H03-May-2022-2,2791,249

installer/H26-Jul-2019-394325

linker/H26-Jul-2019-6,1404,298

loader/H26-Jul-2019-2,5981,574

simulator/H26-Jul-2019-13,6209,050

system/H26-Jul-2019-2,1131,133

tables/H26-Jul-2019-254115

tables_gen/H26-Jul-2019-7,8425,484

test/H26-Jul-2019-35,57828,742

OMakefileH A D03-May-20226.5 KiB324265

READMEH A D26-Jul-20198.6 KiB258185

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