Flags, setup files etc.
(This section may be of particular interest to installers and system
administrators)
The full form of the `mira' command is
mira [flags...] [script]
this command causes a Miranda session to be entered with the given file
as current script. If no script is specified a default filename
`script.m' is assumed. The specified file need not yet exist - in this
case you will be starting a Miranda session with an empty current
script.
Note that `.m' is the standard extension for Miranda language source
files - the mira command always adds the `.m' extension, if missing, to
any filename argument denoting a Miranda script.
The available flags are:
-lib pathname
Tells mira to find miralib (directory containing libraries, manual pages
etc.) at `pathname'. The default is to look for miralib of same version
number as the program at `/usr/lib/miralib', `/usr/local/lib/miralib',
`./miralib', in that order. The -lib flag overrides the version number
check. The same effect is obtained by setting an environment variable
MIRALIB, see next manual section.
-gc
Switches on a flag causing the garbage collector to print information
each time a garbage collection takes place. This flag can also be
switched on and off from within the miranda session by the commands
`/gc', `/nogc'.
-count
Switches on a flag causing statistics to be printed after each
expression evaluation. This flag can also be switched on and off from
within the miranda session by the commands `/count', `/nocount'.
-list
-nolist
Switches on (off) a flag causing Miranda scripts to be listed to the
screen during compilation. This flag can also be switched on and off
from within the miranda session by the commands `/list', `/nolist'.
-nostrictif
Enables the compiler to accept old Miranda scripts with missing
occurrences of the keyword `if' in guard syntax. Probably obsolete but
retained just in case someone needs it.
-hush
-nohush
The miranda system decides whether or not to give prompts and other
feedback by testing its standard input with `isatty'. If the standard
input does not appear to be a terminal it assumes that prompts would be
inappropriate, otherwise it gives them. In either case this behaviour
can be overriden by an explicit flag ("-hush" for silence, "-nohush" for
prompts etc). This switch is also available from within a miranda
session by the commands `/hush', `/nohush'.
-dic SIZE
Causes the dictionary (used by the compiler to store identifiers etc.)
to be set up with SIZE bytes instead of the default 24kb.
-heap SIZE
Causes the heap to be set up with SIZE cells instead of the default
(currently 100k). This can also be done from within the miranda session
by the command `/heap SIZE'. A cell currently occupies 9 bytes.
-editor name
Causes the resident editor (initially `vi', unless the environment
variable EDITOR was set to something else) to be `name' instead. This
can also be done from within the miranda session by the command `/editor
name'.
SPECIAL CALLS
In addition the following special calls to `mira' are available which
do not enter a Miranda session but accomplish another purpose, as
described below.
mira -man
To enter the miranda online manual system directly from the UNIX shell.
mira -exp
Special call permitting the use of miranda script as a stand-alone UNIX
command. See separate manual page for details.
mira -log
Same as -exp except that it redirects stderr to a file log/mira.errors,
if log directory exists in the current directory and mira has write
permission to it.
mira -make [sourcefiles]
Forces a check that all the miranda source files listed have up-to-date
object code files, triggering compilation processes if necessary (see
manual subsection on the library mechanism: separate compilation).
mira -exports [sourcefiles]
Sends to stdout a list of the identifiers exported (see manual
subsection on library mechanism: separate compilation) from each of the
given miranda source files, together with their types (may also force
recompilation if needed).
mira -sources [sourcefiles]
Sends to stdout a list of all the Miranda source files on which the
given source files directly or indirectly depend (via %include or
%insert statements), excluding the standard environment <stdenv>.
mira -version
Gives version information. This information can also be obtained from
within a Miranda session by the command `/version'.
mira -V
More detailed version information. Present in version 2.040 and later.
SETUP FILES
The current settings of dic, heap and editor are saved in the file
`.mirarc' in the users home directory, and are thereby carried over to
the next miranda session. The settings of the compiler flag which
controls whether or not source is listed to the screen during
compilation (toggled by the commands /list /nolist during a Miranda
session) and of the flag which controls the frequency of checking for
source updates (toggled by the commands /recheck /norecheck) are also
saved in the users `.mirarc' file.
The default settings of these entities, which will be picked up by new
users executing `mira' for the first time, are dic 24000 (bytes), heap
100000 (9-byte cells), editor vi, nolist, norecheck. The current
settings can be interrogated from a Miranda session by the command
`/settings' or `/s'.
The defaults can be changed, on a system wide basis, by moving a copy of
a `.mirarc' file containing the desired settings into the `miralib'
directory (normally found at /usr/lib/miralib). The user's local
.mirarc file, once created in his home directory by the first call to
mira, will override the global one, however.
The behaviour of the `mira' program is also sensitive to the settings of
certain environment variables - see separate manual entry about this.
OUTPUT BUFFERING
Output from the Miranda system to the user's terminal should not be
line buffered, or some things will not work as they are intended. There
is no problem about input being line buffered, however.