-
-
Notifications
You must be signed in to change notification settings - Fork 233
Alternatives
Doug Binks edited this page Sep 20, 2024
·
51 revisions
We believe RCC++ is a good overall standard C++ approach to runtime editing of code which is easy to use, available across a number of platforms and relatively easy to port. There are however a few alternative implementations for compiling C++ at runtime.
- Live++ from Stefan Reinalter a generic tool for live coding of C/C++ applications is available, Live++ supports MSVC, Clang, LLD, Windows, Xbox Series X|S and PlayStation 5. Live++ ships with UE 4.22 and is free for all UE4 developers.
- Recode; a Visual Studio plugin developed by an ex-Crytek colleague.
- Hot Reload from Unreal Engine 4.
- The JUCE C++ cross-platform framework has a project management tool called The Projucer which has an Instant Compilation Environment engine (the ICE engine).
- C++ Hot Reload advertises a real time multi-platform tool for PC/Mac, iOS, Android, embedded devices and consoles.
- Visual Studio has Edit & Continue, but this has issues with doing much of any reasonable scope.
- RCC++ (you're here).
- blink - A tool which allows you to edit source code of any C++ project live at runtime BSD- 2-clause licensed from Patrick Mours
- cr.h A Simple C Hot Reload library open source C implementation from Danny Grein, with code on Github
- There's a plugin for Visual Studio called Alcantarea, now open source on Github.
- The author of Alcantarea, @i-saint, has an open source dynamic patcher for Runtime C++ editing https://github.com/i-saint/DynamicPatcher
- An RCC++ implementation has been added to the Urho3D permissively licensed game engine on the RCCpp branch.
- Runtime Compiled C++ in Maya tutorial and code from Siew Yi Liang shows how to develop a live C++ coding Maya plugin.
- A simple single file live code project exists for openFrameworks https://github.com/mazbox/livecode-cplusplus
- CToy, an interactive C99 coding environment based on TCC.
- CERN has a JIT C++ compiler made using Clang/LLCM called Cling.
- Project Jupyter, a multi-language interactive computing environment now has an interactive C++ workflow based on Cling.
- Read-Compile-Run-Loop - tiny and powerful interactive C++ compiler (REPL)
- Qt Interactive Coding - a simple cross-platform library to automate the process of compilation and execution of C++ code from within a running Qt application from @martinky
- Interactive C a simple interactive programming example in C.
- jet-live - c++ hot code reload for linux and macos
- Project Island - Project Island is an experimental Vulkan renderer/proto-engine for Linux, written in C/C++. Island has hot-reloading for c/c++ application code, GLSL shader code, and renderer's own core modules.
- Don Williamson mentions that Splinter Cell had live editing of C++ code in this article on reflection.
- the Bitsquid engine has hot reloading of game dlls.
- The Molecular Engine has implemented a similar system.
- Casey Muratori's Handmade Hero's project shows a simple and powerful method for runtime compilation of C code (which should also work with C++) https://www.youtube.com/watch?v=xrUSrVvB21c.
- Chris Wellons has been blogged about both using libraries for hotloading of C on Linux, code on Github and hotpatching C functions.
- Michael Chourdakis wrote and article on Code Project about HotPatching.
- Randy Gaul discusses Runtime Compiled C++ with regards to writing game engines, with a working example on Github.
- Tomasz Stachowiak discusses how to directly load .obj files on Windows, and how to manually link DLLs at runtime
- Niklas Gray discusses how The Machinery handles hot reloading of plugin DLLs.
- Timothy Lottes posted outlining his current Runtime Edit Reload Continue process link broken.
- Tim Gfrerer author of Project Island experimental Vulkan renderer/proto-engine with hot reloading wrote about Callbacks and Hot-Reloading: Must JMP through extra hoops.
- Easy::jit is a just-in-time compiler for C++ using LLVM by Juan Manuel Martinez Caamaño jmmartinez and Serge Guelton (serge_sans_paille). This doesn't allow full source changes, only the ability to compile in parameters to functions.