CCBI — the Conforming Concurrent Befunge-98 Interpreter

CCBI, or the Conforming Concurrent Befunge-98 Interpreter, is an interpreter for the Funge-98 family of languages, with support for the older Befunge-93 standard as well.

Downloads

Pre-built binaries as well as the source code are available for download below. Note that many features of CCBI can be disabled or tweaked at build time, effecting performance tradeöffs. The binaries offered here have all features enabled and have Funge-Space and stack cell sizes equal to that of the native word: 32 bits on x86 and 64 bits on x86-64.

As an exception, the Windows binary does not have Unefunge and Trefunge support, due to DMD bug #3001 having been an issue when I was compiling these. Due to lack of interest (on my part in addition to anybody else's), this issue has not been rectified.

FileTypeSize (octets)Last modified
CCBI 2.1, x86 Windows binary7z archive235 0222014-12-29
CCBI 2.1, x86 Linux binaryxz-compressed tarball303 3042014-12-29
CCBI 2.1, x86-64 Linux binaryxz-compressed tarball305 3522014-12-29
CCBI 2.1 source codexz-compressed tarball109 8362014-12-29

Internals

CCBI is written in version 1.0 of the D programming language, a language which unfortunately died: as far as I know there are no active users. That may be the main reason for why I am no longer working on CCBI. I worked on Amber for some time in the hopes of writing the next major version of CCBI in it, but eventually my interest died down, alongside Amber development slowing down in general.

To build CCBI, you will want CMake, version 0.99.9 of Tango, and a D 1.0 compiler. The official one from DigitalMars is likely the easiest to get working nowadays, although it definitely won't result in the fastest binary. For best optimization LDC would be preferable, but the latest LDC version supporting D 1.0 is likely so old that getting it working would be somewhat of a hassle. GDC is similar, with the added caveat that I never used it to build CCBI myself, even "back in the day".

A curses library is also needed for some optional features, but is not mandatory.

Goals

My goals for CCBI were no less than the following:

The current (and likely final) state is as follows: