March 9, 1992

PAW version 1.13/01

This file contains the following items:

  1. PAW - Note on planned new ntuple facility
  2. PAW - Improvements
  3. PAW - Bugs fixes
  4. HBOOK - Bugs fixes improvements
  5. KUIP - Bugs fixes improvements
  6. HIGZ - Bugs fixes improvements
  7. PAW - Motif user interface


PAW - Note on planned new ntuple facility (call for comments)

The Ntuple facility currently implemented in HBOOK and PAW has proven to be a very useful concept and is the corner stone of interactive data analysis. During these first years of experience with PAW, we have collected many suggestions to make this Ntuple facility more powerful, still keeping its basic simplicity. The old (current) ntuples allowed only columns with real numbers, a fix number of columns per row and the file base was designed to handle ntuples not exceeding a few Megabytes. We plan to release this new software with the next release of PAW. We strongly invite PAW users to comment on this proposal as quickly as possible.

The new ntuples will provide:

A note describing extensively the new ntuple facility currently being implemented in HBOOK and PAW can be found in a separate news item and is also available in the following files:

          CERNVM   :      NTUPLE NEWS   (GIME PAW
          VXCRNA   :      DISK$DL:[PAW]NTUPLE.NEWS


PAW - Improvements

New version of the command NTUPLE/PLOT

Improvements in histogram plotting

Graphics improvements

PostScript improvements

Interface with COMIS

Fitting commands

In all fit commands, a new option 'E' is available. This option performs a better error evaluation with MINUIT.


PAW - Bugs fixes


HBOOK - Bugs fixes and Improvements


KUIP - Bugs fixes and Improvements

Emacs style command line editing

On Unix machines emacs-style command line editing (similar to the Korn-shell) is now possible.

Entering printable keys generally inserts new text into the buffer (unless in overwrite mode, see below). Other special keys can be used to modify the text in the buffer. In the description of the keys below, ^n means Control-n, or holding the CONTROL key down while pressing "n". Errors will ring the terminal bell.

  ^A/^E   : Move cursor to beginning/end of the line.
  ^F/^B   : Move cursor forward/backward one character.
  ^D      : Delete the character under the cursor.
  ^H, DEL : Delete the character to the left of the cursor.
  ^K      : Kill from the cursor to the end of line.
  ^L      : Redraw current line.
  ^O      : Toggle overwrite/insert mode. Initially in insert mode. Text
            added in overwrite mode (including yanks) overwrite
            existing text, while insert mode does not overwrite.
  ^P/^N   : Move to previous/next item on history list.
  ^R/^S   : Perform incremental reverse/forward search for string on
            the history list.  Typing normal characters adds to the 
            current search string and searches for a match. Typing
            ^R/^S marks the start of a new search, and moves on to
            the next match. Typing ^H or DEL deletes the last 
            character from the search string, and searches from the 
            starting location of the last search.
            Therefore, repeated DEL's appear to unwind to the match 
            nearest the point at which the last ^R or ^S was typed.
            If DEL is repeated until the search string is empty the
            search location begins from the start of the history
            list. Typing ESC or any other editing character accepts
            the current match and loads it into the buffer, 
            terminating the search.
  ^T      : Toggle the characters under and to the left of the cursor.
  ^Y      : Yank previously killed text back at current location.
            Note that this will overwrite or insert, depending on
            the current mode.
  TAB     : By default adds spaces to buffer to get to next TAB stop
            (just after every 8th column).
  NL, CR  : Returns current buffer to the program.

The Kuip Edit Server

The Kuip Edit Server (KUESVR) makes a-synchronous editing of files during the execution of a user program possible.

To use the KUESVR, kuip must be able to find the executable 'kuesvr' somewhere in your search path. Also the editor you want to use must not be plain vi (or for that matter any editor that runs in the same window as the application). Emacs and HP's ved are "save" editors. When your system supports X windows then any editor can be made safe by specifying as editor (see HOST_EDITOR) 'xterm -e editor' (where editor may be vi).

KUESVR is implemented using a small program, kuesvr, that takes as arguments the process id of the user program, the KUIP command that was used to invoke it, the editor to use and the file to edit (kuesvr -p pid -c command -e editor file). Kuesvr invokes the editor (using system) and waits till the editor is exited. Once the editor session finished, kuesvr determines if the edited file was changed. In case the file was changed it writes on the file /tmp/kuesvr.pid the name of the edited file and the kuip command. In case the file was not changed it prepends to the file name a -. During writing of the /tmp/kuesvr.pid file this file is locked (using lockf) to prevent different kuesvr processes to write at the same time to this file. As last action before exiting, kuesvr signals (using signal SIGUSR1) the parent process that it finished and that there is information to be read from the /tmp/kuesvr.pid file.

The kuesvr is invoked when the user program calls the routine KUESVR. The calling sequence is the same as for the synchronous edit routine KUEDIT. When the status IST is <>0, the kuesvr is not available or the editor is plain vi. In that case call KUEDIT. When the KUESVR exits KUIP jumps, on receiving SIGUSR1, to the routine KIEDTH to read and store the information from the /tmp/kuesvr.pid file. After reading this file is cleared. When the user program comes in the wait loop (in command mode it is not really a loop but a blocking read) an interval timer is activated that triggers (sends an SIGALRM) every 250ms. On every trigger the routine KITIMH is called. This routine checks if there are any finished edit sessions and if so it calls a user routine to handle the edited files. This user routine is only called when it has been registered in advance using the routine KUEUSR and when the command used to edit the file was not /KUIP/EDIT. The user routine is called without arguments. The first thing it should do is call KSVPAR(file, command) to obtain the name of the edit file and the kuip command that caused the edit.

The user program can inquire if the KUESVR is available by calling the logical function KUQSVR.

IBM MVS NEWLIB compatibility

Kuip contains now all changes proposed by Harald Butenschoen for the MVS NEWLIB systems.


HIGZ - Correction of errors and Improvements

New HIGZ routines

Two new HIGZ routines are available:

Driver dependent modifications

Minor corrections and improvements


PAW - Motif user interface

With this release of the CERN library users will have access to a new version of PAW using MOTIF as User Interface. It provides a menu-driven mode of interaction as well as a command mode with a more sophisticated command history mechanism. A number of new features have also been included: the most important one is that lists of histograms can be displayed in a window, and commands (HISTO/PLOT, LEGO, SURFACE, ...) can be issued directly by selecting histograms in this list.

This preliminary version is still a prototype: no written documentation is provided at the moment, apart from this news, as many changes or features will be added in the next months according to user feedback. At the moment PAW/MOTIF runs only on Unix Workstations which have access to the Motif software, and which runs preferably the Motif Window Manager Mwm.

The following is a short guide for the usage of PAW/MOTIF.

What is PAW/MOTIF (PAWM) compared to PAW and PAWX11 ?

As one can see on the diagram below, PAW and PAWX11 give access essentially to a "command mode" interface except for the "style G" and "P" available on graphics terminals. PAWM gives access to a more general and complete graphics user interface which includes a "Command Mode", "Pulldown Menus" to display the complete tree of commands for the application, "User Defined Panels" (similar to style P) and also "Lists of Objects" that can be manipulated directly (see later "Parameters of type LIST").

The workstation type 1 (or 2, 3, ...) gives always access to the X window driver of HIGZ and is connected to the configuration file higz_windows.dat. In PAWM all the values for the configuration are taken from the normal "Resource" file for MOTIF: .Xdefaults (see later "PAWM Resources").

N.B. The command "STYLE" is not available in PAWM and "STYLE M" is selected for the whole session. "STYLE M" is in fact a kind of combination of all the other existing styles, with many improvements and a MOTIF look.

 
_____________________________________
|                                    |
| PAW                                |
| Falco, MG600, Tektronix, ....      |___
| WKTYPE = 7878, 7800, 101, 121, ... |   |
| Terminal drivers: HIGZ / GKS       |   |
|____________________________________|   |
                                         |
 ____________________________________    |
|                                    |   |______     _____________________
| PAWX11                             |          |   |                     |
| X terminals, Workstations, ...     |__________|___|  Command Mode   +   |
| WKTYPE = 1, 2, ...                 |          |   |  STYLE 'G' or       |
| (X driver for HIGZ)                |          |   |  STYLE 'P' on       |
| --> file higz_windows.dat          |          |   |  graphics terminals |
|____________________________________|    ______|   |_____________________|
                                         |
                                         |
                                  _______|______________
                                 |                      |
              ___________________I WKTYPE = 1, 2, ...   |
             |                   | (X driver for HIGZ)  |
             |                   | --> higz_windows.dat |
             |                   |______________________|
 ____________|____________
|                         |
| PAWM                    |
| X terminals,            |
| Workstations with Motif |
|_________________________|
             |                    ______________________
             |                   |                      |
             |                   | WKTYPE = M/m         |
             |___________________| (X driver for HIGZ,  |
                                 |  MOTIF interface)    |
                                 |  --> file .Xdefaults |
                                 |______________________|
                                           |
                     ______________________|_____________________
                    |                                            |
          __________|     GRAPHICS  USER INTERFACE (STYLE M)     |__
         |          |____________________________________________|  |
         |                   |                 |                    |
   ______|_______    ________|_______    ______|_______    _________|__________
  |              |  |                |  |              |  |                   |
  | Command Mode |  | Pulldown Menus |  | User Defined |  | Lists  of Objects |
  |              |  | (Panels)       |  |    Panels    |  |                   |
  |______________|  |________________|  |______________|  |___________________|

In summary, the different modes of interaction proposed by PAWM are:

  1. Verb-driven modes A command is selected by the user who will specify later on the value of the parameter on which this command can be applied. Three possibilities are offered to the user:
    1. Command Mode
    2. Here commands are simply entered through the keyboard in the "Command Area". Parameters can be given on the command line, otherwise they are prompted for.

    3. User Defined Panels
    4. Here there is a panel of "buttons" on the screen, each one corresponding to a command. The assignment of commands to buttons may be defined by the user with aliases. When a button is pressed the user is prompted for the parameters in the normal way, and then the command is executed.

    5. Pull-down Mode
    6. Here there is a menu bar at the top of the screen containing the top level elements (menus) in the command structure. These menus can be accessed by moving the mouse pointer to the menu name and pressing the [mouse button 1]. The menus contain further command elements. If a terminal command element is selected by releasing [mouse button 1], the user is prompted for the parameters and a panel showing the list of parameters is displayed. The user has to fill it and press [OK] to execute the command. If another menu element is selected the appropriate menu is "pulled down" and the process continues until a terminal element is reached.

  2. Object-driven Mode
  3. This is significantly different from the other three modes. In this mode, lists of objects can be displayed on the screen, and commands can be applied to the objects therein by clicking on the object and choosing a command from a menu. This mode is connected to the parameter type LIST and a more detailed description is given in section 4).

Access to PAWM

The same executable module can be used to access PAWX11 (for X11 interface) or PAWM (for Motif). The choice is made via the terminal type: n or n.hostname (where n is a number corresponding to one entry in the file higz_windows.dat) to access the X11 version, OR m (character) or m.hostname to access the new Motif version. In this version the graphics is still done by the X11 driver of HIGZ, but the graphics window in now opened by Motif and is included in the application main window (it is not anymore a separate window).

What does PAWM look like and how does it work ?

This is the schematic representation of the window which will appear on the screen when running PAWM:

                   +------------------------------+
                   |           Menu Bar           |
       ------->    +------------------------------+
              |    |                              |
    Command   |    |        List of Commands      |
       Area   |    +------------------------------+
              |    | --->   Command Input         |
       ------->    +--------+---------------------+
              |    |        | +-----------------+ |
              |    | Appl.  | |                 | |
              |    | Row    | |                 | |
        W     |    | Column | |    Drawing      | |
        o     |    |        | |    Area         | |
        r     |    |        | |    (graphics)   | |
        k     |    | (Exit, | |                 | |
              |    | Recall,| |                 | |
        a     |    | Etc..) | +-----------------+ |
        r     |    +--------+---------------------+
        e     |    |                              |
        a     |    |        Program Output        |
              |    |                              |
              |    |        (ScrollWindow)        |
       ------->    +------------------------------+

Specific Feature of PAWM: Parameters of type LIST

With KUIP/MOTIF a new parameter type has been introduced: LIST. With Motif a parameter of type LIST will display a special widget which will propose a list of the possible values which can be selected by the user. Both alphanumeric (e.g. for histogram identifiers) and graphics lists (e.g. for marker types) are available. In command mode the LIST parameters are treated as lists of integer or real numbers, or character strings (values have to be separated with a comma (,) in the command).

Manipulation of the LIST widgets:

PAWM Resources in the File .Xdefaults

The resources associated to KUIP/MOTIF and that can be changed in the file .Xdefaults are listed below. The name and the number of these resources is not yet finalised and the following description is only an indication of what might be available in the future. A default value is always provided if the user did not specify anything for any resource.

 
Main*geometry wxh+x+y     (w = width, h = height, x = xposition, y = yposition
                           for the main window. All are integer values in pixel)
Command.historyVisibleItemCount   ival        (number of lines in the command
                                              list history, integer)
background                        color_name  (background color, string)
foreground                        color_name  (foreground color, string)
fontList                          font_name   (font for command panels, string)
helpFont                          font_name   (font for HELP windows, string)
mainCursor                        ival        (cursor shape in main window,
                                              integer)
inputCursor                       ival        (cursor shape in panels and
                                              input windows, integer)
cursorColor                       color_name  (cursor color, string)
gBell                             ival        (bell intensity, integer)

Release NotesKnown bugsFAQsContributionsTutorialReference manualDown loadMiscellaneous

Paw.Support@cern.ch