https://github.com/llnl/typeforge
Typeforge is a tool for type refactoring of C/C++ programs. It enables users to change the type of variables and determines all type-dependent changes that are necessary to ensure that the generated code is again a correct program.
https://github.com/llnl/typeforge
cpp
Last synced: 11 months ago
JSON representation
Typeforge is a tool for type refactoring of C/C++ programs. It enables users to change the type of variables and determines all type-dependent changes that are necessary to ensure that the generated code is again a correct program.
- Host: GitHub
- URL: https://github.com/llnl/typeforge
- Owner: LLNL
- Created: 2019-12-22T21:13:29.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-11T00:09:14.000Z (about 6 years ago)
- Last Synced: 2025-04-05T18:11:27.376Z (about 1 year ago)
- Topics: cpp
- Language: C++
- Homepage:
- Size: 362 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Typeforge
=========
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.
# Getting Started
Typeforge uses [ROSE Compiler](http://rosecompiler.org/).
The following instructions assume that [ROSE is installed](https://github.com/rose-compiler/rose/wiki/How-to-Set-Up-ROSE) 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.
# Getting Involved & Contributing
Github issue tracking and pull request will be leveraged to facilitate high quality contributions.
All contribution must be made under BSD-3 license.
## Reporting Issues
We will provide an issue reporting template and additional guideline soon.
## Making a Pull Request
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.
# Authors
Typeforge was developed at LLNL by:
* Markus Schordan
* Tristan Vanderbruggen
* Nathan Pinnow
# Publications
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.
# Release
Typeforge is distributed under the terms of the BSD-3 license. See [NOTICE](NOTICE) for details.
SPDX-License-Identifier: BSD-3
LLNL-CODE-799937