Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

"replay-based" REPL for compiled languages

Project description

reple

Interactive REPL for executable-based software toolchains.

Ever wished you could have an interpreter for your executable-based compiled language toolchains? reple simulates an interpreter to create a REPL for you. Each time you enter a command, reple compiles and runs your program, printing out any new input.

The advantage to this approach is that reple only requires a simple config file to create a REPL for a new language or executable-based runtime system. If your language or runtime system is not available, adding it will likely only take a few minutes!

Installation

Just install the reple pip package.

[xiii@reple ~]$ pip3 install reple
[xiii@reple ~]$ reple.py -env cxx
> printf("Hello, World!\n");
Hello, World!

If you install the package locally, you might need to add ~/.local/bin to your path.

Running

To start an interactive REPL session, call reple.py with the title of a configuration file defined in the /configs directory.

[xiii@reple xiii]$ reple.py -env cxx
> printf("Hello, world!\n");
Hello, world!
> int x = 12;
> int y = x + 2;
> std::cout << y << std::endl;
14
>

Some more complicated runtimes, like MPI, may have optional runtime flags.

[xiii@reple home]$ reple.py -env mpicxx --rargs "-n 8"
> int rank, nprocs;
> MPI_Comm_rank(MPI_COMM_WORLD, &rank);
> MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
> printf("Hello, world! I'm %d/%d\n", rank, nprocs);
Hello, world! I'm 0/8
Hello, world! I'm 1/8
Hello, world! I'm 2/8
Hello, world! I'm 4/8
Hello, world! I'm 6/8
Hello, world! I'm 3/8
Hello, world! I'm 5/8
Hello, world! I'm 7/8
> 

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for reple, version 0.1.0.2
Filename, size File type Python version Upload date Hashes
Filename, size reple-0.1.0.2-py3-none-any.whl (12.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page