view interps/cfunge/cfunge-src/doc/cfunge.1 @ 9071:581584df6d82

<fizzie> revert 942e964c81c1
author HackBot
date Sun, 25 Sep 2016 20:17:31 +0000
parents 859f9b4339e6
children
line wrap: on
line source

.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
.TH CFUNGE "1" "July 2009" "cfunge 0.9.0" "User Commands"
.SH NAME
cfunge \- A fast Befunge93/98/109 interpreter in C
.SH SYNOPSIS
.B cfunge
[\fIOPTIONS\fR] [\fIFILE\fR] [\fIPROGRAM OPTIONS\fR]
.SH DESCRIPTION
A fast Befunge interpreter in C
.TP
\fB\-b\fR
Use fully buffered output (default is system default for stdout).
.TP
\fB\-E\fR
Show non\-fatal error messages, fatal ones are always shown.
.TP
\fB\-F\fR
Disable all fingerprints.
.TP
\fB\-f\fR
Show list of features and fingerprints supported in this binary.
.TP
\fB\-h\fR
Show this help and exit.
.TP
\fB\-S\fR
Enable sandbox mode (see README for details).
.TP
\fB\-s\fR standard
Use the given standard (one of 93, 98 [default] and 109).
.TP
\fB\-t\fR level
Use given trace level. Default 0.
.TP
\fB\-V\fR
Show version and copyright info and exit.
.TP
\fB\-v\fR
Show version and build info and exit.
.TP
\fB\-W\fR
Show warnings.
.SH "SANDBOX MODE"
Sandbox mode prevents Funge programs from doing "harmful" things, this includes,
but is not limited to:
.TP
Any file or filesystem IO is forbidden.
.TP
The list of environment variables the program can see in y are restricted.
.TP
Non-safe fingerprints can not be loaded (this includes network and file system access as well as other things).
.SH "IMPLEMENTATION DEFINED BEHAVIOUR"
The Befunge98 standard leaves some things undefined, here is what cfunge do for some of those cases:
.TP
y pushes time in UTC not local time.
.TP
k with a negative argument reflects.
.TP
# across edge of Funge-Space may or may not skip first char after wrapping depending on exact situation.
.TP
( and ) with a negative count reflects and doesn't pop any fingerprint.
.TP
Loaded fingerprints are inherited to child IPs at split (t).
.TP
Standard output is flushed at the end of the program and just before any instruction reading standard input. However it is of course possible that the operating system decides to flush anyway.
.TP
Standard input is read one line at a time and buffered internally. Those instructions reading chars fetch one char from this buffer, leaving the rest (if any) including any ending newline. Instructions reading an integer will leave anything after the integer in the buffer with one exception: if the next char is a newline it will be discarded.
.SH FINGERPRINTS
Short descriptions of implemented fingerprints:
.TP
3DSP
3D space manipulation extension
.TP
BASE
I/O for numbers in other bases
.TP
CPLI
Complex Integer extension
.TP
DATE
Date Functions
.TP
DIRF
Directory functions extension (not available in sandbox mode)
.TP
FILE
File I/O functions (not available in sandbox mode)
.TP
FING
Operate on single fingerprint semantics
.TP
FIXP
Some useful math functions
.TP
FPDP
Double precision floating point
.TP
FPSP
Single precision floating point
.TP
FRTH
Some common forth commands
.TP
HRTI
High-Resolution Timer Interface
.TP
INDV
Pointer functions
.TP
JSTR
Read and write strings in Funge-Space
.TP
MODU
Modulo Arithmetic
.TP
NCRS
ncurses extension
.TP
NULL
Null Fingerprint
.TP
ORTH
Orthogonal Easement Library
.TP
PERL
Generic Interface to the Perl Language (not available in sandbox mode)
.TP
REFC
Referenced Cells Extension
.TP
REXP
Regular Expression Matching
.TP
ROMA
Roman Numerals
.TP
SCKE
TCP/IP async socket and dns resolving extension (not available in sandbox mode)
.TP
SOCK
TCP/IP socket extension (not available in sandbox mode)
.TP
STRN
String functions
.TP
SUBR
Subroutine extension
.TP
TERM
Terminal control functions
.TP
TIME
Time and Date functions
.TP
TOYS
Funge-98 Standard Toys
.TP
TURT
Simple Turtle Graphics Library
.LP
For more details please see the specs for each fingerprint.
In cases of undefined behaviour in fingerprints, cfunge mostly tries to do the
same thing as CCBI.
.SH AUTHOR
Written by Arvid Norlander.
.SH COPYRIGHT
Copyright \(co 2008-2009 Arvid Norlander.
.br
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.