Node:Running Image Files, Next:Modifying the Startup Sequence, Previous:Stack and Dictionary Sizes, Up:Image Files
You can invoke Gforth with an image file image instead of the
gforth.fi with the
-i flag (see Invoking Gforth):
gforth -i image
If your operating system supports starting scripts with a line of the
#! ..., you just have to type the image file name to start
Gforth with this image file (note that the file extension
just a convention). I.e., to run Gforth with the image file image,
you can just type image instead of
gforth -i image.
This works because every
.fi file starts with a line of this
#! /usr/local/bin/gforth-0.4.0 -i
The file and pathname for the Gforth engine specified on this line is
the specific Gforth executable that it was built against; i.e. the value
of the environment variable
GFORTH at the time that
gforthmi was executed.
You can make use of the same shell capability to make a Forth source
file into an executable. For example, if you place this text in a file:
#! /usr/local/bin/gforth ." Hello, world" CR bye
and then make the file executable (chmod +x in Unix), you can run it
directly from the command line. The sequence
#! is used in two
ways; firstly, it is recognised as a "magic sequence" by the operating
system1 secondly it is treated as a comment character by
Gforth. Because of the second usage, a space is required between
#! and the path to the executable (moreover, some Unixes
require the sequence
The disadvantage of this latter technique, compared with using
gforthmi, is that it is slightly slower; the Forth source code is
compiled on-the-fly, each time the program is invoked.
An alias for
#!-- gforth ``hash-bang''
The Unix kernel actually recognises two types of files: executable files and files of data, where the data is processed by an interpreter that is specified on the ``interpreter line'' -- the first line of the file, starting with the sequence #!. There may be a small limit (e.g., 32) on the number of characters that may be specified on the interpreter line.