Typeforge is a tool for type refactoring of C/C++ programs. It enables users to change the type of any variable and automatically determines all necessary additional (i.e. type-dependent) changes. It guarantees the syntactic and semantic correctness of the generated code. Generated code will always compile.
Typeforge uses ROSE Compiler.
The following instructions assume that ROSE is installed and the rose-config
tool is on your path.
You might also need to install autoconf and libtool (for Ubuntu: sudo apt install autoconf libtool
).
You can then follow these instructions to install Typeforge:
git clone https://github.com/LLNL/typeforge.git
cd typeforge
./build
./configure
make -j
sudo make install
typeforge --version
If you do not have administrative priviledge, add --prefix=/path/to/install/typeforge
to the configure
command.
Github issue tracking and pull request will be leveraged to facilitate high quality contributions. All contribution must be made under BSD-3 license.
We will provide an issue reporting template and additional guideline soon.
Pull requests must be made toward the develop
branch from a feature/issue branch (meaning that it has a meaningful feature name or GH issue number).
We will provide additional guidelines soon.
Typeforge was developed at LLNL by:
- Markus Schordan
- Tristan Vanderbruggen
- Nathan Pinnow
Typeforge is used by research projects aimed at changing how C/C++ types are used in existing applications.
A list of publication will be provided soon.
Typeforge is distributed under the terms of the BSD-3 license. See NOTICE for details.
SPDX-License-Identifier: BSD-3
LLNL-CODE-799937