Using Jelly

Jelly allows execution of your brainfuck program in three different modes:

Compiled mode runs significantly faster than interpreted mode as Jelly converts your brainfuck program to WebAssembly, which is compiled to native code on your browser. A moderate amount of optimizations are also performed before generating the WebAssembly code, resulting in one of the fastest web-based brainfuck execution speeds.

Interpreted mode allows for step-through debugging and memory inspection   modification. Jelly's advanced debugging features may be accessed by using this mode.

Interactive mode means that input and output are interleaved like the Unix terminal or Windows command prompt, and you may read output and send input to your brainfuck program while it is running. On the other hand, non-interactive mode requires that all input is prepared before starting execution and will only make any output visible after your program has terminated.

Unless you have large quantities of input or output to process, it is unlikely that your program will run significantly slower in interactive mode, so interactive mode is the recommended option to use.

To run your brainfuck program, simply type (or paste) your code in the code editor and click the "Run" button on the top menu after selecting the correct mode.

Debugging Features

Code may be paused at any time while running, by pressing the "Pause/Continue" button. Middle clicking on any brainfuck command character will toggle a breakpoint at that character (so that execution will pause just before that command).

While paused, the current memory array is displayed and is editable. To edit a memory cell, right click or double click inside the cell and type a new value. The cell will be updated once you click somewhere else.