Rc/Funge-98
This website is the official website of Rc/Funge-98 and is back after a
long absence. I am the original author of Rc/Funge-98, which was one of
the first fully-compliant Funge-98 implementations.
After a long diversion into other hobbies, I have decided to once again
work on my Rc/Funge-98 system.
News:
December 19, 2008
- Updated Official specification to include UNIX
- Posted diagnostic for UNIX
- Posted 2.02.00 of Rc/Funge98 V2
November 25, 2008
- Updated Official specification for WIND extension
- Posted diagnostic for WIND
- Posted 1.27 of Rc/Funge98 V1
- Posted 2.01.03 of Rc/Funge98 V2
November 25, 2008
- Updated Official specification for FRTH extension
- Posted 1.26 of Rc/Funge98 V1
- Posted 2.01.02 of Rc/Funge98 V2
November 17, 2008
- Posted 1.25 of Rc/Funge98 V1
- Posted 2.01.01 of Rc/Funge98 V2
October 21, 2008
- Updated IPMD test to test y in each mode and with concurrent funge
October 20, 2008
- Updated manual for V2 to include SGNE
- Updated Official specification for RCS-defined fingerprints
- Added test for IPMD extension
- Posted V2.01.00
October 9, 2008
- Updated V2 beta
- Added test for SGNE extension
- Added test for SGNL extension
October 6, 2008
- Updated V2 beta
- Updated V2 Manual
- Updated official RCS fingerprint specs
- Added test for FORK extension
October 2, 2008
- Updated V2 beta
- Posted test files for testing dynamic VM with Mycology
September 23, 2008
- Posted 1.24
- Updated V2 beta
- Posted TRDS addendum documentation
September 15, 2008
- Posted 1.23 to fix bugs in latest Mycology results
- Posted new beta of V2 to fix same bugs
- Posted trds.f98 in tests section
September 11, 2008
- Updated specs for FING
- Updated FING test program
- Updated V2 to conform to FING specs
September 10, 2008
- Updated V1 to 1.22
- Updated V2 beta
September 09, 2008
- Beta version of Rc/Funge-98 V2 has been posted
September 05, 2008
- dyfp.f98 and dyfp.fl have been updated to check for loading a
fingerprint in the dynamic fingerprint VM.
- Dynamic fingerprint VM has now been tested with Mycology and
it runs clean.
August 12, 2008
- Version 1.16 is to be the last major upgrade to the 1.x branch
of Rc/Funge-98. Bug fixes will still be done on the 1.x branch
but no new fingerprints or new capabilites will be added to this
branch.
- The 1.x source has undergone a major rewrite of the underlying
Rc/Funge engine that will allow for some exciting new capabilites.
This new version will be titled Rc/Funge-98 V2 which will be
considered a different project than the 1.x branch. Only the 2.x
branch will receive new fingerprints or major upgrades.
Capabilites of the new Rc/Funge-98 V2 will be posted shortly
Features:
- Funge-98 and Funge-93 modes
- Supports Unefunge, Befunge, and Trefunge
- Concurrent Funge, 't' command is implemented
- 'i', 'o', and '=' commands implemented
- Can map funge space to screen, with command tracing
- Full command tracing with stack output
- Fixed memory model for speed
- Dynamic memory model for large dimensions
- Mini-Funge for user definable A-Z functions
- Integrated debugger
- Full source code (in C) included
- Passes original Cat's Eye diagnostic suite
- Passes Mycology diagnostic suite
Rc/Funge-98 defined fingerprints
Official specification for RCS-defined fingerprints
Addendum to TRDS
Rc/Funge-98 V2
Rc/Funge-98 V2 consists of a major restructuring of the underlying Rc/Funge
engine. This restructuring allows for some exciting new capabilities for
Rc/Funge-98:
- Funge/Multiverse - With this new capability Rc/Funge-98 is capable
of running more than just a single Funge VM, or universe and allows
for any number of universes to exist and run together. A new
fingerprint, MVRS, has been added that allows data to be copied from
one universe to another and even allows IPs to travel from one universe
to another.
Funge/Multiverse allows each VM to be completeley self-contained! One
VM can be running Befunge while another is running Unefunge and yet
another running Trefunge. Each VM can also be running its own
language variant, one can be running Funge/98 while another runs
Funge/93 and yet another runs some other language variant.
- Object/Funge - A new fingerprint, FOBJ has been added to allow for
semi-object-oriented funge. Each object is its own VM and may
contain any number of method handlers. Methods executed on a
Funge object take just 1 tick from the perspective of the calling IP.
- Mini-Funge has been scrapped and replaced with an all new dynamic
fingerprint engine. Now fingerprints have the full power of the
Rc/Funge VM at their fingertips. All commands are now available to
fingerprints, including i, o, =, t, fingerprint loading and more.
- Remote/Funge - A new fingerprint FRPC has been added that allows
a funge program to contact and execute funge procedures on remote
funge servers.
Download the Rc/Funge-98 V2 sources
Manual for Rc/Funge-98 V2
Changes:
2.02.00 December 19, 2008
2.01.03 November 25, 2008
2.01.02 November 25, 2008
- Altered FRTH:L,P to match updated spec
2.01.01 November 17, 2008
- Fixed off by one error in month from y command
2.01.00 October 20, 2008
Beta October 6, 2008
- Added fingerprint FORK
- Added fingerprint SGNL
Beta October 2, 2008
- TRDS now works correctly in a dynamic VM
- Added -f2 to allow dynamic VM to run in BeFunge mode
Beta September 23, 2008
- TRDS now works the way it is supposed to
Beta September 15, 2008
- Removed debugging output from SUBR
- Fixed bug in BASE:N
- Fixed bug in FILE:C
- Fixed placement bugs in TERM
- Fixed input buffering for & and ~ commands
- Fixed bug in BASE:I
- Fixed bug in &
- Fixed TURT to not issue X commands if it cannot connect to an X server
- Fixed y so that interpreter command line arguments are not included
- X windows commands are now disabled by default
- -ux has been added to enable X windows commands
- Restructured how PERL works
Beta September 11, 2008
- Conforms to clarified FING specs
Beta September 10, 2008
- Fixed bug in single-line wrap function
- Fixed bug in TOYS:Z when running in Befunge mode
Rc/Funge-98 V1
Below is the distribution package for Rc/Funge-98 V1.
Most of the package is in faily standard c files and should
be compilable on most Unix-like systems.
Download the Rc/Funge-98 sources
Manual for Rc/Funge-98 V1
Changes:
1.27 November 25, 2008
1.26 November 25, 2008
- Altered FRTH:L,P to match updated spec
1.25 November 17, 2008
- Fixed off by one error in month from y command
1.24 September 23, 2008
- TRDS now works like it is supposed to! Passes mycotrds test
1.23 September 15, 2008
- Removed debugging output from SUBR
- Fixed bug in BASE:N
- Fixed bug in FILE:C
- Fixed placement bugs in TERM
- Fixed input buffering for & and ~ commands
- Fixed bug in BASE:I
- Fixed bug in &
- Fixed TURT to not issue X commands if it cannot connect to an X server
- Fixed y so that interpreter command line arguments are not included
- X windows commands are now disabled by default
- -ux has been added to enable X windows commands
- Restructured how PERL works
1.22 September 10, 2008
- Fixed bug in single-line wrap function
- Fixed bug in TOYS:Z when running in Befunge mode
1.21 August 29, 2008
1.20 August 25, 2008
- Fixed bug in ;blocks;
- Fixed bug in file loader for bytes greater than 127
- Fixed several bugs in DATE
- Fixed funge-space access to always use storage offset
- Added A and O to SUBR
1.19 August 16, 2008
- Fixed an error in the translation matrix code
1.18 August 13, 2008
- fixed several bugs in the 3d vector functions and 3DSP
1.17 August 13, 2008
- Fixed bug in y command when using as pick
1.16 August 11, 2008
- Fixed bug in G command in EMEM
- Fixed bug in D command in STCK
- Fixed bug in K command in STCK
- Fixed bug in G command in STCK
1.15 August 11, 2008
- Fixed intermittant bug in @
- Fixed bug in B command in EXEC
- Fixed bug in G command in EXEC
- Fixed but in Y command in FING
- Changed vector ordering in INDV
- Added missing D command to FILE
1.14 August 8, 2008
- Added samples directory back into distribution
- Fingerprint DATE added
1.13 August 5, 2008
- Hardcoded limit on number of IPs has been removed
- Additional macro commands were added to MACR
1.12 August 2, 2008
- Fingerprint SMEM added
- Fingerprint SMPH added
1.11 August 1,2008
- Implemented new Dynamic mode memory manager wich is MUCH faster
- Default mode is now Dynamic instead of fixed
- Dynamic memory grows as needed
- -c and -r are now irrelevant and have been removed
- Fixed wrap around bug in all 3 dimensions
- Fixed bug in TOYS G command
- Fingerprint MSGQ added
- Fingerprint REXP added
1.10 July 30,2008
- Error conditions in STRN now reflect
- Fingerprint EMEM added
- Fingerprint EXEC added
- Fingerprint FING added
- Fingerprint LONG added
- Fingerprint MACR added
- Fingerprint STCK added
- Fingerprint SETS added
- Fingerprint TRGR added
- Fingerprint JSTR added
1.09 July 26,2008
- Many bugs have been fixed
- added to -h to command line options
- added help command in debugger
- Changed to dynamicaly allocated stack
RCS Test Software
These programs test various extensions:
These test programs allow Mycology to be used to test the dynamic
fingerprint VM. Instructions on how to convert Mycology files for use
as dynamic fingerprints are included in the test files.
Official Funge-98 Specification
Funge-98 was originally defined by Chris Pressey of Cat's Eye Technologies.
As of this time the Cat's Eye Technologies website has gone dark and the
original Funge-98 website is no more. Below is a copy of the original
specification published by Cat's Eye Technologies:
Original Cat's Eye Funge-98 Specification
Here also is Cat's Eye's original diagnostics
Funge-98 tutorial
Here is my beginning work on a tutorial for Funge-98. As I write each
part of the tutorial, it will be posted here, so check back often
Part 1, Working with numbers
Part 2, Working Characters, more on numbers
Part 3, Beyond a single dimension
Links
Cat's Eye Technologies
Matti Niemenmaa site for ccbi and Mycology
AnMaster's Funge related site
Jesse van Herk's Funge related site
Yet Another Befunge Page
Contact
I may be contacted at: mikehriley <AT> hotmail <DOT> com