| © 1998 IRISA / INRIA - University of Rennes 1 | Version |
Tempo is an partial evaluator for C programs. The system consists of:
Note that using Tempo with the most recent versions of SML will result in
a "bad magic number" error. To correct the problem, please use Version
110, Patch 7 (110.0.7). To compile this version of SML it is necessary to
use an older version of gcc, such as gcc 2.95.
The following tools must be installed on the machine for doing runtime specialization:
gcc (or a
slightly modified version of lcc)
gmake
objdump
It must be noted though that the system performs poorly on PC/Linux as we are using a very old and inefficient version of New Jersey SML. However, only analysis and post-processing are affected, not compile-time nor run-time specialization themselves.
The distribution for, e.g., SunOS 4 contains the following directories.
where ARCH and MACHINE are among one of the following couples.
| ARCH | MACHINE |
| SunOS-4 | sparc-sun-sunos4 |
| SunOS-5 | sparc-sun-sunos4 |
| Linux-2 | i386-linux |
There is no special reason why there are two different names for the same thing, just history of existing systems...
The distribution files are named tempoN.NNN_ARCH.tar.gz. There is one such file for each ARCH platform:
SunOS-4
SunOS-5
Linux-2
Each distribution contains all the required files. In order to install Tempo for different platforms at the same time, follow the installation procedure starting from the same root directory; appropriate sub-directories will be created.
The installation process is as follows:
mv tempoN.NNN_ARCH.tar.gz INSTALL_DIR
cd INSTALL_DIR
gunzip tempoN.NNN_ARCH.tar.gz
tar xf tempoN.NNN_ARCH.tar
tempo script
in the directory INSTALL_DIR/tempo/bin so
that SML_PATH specifies the path used to
invoke SML. This should include both the directory containing SML and
the SML command itself, not just the directory.
You can now start
Tempo by running the command tempo.
To view the color annotated files produced by Tempo under certain versions of Emacs (19.34 and potentially other versions including XEmacs, see the detailed section for more details), it is necessary to load the format-patch elisp file from the .emacs file:
Two problems are known to occur when using Emacs to view
".color" files (MIME Enriched format)
generated by Tempo:
Wrong type argument" error (or in some
cases loading
but displaying without certain color annotations).
This section describes the proper installation procedures for circumventing these problems.
Loading of color files may fail with a "Wrong type
argument" error; in some cases loading may succeed but
without
displaying certain color annotations.
There exist a temporary patch to fix this for certain versions of Emacs:
To use the patch, in the following line in your .emacs file.
(load "INSTALL_DIR/tempo/emacs/format-patch")
(load "INSTALL_DIR/tempo/emacs/format-patch-xemacs")
The patch is necessary because the enriched mode (used for displaying enriched MIME color files under Emacs) was updated between versions 19.30 and 19.34 of Emacs. The updated version no longer supports multiple color overlays for the same text. The support of multiple overlays (and the selection of "innermost" as the visible overlay for a piece of text) worked well with a recursive-descent way of generating colored files. For this reason, Tempo generates color files that have overlapping color overlays. This causes some versions of Emacs to generate an error when the color file is loaded, or simply to not display the appropriate colors.
The patch consists of a single elisp file that contains the appropriate functions from the standard encriched mode from version 19.30 of Emacs. When the file is loaded, the appropriate functions are replaced with the compatible, older (and more tolerant) versions. The patch is needed only as long as the the color files generated by Tempo have overlapping overlay annotations. Most color files don't and the remaining color files will be generated correctly Real Soon Now.
The color files generated by Tempo are sometimes inadvertently filled: all spaces and indentation is reduced to single spaces and lines are wrapped as if they were ordinary text (rather than part of a program), making the program unreadable.
The (temporary) solution is to disable automatic
filling. For this,
add the following line in your .emacs file.
(setq enriched-fill-after-visiting nil)
To restore automatic filling, do:
(setq enriched-fill-after-visiting 'ask)
tempo-talk@irisa.fr
tempo@irisa.fr
http://compose.labri.fr
tempo