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