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.