INTRO(2)                                                 INTRO(2)

          intro - introduction to Limbo modules for the Inferno system

          include "sys.m";
          sys := load Sys Sys->PATH;

          include "draw.m";
          draw := load Draw Draw->PATH;

          include "tk.m";
          tk := load Tk Tk->PATH;

          ... etc.

          include "module.m";
          module := load Module Module->PATH;

          This section introduces the Limbo modules available to the
          programmer; see the corresponding manual pages for more
          information.  Each module is declared with a single Limbo
          include file.  Before calling a module's functions, an
          application must load the module; the application stores the
          resulting value in a variable for later use as the module
          qualifier.  The examples above illustrate the style.  It
          will usually be necessary in some cases to qualify names
          with the appropriate module pointer or to import the types
          and functions; the manual pages assume the names are acces-
          sible in the current scope.

          Although many modules are self-contained, dependencies may
          exist.  For example, the system module, Sys, provides basic
          services that many other modules require.  These are the
          Inferno equivalent to `system calls'.

          In a few cases, several related modules share a single
          include file; for instance, security.m.

          The manual pages describe how to include a module definition
          during compilation and load an implementation during execu-
          tion.  The documentation also lists relevant functions or
          abstract data types.  Although the include files declare
          these components, the manual pages list them explicitly.  In
          all cases, the enclosing module declaration is assumed so
          that unqualified identifiers can be used in the text without
          ambiguity, reducing clutter in the text.  In practice when
          programming, many consider it good style to use an explicit
          module reference for functions and constants.

     Page 1                       Plan 9             (printed 2/27/21)

     INTRO(2)                                                 INTRO(2)

          The Limbo modules are identical on any machine that is run-
          ning Inferno, either native or hosted, which enables Limbo
          programs to be written and tested on any Inferno system.

          Many modules are described in a single page, such as
          regex(2). Several larger modules are explained in several
          sections, such as math-intro(2), math-elem(2), math-fp(2),
          and math-linalg(2).

          draw-intro(2), keyring-intro(2), math-intro(2), prefab-
          intro(2), security-intro(2), sys-intro(2)

     Page 2                       Plan 9             (printed 2/27/21)