Man Linux: Main Page and Category List

NAME

       ozl - oz linker

SYNOPSIS

       ozl FILE options ...

       Application  development  can  be  considerably  eased by splitting the
       application in a large number  of  orthogonal  and  reusable  functors.
       However,  deployment of an application gets harder in the presence of a
       large number of  functors:  (1)  Installing  the  application  requires
       correct installation of a large number of functors, (2) Execution might
       be slow due to frequent file- or even network accesses.

       The commandline tool ozl eases deployment by  creating  a  new  functor
       that  includes imported functors in a prelinked fashion: it is possible
       to collapse a hierarchy of functors into a single equivalent  one.  The
       model  that  should  be kept in mind, is that the newly created functor
       employs an internal, private module manager that excutes  the  toplevel
       application functor together with all included functors.

       It is usually invoked as follows:
                                    ozl IN -o OUT
       where  IN  is  the  input  functor  and  OUT is the resulting collapsed
       functor.  ozl understands the following options:

       --relative (default), --norelative
              All  functors  that  are  referred  to  by  relative  urlss  are
              included.

       --include=URL,...,URL
              Include  all  functors  whose  url  matches  one  of  the  comma
              separated url prefixes.

       --exclude=URL,...,URL
              Exclude  all  functors  whose  url  matches  one  of  the  comma
              separated url prefixes.

       Note  that  multiple --include and --exclude directives can be given on
       the commandline. They have cummulative effect,  with  the  policy  that
       later directives take precedence over earlier ones.  For example:

       ozl --include=/foo/ --exclude=/foo/bar/ ...

       causes  all  imports  from  files  below  directory /foo to be included
       except those under directory  /foo/bar.  We  can  further  refine  this
       policy  by  introducing  an exception to the last exclusion pattern and
       request  inclusion   of   modules   imported   from   below   directory
       /foo/bar/baz:

       ozl --include=/foo/ --exclude=/foo/bar/ --include=/foo/bar/baz/ ...

       --compress=N, -z N
              The  created pickle is compressed with level N (a single digit).
              By default the compression level N is 0, that is, no compression
              is employed.

       --executable (-x), --noexecutable (default)
              Output the pickled functor as being executable (that is, with an
              additional header).

       --execheader=STRING
              When invoked with option -x the linker first outputs a header so
              that  the output file may be interpreted by the operating system
              as an executable. Under Unix, the default behaviour  is  to  use
              the following as header:

              #!/bin/sh
              exec ozengine $0 "$@"

              The  --execheader  option  allows  you  to  specify  a different
              header.

       --execpath=STRING
              Uses the header given above in the description of  --execheader,
              except that ozengine is replaced by STRING.

       --execfile=FILE
              Reads  in  FILE  and  uses  this  as  header. Under Windows, the
              default   behaviour   is   to   use   the   file   provided   in
              ozhome/bin/ozwrapper.bin,  where ozhome is Mozart’s installation
              folder. ozwrapper.bin is  a  Windows  executable  that  launches
              ozengine.

       --execwrapper=FILE
              Reads  in  ozhome/bin/FILE  and uses it as header for executable
              files. Apart from ozwrapper.bin, an ozwrapperw.bin  is  supplied
              that   launches  ozenginew  instead  of  ozengine.  This  option
              provides a convenient way to use this alternative wrapper.

       --sequential, --nosequential (default)
              Do not create a thread per executed functor body, rather execute
              all  functor  bodies  in the same thread in a bottom up fashion.
              Use with  care!  In  case  the  functors  included  have  cyclic
              imports, it is not used.

                                                                        ozl(1)