.TH instantfpc 1 "5 Sep 2021" "Free Pascal" "Instant pascal code interpreter" .SH NAME instantfpc \- The Free Pascal Interpreter. .SH SYNOPSIS .B instantfpc [\fI\-h\fR] [\fI\-v\fR] [\fIcompiler options\fR] <\fIsource file\fR> [\fIprogram arguments\fR] .SH DESCRIPTION .B instantfpc is a Pascal code interpreter program. It compiles source and runs the generated program. It allows Pascal source code to be treated like a script, by placing .B #!/usr/bin/env instantfpc as the 'shebang' line at the top of the Pascal source file. To avoid recompiling source when it hasn't changed, .B instantfpc keeps a cache (see .B \-\-set\-cache option). When .B instantfpc is run, the source is compared with the cache. If the cached source is not valid, then source is copied to the cache with the shebang line commented out, and the cached source is compiled. If compilation fails, the \fBfpc\fR output is written to stdout and an exit code of 1 is returned. If compilation is successful, the program is executed. If \fIprogram arguments\fR were given, they are passed to the compiled program when it is run. If the compiler options contains \fB\-B\fR, the program is always recompiled. If the environment variable .B INSTANTFPCOPTIONS is set, it is passed to the compiler as the first argument(s). .SH NOTE .B instantfpc is also installed as .B ifpc for compatibility with older versions of Free Pascal. .SH USAGE .B instantfpc takes the following arguments: .TP .B \-h Prints this help message and exit. .TP .B \-v Prints version and exit. .TP .B \-\-get\-cache Prints current cache directory and exit. .TP .B \-\-set\-cache= Set the cache to be used. Otherwise uses environment variable .B INSTANTFPCCACHE if set, or .B $HOME/.cache/instantfpc/ otherwise. .TP .B \-\-compiler= Normally \fBfpc\fR is searched in PATH and used as compiler. .TP .B \-\-skip\-run Do not execute the program. Useful to test if script compiles. .TP .B \-B Always recompile. .SH SEE ALSO .IP .BR fpc (1)