-
Notifications
You must be signed in to change notification settings - Fork 0
Home
This wiki will collect user-level documentation for RFunge as well as relevant links to reference material.
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
.
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.
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).
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.