3
3
A standard-conforming Funge-98 interpreter.
4
4
5
5
### Usage
6
-
7
- ` jfunge [file] [--3d] [--version] [--license] `
8
-
9
- | argument | usage |
10
- | ----------------------| ---------------------------------------------------------------------------------------------------------------------------------|
11
- | ` file ` | The file to load into the interpreter |
12
- | ` --3d ` | Enable 3D (Trefunge) mode. By default, the interpreter emulates 2D Befunge for compatibility. |
13
- | ` --version ` | Prints the current program version, along with the handprint and version given by befunge's y instruction |
14
- | ` --license ` | Prints the license of the program. |
15
- | ` --maxiter <number> ` | The maximum number of iterations the program can run for. Anything less than 1 will run until the program terminates naturally. |
6
+ ```
7
+ usage: jfunge [-f <file> | --help | --license | --version] [-i <file>]
8
+ [--maxiter <iterations>] [-o <file>] [--syscall] [-t] [--trefunge]
9
+ JFunge, a Funge98 interpeter for java.
10
+ -f,--file <file> The file to load into the interpreter at the origin
11
+ on startup.
12
+ --help Displays this help page
13
+ -i,--readperm <file> Enables read access to the specified file or
14
+ directory (i instruction). Specify / to allow read
15
+ access to every file on the system (dangerous). Can
16
+ specify multiple files/folders.
17
+ --license Prints the license of the program.
18
+ --maxiter <iterations> The maximum number of iterations the program can
19
+ run for. Anything less than 1 will run until the
20
+ program terminates by itself. Default is unlimited.
21
+ -o,--writeperm <file> Enables write access to the specified file or
22
+ directory (o instruction). Specify / to allow write
23
+ access to every file on the system (dangerous). Can
24
+ specify multiple files/folders.
25
+ --syscall Enables the syscall feature (= instruction). This
26
+ is a very dangerous permission to grant, it can
27
+ call any arbitrary program on your system.
28
+ -t,--concurrent Enables the Concurrent Funge extension (t
29
+ instruction). Buggy programs can potentially
30
+ forkbomb the interpreter.
31
+ --trefunge Enable 3D (Trefunge) mode. By default, the
32
+ interpreter emulates 2D Befunge for compatibility.
33
+ --version Prints the current program version, along with the
34
+ handprint and version given by befunge's y
35
+ instruction.
36
+ ```
16
37
17
38
### Compatibility
18
39
@@ -30,13 +51,27 @@ The interpreter supports the following Funge-98 specification extensions:
30
51
- Optional Trefunge mode (experimental)
31
52
32
53
Additionally, the following fingerprints are currently supported (more to come):
33
- - [ MODE] ( https://catseye.tc/view/funge-98/library/MODE.markdown )
34
- - [ MODU] ( https://catseye.tc/view/funge-98/library/MODU.markdown )
35
- - [ NULL] ( https://catseye.tc/view/funge-98/library/NULL.markdown )
36
- - [ ROMA] ( https://catseye.tc/view/funge-98/library/ROMA.markdown )
54
+ - [ 3DSP] ( http://rcfunge98.com/rcsfingers.html#3DSP )
55
+ - [ FPSP] ( http://rcfunge98.com/rcsfingers.html#FPSP )
56
+ - [ HRTI] ( ./docs/catseye/library/HRTI.markdown )
57
+ - [ MODE] ( ./docs/catseye/library/MODE.markdown )
58
+ - [ MODU] ( ./docs/catseye/library/MODU.markdown )
59
+ - [ NULL] ( ./docs/catseye/library/NULL.markdown )
60
+ - [ ORTH] ( ./docs/catseye/library/ORTH.markdown )
61
+ - [ PERL] ( ./docs/catseye/library/PERL.markdown )
62
+ - [ REFC] ( ./docs/catseye/library/REFC.markdown )
63
+ - [ ROMA] ( ./docs/catseye/library/ROMA.markdown )
64
+ - [ TOYS] ( ./docs/catseye/library/TOYS.markdown )
65
+ - [ TURT] ( ./docs/catseye/library/TURT.markdown )
66
+
67
+ ### Version Release Checklist
68
+ - Update the version number inside the [ pom] ( ./pom.xml )
69
+ - Update the version string and FUNGE_VERSION inside [ Globals] ( ./src/main/java/com/falsepattern/jfunge/Globals.java )
70
+ - Create a new git tag with the same version number, and push it to master
71
+ - Never push tags outside master!
37
72
38
73
### References
39
74
40
75
- [ Esolang wiki article of Funge-98] ( https://esolangs.org/wiki/Funge-98 )
41
- - [ Official funge98 language specification] ( https://github.com/catseye/Funge-98/blob/master /doc/funge98.markdown)
76
+ - [ Official funge98 language specification] ( ./docs/catseye /doc/funge98.markdown)
42
77
- [ Mycology Befunge-98 test suite] ( https://github.com/Deewiant/Mycology )
0 commit comments