From Lazarus wiki
Revision as of 18:37, 27 March 2011 by Mattias2 (talk | contribs) (Passing parameters to the compiler)


This tool allows to run pascal program like scripts under unix like OS (Linux, BSD, OS X). For example:


  1. !/usr/bin/env instantfpc


 writeln('Hello fpc user');

end. </Delphi>

Save the file as hello.pas, set the permission to execute and run it:

[]$ chmod a+x hello.pas
[]$ ./hello.pas
Hello fpc user


From svn

svn co instantfpc


  1. Compile the instantfpc.lpi with Lazarus or lazbuild. Or compile directly with fpc instantfpc.lpr.
  2. Put the executable into PATH, for example /usr/bin:
sudo cp instantfpc /usr/bin/

How it works

It uses a cache directory to compile. Default is $HOME/.cache/instantfpc. If HOME is not set it gives an error. You can override the directory by setting the environment variable INSTANTFPCCACHE. It compares the source with the stored file in cache and if it differs compiles the source, given the parameters in the shebang line (the first line of the script after #!). After successful compile it executes the program. If compilation fails it writes the fpc output to stdout.


  • -v: Print current version and exit
  • --get-cache: Print current cache directory and exit
  • -h: print help and exit
  • -B: always compile even if cache is valid.

Passing parameters to the compiler

Compiler parameters can be passed in the shebang line:


  1. !/usr/bin/env instantfpc -O1 -Ci

begin end. </Delphi>

Editing in Lazarus

Since Lazarus 0.9.31 the IDE ignores the shebang line. You get all the normal code features.