INTRO(2): introduction to clive packages
     __________________________________________________

     SYNOPSYS

         import (
             'clive/cmd'
             ...
         )

         ; Go install clive/...

     DESCRIPTION

     Clive commands are written in the Go programming language.

     External packages are not to  be  imported  directly  from  their
     source repositories.  Instead, they should be installed under the
     clive/x/... path and then imported  from  there  (to  survive  to
     incompatible upgrades made by their authors).

     The compiler requires modifications as made to the Lsub  fork  of
     the standard Go compiler.

     In particular, there is  a  close  operation  for  channels  that
     accepts  an  error  indication and can be used both by the sender
     and the receiver.  A new cerror  operation  retrieves  the  error
     causing the close of a channel. The send operation can be used as
     a value to see if the send  could  proceed  or  the  channel  was
     closed. For example:

      [:]:

         c := make(chan []byte, 0)
         for i := 0; i < 10; i++ {
         ok := c <- []byte(fmt.Sprintf('<%d>', i))
             if !ok {
                 dbg.Fatal(cerror(c))
             }
         }
                 close(c, 'oops')

     The runtime provides support for application contexts,  which  is
     also missing in the standard (non-lsub) Go.

     Most system I/O happens through channels packaged  in  nchan.Conn
     structures.   These  bridge  external  pipes  and  connections to
     channels.

     Most  application  I/O  happens  through  interface{}   channels,
     usually  by  calling  clive/cmd  functions.  See  intro(1)  for a
     description of the environment variables  used  when  compilying,
     and for conventions regarding I/O.

     The Go(1) command can be used to adjust them and run the standard
     go command to compile and operate on system source.

     But for a few pages (including this one),  the  manual  pages  in
     this section are generated using godoc from the system source.

     EXAMPLES

     To learn how to use the clive/ch package:

      [:]:

         ; doc clive/ch

     or

      [:]:

         ; doc 2 clive/ch

     To compile the entire system:

      [:]:

         ; cd /zx/sys/src/clive
         ; Go install ./...

     The eco(1) command source is a good example for  a  simple  Clive
     command.

     SOURCE

     +o    /zx/sys/src/clive

     +o    /zx/bin/rc

     BUGS

     Yes. It's a research system. Nevertheless, we are using it as our
     computing environment for most daily work.

     __________________________________________________

      User's manual. Section 2. Copyright © LSUB 2014-2016