$TenDRA: book.xml 2451 2006-03-24
03:41:37Z verm $
Copyright © 2002, 2003, 2004, 2005, 2006 TenDRA Documentation Team
Copyright © 1997, 1998 Defence Evaluation and Research Agency (DERA)
Berkeley Systems Design License
Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code (SGML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.
Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS DOCUMENTATION IS PROVIDED BY THE TENDRA DOCUMENTATION TEAM "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TENDRA DOCUMENTATION TEAM BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This document was generated on 2006-09-07 16:04:19
Abstract
Please email us at <docs@ten15.org> if you see any errors
Table of Contents
Please read the file COPYRIGHT for the DERA copyright notice. In addition, the power installer (src/installers/power and its subdirectories) are subject to the following copyright notice:
Table of Contents
The latest TenDRA release is available via the url: http://www.ten15.org/download/.
It is also available from the main FTP site directly accessible via HTTP or FTP: http://ftp.ten15.org/source/, ftp://ftp.ten15.org/pub/source/.
TenDRA also has a comprehensive set of documentation you may peruse in either HTML, TXT or PDF at: http://www.ten15.org/docs/ .
It is also available from the main FTP site directly accessible via HTTP or FTP: http://ftp.ten15.org/docs/, ftp://ftp.ten15.org/pub/docs/.
The TenDRA CVS repository is accessible with the help of SubVersion.
| Repository | Location |
|---|---|
| Source | http://svn.ten15.org/trunk/tendra/ |
| Documentation | http://svn.ten15.org/trunk/doc/ |
| PMake | http://svn.ten15.org/trunk/contrib/make/ |
| Contrib | http://svn.ten15.org/trunk/contrib/ |
If you're looking for tags or branches just browse to the root online http://svn.ten15.org/.
Online source browsing is available at http://www.ten15.org/browser.
Table of Contents
Documentation to be completed.
Table of Contents
Documentation to be completed.
The src subdirectory, which contains the source code, is organised into the following top-level directories:
Contains the compiler back-ends, which translate the compiler intermediate form, TDF, to the appropriate machine instructions;
The installers directory is split into a common section, containing code which is used by all the back ends, plus a directory for each of the target CPUs:
| Directory | Description | |
|---|---|---|
680x0 |
Motorola 68020, 68030 and 68040 | |
80x86 |
Intel i386, i486 and Pentium | |
alpha |
DEC Alpha, | |
hppa |
HP Precision Architecture | |
mips |
SGI/DEC MIPS | |
power |
POWER | |
ppc601 |
POWER PC | |
sparc |
SPARC. |
Each CPU directory is also divided into a common section, plus a directory for each of the target operating systems:
| CPU | Directory | Description |
|---|---|---|
| 680x0 | sunos |
SunOS 4 |
| 80x86 | cygwin32 |
Cygwin32 |
| 80x86 | freebsd |
FreeBSD |
| 80x86 | linux |
Linux |
| 80x86 | sco |
SCO |
| 80x86 | solaris |
Solaris |
| 80x86 | svr4.2 |
Unixware |
| alpha | osf1 |
OSF/1, |
| hppa | hpux |
HP-UX |
| mips | irix |
Irix |
| mips | ultrix |
Ultrix |
| power | aix |
AIX |
| ppc601 | aix |
AIX |
| sparc | solaris |
Solaris 2 |
| sparc | sunos |
SunOS 4 |
The common installer directory is also subdivided, for convenience, into a number of different subdirectories:
| Directory | Description |
|---|---|
construct |
Main routines for transforming and optimising the internal representation; |
diag |
Routines for reading and processing diagnostic information contained within the TDF; |
dwarf |
Routines for writing out diagnostic information as DWARF directives; |
dwarf2 |
Routines for writing out diagnostic information as DWARF 2 directives; |
linkinfo |
Routines for reading linkage information contained within the TDF; |
reader |
Main routine for reading the input TDF and building up the internal representation; |
templ |
Template files used to generate the TDF reading routines. |
lib which contains everything not included in the other directories;
The lib directory is divided into a number of subdirectories:
apis containing the TenDRA API descriptions used in its API checking facilities;
cpp containing the C++ support library (note that this is only a minimal language support subset of the complete C++ standard library);
env containing the compiler front-end configuration files;
libtdf containing a support library certain aspects of TDF (such as 64 bits integers);
machines containing machine specific tools, libraries and configuration files;
startup containing the C and C++ producer configuration files;
tdf containing a description of the TDF specification used by make_tdf to generate TDF encoders and decoders.
contains the compiler front-ends, which translate C and C++ to the compiler intermediate form, TDF;
The producers subdirectory is divided into a common directory, containing code shared by both the C and C++ producers, plus directories c and cpp, containing the language specific components. The differences between the languages are driven from the parser, which is found in the syntax subdirectory of c and cpp. C merely uses a subset of the routines available for the C++ producer, with a number of run-time or compile-time flags to control the differences between the languages.
The common producer directory is divided, for convenience into a number of subdirectories:
construct which contains the main routines for building up and checking the internal representation;
obj_c which contains macros describing the internal representation;
obj_templ which contains various template files used in automatic code generation;
obj_tok which contains TenDRA tokens describing the internal representation;
output which contains the routines of writing the internal representation to disk as TDF;
parse which contains routines for lexical analysis and preprocessing;
utility which contains routines for error reporting, memory allocation etc.
contains various tools for manipulating, viewing and generating TDF;
The tools directory contains the source for a number of different tools:
disp translates TDF into a human readable form;
pl is a structured TDF assembler;
tcc is the front-end to the TenDRA compiler;
tld links a number of TDF capsules into one;
tnc is an unstructured TDF assember and disassembler;
tspec is a specification tool used in the TenDRA API descriptions.
contains various compiler generator utilities used in the development of the TenDRA software.
The utilities directory contains the source for a number of different compiler generator tools:
calculus is used to manage the complex type system used in the producers;
lexi is a simple lexical analyser generator (lex is not used);
make_err is used to manage the producer error catalogue;
make_mf is a simple makefile generator;
make_tdf is used to generate TDF encoding and decoding routines from the TDF specification;
shared contains code common to a number of tools;
sid is a parser generator (yacc is not used);
tuname is a uname-like utility used in the installation process.
The installation script creates three shell scripts in the public binaries directory (/usr/local/bin in the default set-up). These are the compiler, tcc, the stand-alone static checker, tchk, and the API specification tool, tspec. The manual pages for these tools and those which they invoke are installed in the manual page directory (/usr/local/man in the default set-up). The remaining files are installed into the TenDRA configuration directory (/usr/local/lib/TenDRA in the default set-up). The remainder of this section describes the files installed into this directory.
For each target machine, a directory:
machines/<os>/<os_vers>/<cpu>
is created to hold the machine dependent files, where <os> denotes the operating system name, <os_vers> denotes the operating system version and <cpu> denotes the CPU type (as above). This machine directory has five subdirectories:
bin containing the compiled executables for this machine; advanced users may wish to put this directory on their PATH, but the executables in the public binaries directory should suffice for most users;
env containing the tcc configuration files for this machine (see above);
include containing the modified system headers for this machine; these are copied directly from the src/lib/machines directory in the release;
lib containing the API token libraries describing the implementation of the various standard APIs on this machine; the generation of these libraries from the API descriptions and the system headers is the most complex part of the installation;
startup containing the compiler configuration files describing how to navigate through the system headers on this machine; these are copied directly from the src/lib/machines directory in the release.
The remainder of the directories created by the installation are common to all machines. These are:
building containing files automatically generated by tspec from the API descriptions which are used to build the API token libraries; these files are only used during installation and may be deleted if space is short;
include containing the include files automatically generated by tspec from the API descriptions;
startup containing the C and C++ producer configuration files copied directly from the src/lib/startup directory in the release.
Table of Contents
| Developer | Contact | Area of Focus |
|---|---|---|
| Munish Chopra | <chopra@ten15.org> |
Documentation, platform support, web content and other all-around tasks. |
| Stefan Farfeleder | <stefanf@ten15.org> |
C producer in terms of bug fixes and C99 functionality, new APIs (mainly C99 and SUSv3), as well as the Alpha installer. |
| Samuel J. Greear | <sjg@ten15.org> |
Making FreeBSD TenDRA-friendly. |
| Amos B. Haven | <nonce@ten15.org> |
SSA transformations, data flow, dynamic slicing, and related areas. |
| Boris Popov | <bp@ten15.org> |
Code cleanup, libten, extensible support for qualifiers in the producers, inline assembly support in the installers. |
| Amar Takhar | <verm@ten15.org> |
Build system, documentation, platform support, web site, and a number of other areas. |
| Developer | Description |
|---|---|
| Jeroen Ruigrok van der Werven | Jeroen left on August 20, 2003 to focus on other aspects of ANDF technology. Thanks for the hard work, we'll miss you asmo! |
The donations list holds the names of individuals and organizations whom we thank very much for their donation of resources, such as bandwidth, processing power, and/or hardware. Without your donations we could not have pulled off a lot of what we do now. Thank you.
| Donator | Description | |
|---|---|---|
| Stanford University | Bandwidth and our central development machine 'spill'. |
The following are individual's who have contributed to TenDRA.
| Contributor | Description | |
|---|---|---|
| Priit Piipuu | <priit.piipuu@mail.ee> |
.. |
| Jesper Louis Andersen | <jlouis@mongers.org> |
.. |
| Daniel Gustafson | <daniel@hobbit.se> |
.. |
The following are organisation's who have contributed to TenDRA.
| Contributor | URL | Description |
|---|---|---|
| Stanford University | http://www.stanford.edu | ... |
Table of Contents
All source code modifications to the original 4.1.2 release of TenDRA are subject to the following copyright:
Copyright (c) 2002, 2003, The TenDRA Project
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
All source code from the original 4.1.2 release of TenDRA and prior are subject to the following copyright:
Crown Copyright (c) 1997, 1998
This TenDRA(r) Computer Program is subject to Copyright
owned by the United Kingdom Secretary of State for Defence
acting through the Defence Evaluation and Research Agency
(DERA). It is made available to Recipients with a
royalty-free licence for its use, reproduction, transfer
to other parties and amendment for any purpose not excluding
product development provided that any such use et cetera
shall be deemed to be acceptance of the following conditions:
(1) Its Recipients shall ensure that this Notice is
reproduced upon any copies or amended versions of it;
(2) Any amended version of it shall be clearly marked to
show both the nature of and the organisation responsible
for the relevant amendment or amendments;
(3) Its onward transfer from a recipient to another
party shall be deemed to be that party's acceptance of
these conditions;
(4) DERA gives no warranty or assurance as to its
quality or suitability for any purpose and DERA accepts
no liability whatsoever in relation to any use to which
it may be put.
The installers/power and it's subdirectories are subject to the following copyright:
Copyright (c) 1996 Open Software Foundation, Inc.
All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided
that the above copyright notice appears in all copies and that both the
copyright notice and this permission notice appear in supporting
documentation.
OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE.
IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
The lib/apis/motif1.2 and it's subdirectories are subject to the following copyright:
COPYRIGHT NOTICE
This program is the proprietary property of IXI Ltd, a subsidiary
of the Santa Cruz Operation (SCO). Use, reproduction, production
of amended versions and/or transfer of this program is permitted
PROVIDED THAT:
(a) This legend be preserved on any such reproduction and amended
version.
(b) Any recipient of such reproduction or amended version accept
the conditions set out in this legend.
IXI accepts no liability whatsoever in relation to any use to
which this program may be put and gives no warranty as to the
program's suitability for any purpose.
All rights reserved.
Copyright (c) 1995, 1996