All Projects → onqtam → Rcrl

onqtam / Rcrl

Licence: mit
Read-Compile-Run-Loop: tiny and powerful interactive C++ compiler (REPL)

Programming Languages

cpp
1120 projects

Projects that are alternatives of or similar to Rcrl

Cr
cr.h: A Simple C Hot Reload Header-only Library
Stars: ✭ 845 (+154.52%)
Mutual labels:  live-coding, hot-reload
Awesome Live Reloading
A curated collection of live-reloading / hot-reloading / watch-reloading tools for different languages and frameworks.
Stars: ✭ 396 (+19.28%)
Mutual labels:  live-coding, hot-reload
Shadow Cljs
ClojureScript compilation made easy
Stars: ✭ 1,774 (+434.34%)
Mutual labels:  repl, hot-reload
Jet Live
c++ hot code reload for linux and macos
Stars: ✭ 283 (-14.76%)
Mutual labels:  live-coding, hot-reload
Cloudmailru
Total Commander plugin for cloud.mail.ru service
Stars: ✭ 313 (-5.72%)
Mutual labels:  dll
Byebug
Debugging in Ruby 2
Stars: ✭ 3,202 (+864.46%)
Mutual labels:  repl
Flow.launcher
Launch apps with greater control, search files effortlessly and extend features with community plugins. Fast and fluid productivity tool of choice that helps your workflow.
Stars: ✭ 288 (-13.25%)
Mutual labels:  productivity
Lev
The complete REPL & CLI for managing LevelDB instances.
Stars: ✭ 295 (-11.14%)
Mutual labels:  repl
Todocheck
A static code analyzer for annotated TODO comments
Stars: ✭ 322 (-3.01%)
Mutual labels:  productivity
Omnifocus
Scripts for OmniFocus
Stars: ✭ 316 (-4.82%)
Mutual labels:  productivity
Melonloader
The World's First Universal Mod Loader for Unity Games that is Compatible with both Il2Cpp and Mono
Stars: ✭ 306 (-7.83%)
Mutual labels:  dll
Sharpneedle
Inject C# code into a running process
Stars: ✭ 301 (-9.34%)
Mutual labels:  dll
Dotnet Sdk
百度AI开放平台 .Net SDK
Stars: ✭ 312 (-6.02%)
Mutual labels:  dll
Brewlet
The missing menulet for brew.sh: keeping your packages up-to-date, and your system secure.
Stars: ✭ 298 (-10.24%)
Mutual labels:  productivity
Pomodorologger
Pomodoro Logger 🕤 -- When a time tracker meets Pomodoro and Kanban board
Stars: ✭ 316 (-4.82%)
Mutual labels:  productivity
Thirsty
Reminds you to drink water - on your terminal.
Stars: ✭ 296 (-10.84%)
Mutual labels:  productivity
Quack
🐤 A multi-paradigm programming language with gradual and duck typing that targets PHP and JS
Stars: ✭ 309 (-6.93%)
Mutual labels:  repl
Eureka
💡 CLI tool to input and store your ideas without leaving the terminal
Stars: ✭ 316 (-4.82%)
Mutual labels:  productivity
Nb
CLI and local web plain text note‑taking, bookmarking, and archiving with linking, tagging, filtering, search, Git versioning & syncing, Pandoc conversion, + more, in a single portable script.
Stars: ✭ 3,846 (+1058.43%)
Mutual labels:  productivity
Superdirt
Tidal Audio Engine
Stars: ✭ 309 (-6.93%)
Mutual labels:  live-coding

Read-Compile-Run-Loop: tiny and powerful interactive C++ compiler (REPL)

Windows status Linux Status Language License

RCRL is a tiny engine for interactive C++ compilation and execution (implemented in just a few source files - src/rcrl) and works on any platform with any toolchain - the main focus is easy integration. It supports:

  • mixing includes, type/function definitions, persistent variable definitions and statements meant only for function scope
  • interacting with the host application through dll-exported symbols (after linking to it)

Watch this youtube video to see it in action with commentary:

youtube video showcase

It is an elegant alternative to cling (and other projects that are built on top of it).

I gave a 30 minute talk about it at CppCon 2018 showing it integrated in a small but functional game engine:

youtube cppcon video showcase

This repository is a demo project with GUI but the RCRL engine can be integrated in any way with host applications - code may be submitted even from external editors with full syntax highlighting and code completion! The goal was not to make a one-size-fits-all solution because that is hardly possible - but to demonstrate how the core of RCRL can be integrated.

Checkout this blog post if you are curious how to use it, how it works and how to integrate it.

A fork of RCRL using libclang

@Islam0mar has been developing the project further in his fork where libclang is used, along with a few other changes.

Building

The demo is tested on Windows/Linux/MacOS and uses OpenGL 2.

You will need:

  • CMake 3.0 or newer
  • A C++14 capable compiler (tested with VS 2015+, GCC 5+, Clang 3.6+)

The repository makes use of a few third party libraries and they are setup as submodules of the repo (in src/third_party/). Here are the steps you'll need to setup, build and run the project after cloning it:

  • git submodule update --init - checks out the submodules
  • cmake path/to/repo - call cmake to generate the build files
  • cmake --build . - compiles the project
  • the resulting binary is host_app in bin of the build folder
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].