Skip to content
Thomas Jollans edited this page Aug 25, 2021 · 3 revisions

This wiki will collect user-level documentation for RFunge as well as relevant links to reference material.

Usage

rfunge 0.1.0
Funge-98 interpreter

USAGE:
    rfunge [FLAGS] <PROGRAM> [ARGS]...

FLAGS:
    -1, --unefunge    Unefunge mode
    -2, --befunge     Befunge mode
    -b, --binary      Binary mode (default)
    -u, --unicode     Unicode mode
    -I, --32bit       32-bit mode
    -L, --64bit       64-bit mode (default)
    -w, --warn        Enable warnings
    -h, --help        Prints help information
    -s, --sandbox     Run in sandbox / secure mode
    -V, --version     Prints version information

ARGS:
    <PROGRAM>    Funge-98 source to execute
    <ARGS>...    Arguments to pass to program

Running rfunge program.b98 normally works. With an unusual file extension, you may need to use rfunge -2 program to force Befunge mode. To use UTF-8 mode, pass -u.

Supported commands and fingerprints

Everything listed in the spec is supported, other than Trefunge (but including Unefunge and Concurrent Funge-98). There is no Befunge-93 emulation.

Several fingerprints are implemented, see Fingerprints.

Funge-98 specification

The spec is available from Chris Pressey (catseye) on GitHub and on his website.

Mirrors of a slightly older draft are provided by Tim Howe (vsync) and by Arthur O'Dwyer (ajo).

Other interpreters

There are many befunge (and sometimes unefunge/trefunge) interpreters out there. Some good classic interpreters known to work (at least with a bit of effort) on a modern Linux system:

  • FBBI by Chris Pressey, the original, but certainly not the best
  • rcFunge V2 by Michael H. Riley, a good interpreter with a lot of fingerprints. Some fingerprints don't work any more. Not the fastest.
  • cfunge by Arvid Norlander (VorpalBlade), probably the fastest and one of the best.
  • CCBI by Matti Niemenmaa (Deewiant), probably the highest-quality interpreter, and almost as fast as cfunge. Sadly written in a dead programming language (D 1.0).
  • PyFunge (download here) by Kang Seonghoon. Sadly written in a dead (but widely available) programming language (Python 2).

Honourable mention goes to jsFunge-98 by Purkka Koodari (live here), the best attempt to bring Befunge-98 to the web I've seen (at least before rfunge). JsFunge-98 is not complete and standards-compliant, but it is impressive nonetheless.

Funge++ a Funge-98 interpreter being written by Conlan Wesson in C++, also looks like a fairly good effort.

Clone this wiki locally