This is cfunge, a fast, small and standard conforming Befunge98 interpreter in C.
2009 May 03: 0.4.1 released. Major highlights in this release include tracking of exact bounds for Funge Space (option at compile time) and support for disabling some heavy parts of cfunge to reduce memory usage. Many bugs have been fixed as well.
2009 Mars 31: 0.4.0 released. This release add support for some more fingerprints (DATE and NCRS), speed up execution quite a bit, and fixes several bugs. Cfunge now needs cmake 2.6 to build.
2008 October 30: 0.3.3 released. Major changes include massive speed up for many common programs, and a few bug fixes (including fixing a rare crash bug).
2008 September 13: 0.3.2 released. Mostly bug fixes.
2008 September 06: 0.3.1 released. This release adds SOCK and SCKE fingerprints, plus makes the build system work with other compilers than GCC. It also fixes some small bugs.
2008 August 24: 0.3.0 released. In this release several new fingerprints have been added, many bugs fixed and existing code cleaned up. The new fingerprints are 3DSP, FING, FRTH, STRN and TERM.
2008 July 08: Alex Smith's C-INTERCAL FFI (foreign function interface) for Befunge (using cfunge) was completed today. For more information visit: http://code.eso-std.org/c-intercal/
2008 June 30: 0.2.1-pre2 released. This releases remove dependency on Bohem-GC, adds several fingerprings, doxygen docs and fixes some bugs. For download, look below!
2008 May 02: 0.2.1-pre1 released. This release adds more fingerprints, support for i, o and =, fixes some bugs, code cleanup and more. See below for download.
2008 March 19: 0.2.0 released. This release adds support for concurrency, fingerprints, a sandbox mode and more. Also several bug fixes.
2008 March 13: Initial release (cfunge 0.1.0)
Download (both source and binaries) are hosted on sourceforge.net: sourceforge.net
cfunge aims to be the fastest standard conforming Befunge-98 interpreter. As far as we know cfunge has reached that goal by now. There is the experimental
jitfunge, that JIT compiles the Befunge code but it is not an interpreter, nor is it anywhere near complete (as of 2008-12-29)
cfunge also aims to never crash. This may seem an odd statement, surely every software aims for that?
But cfunge aims to never crash on any input except possibly due to out of memory error
(and even then the "crash" should be "graceful", as in a message telling what happened).
Sadly it is common for other Funge interpreters to crash on obscure input (division by zero in some
fingerprint, not checking array bounds, and so on). cfunge has not yet reached the point of never crashing
but we are aiming for it.
cfunge is using bzr for version control. After installing bzr 0.92 or later run this command:
bzr branch http://rage.kuonet.org/~anmaster/bzr/cfunge/trunk
You can also browse the repository at http://bzr.kuonet.org/cfunge/trunk/files.
I can normally be reached on IRC (server irc.freenode.net channel #esoteric) (nick AnMaster).