Skip to content

FalsePattern/JFunge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JFunge

A standard-conforming Funge-98 interpreter.

Usage

usage: jfunge [--env] [-f <file> | --help | --license | --version]  [-i <file>]
       [--maxiter <iterations>] [-o <file>] [--perl] [--sock] [--syscall] [-t]
       [--trefunge]
JFunge, a Funge98 interpeter for java.
    --env                    Allows the interpreter to access the environment
                             variables of the host system.
 -f,--file <file>            The file to load into the interpreter at the origin
                             on startup.
    --help                   Displays this help page
 -i,--readperm <file>        Enables read access to the specified file or
                             directory (i instruction). Specify / to allow read
                             access to every file on the system (dangerous). Can
                             specify multiple files/folders.
    --license                Prints the license of the program.
    --maxiter <iterations>   The maximum number of iterations the program can
                             run for. Anything less than 1 will run until the
                             program terminates by itself. Default is unlimited.
 -o,--writeperm <file>       Enables write access to the specified file or
                             directory (o instruction). Specify / to allow write
                             access to every file on the system (dangerous). Can
                             specify multiple files/folders.
    --perl                   Enable the PERL fingerprint. This requires the
                             working directory of the interpreter to be
                             writable, and is also an arbitrary code execution
                             risk.
    --sock                   Enable the SOCK and SCKE fingerprints. This allows
                             the program to open a socket and listen for
                             connections, as well as connect to external hosts.
                             This is a very dangerous permission to grant, it
                             can potentially allow remote code execution.
    --syscall                Enables the syscall feature (= instruction). This
                             is a very dangerous permission to grant, it can
                             call any arbitrary program on your system.
 -t,--concurrent             Enables the Concurrent Funge extension (t
                             instruction). Buggy programs can potentially
                             forkbomb the interpreter.
    --trefunge               Enable 3D (Trefunge) mode. By default, the
                             interpreter emulates 2D Befunge for compatibility.
    --version                Prints the current program version, along with the
                             handprint and version given by befunge's y
                             instruction.

Compatibility

The interpreter's handprint is 0x74708578 ("JFUN")

The version number given to befunge is major * 256 * 256 + minor * 256 + patch, where major, minor, patch are the 3 primary version numbers in the standard semver format.

The interpreter supports the following Funge-98 specification extensions:

  • The entire Befunge base syntax (tested against Mycology and Mycorand)
  • Buffered IO
  • File IO with i and o
  • System calls with = (paradigm 1, system()-like)
  • Concurrency (pseudo-multithreading) with t
  • Optional Trefunge mode (experimental)

Additionally, the following fingerprints are currently supported (more to come):

Version Release Checklist

  • Update the version number inside the pom
  • Update the version string and FUNGE_VERSION inside Globals
  • Create a new git tag with the same version number, and push it to master
  • Never push tags outside master!

References

About

A standard-conforming Funge-98 interpreter.

Resources

License

Unknown, GPL-3.0 licenses found

Licenses found

Unknown
LICENSE
GPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy