1.  Why does HeNCE execute on machines with no entries in the cost matrix?

    There was a bug in v1.2 of htool; it produced an entry in the cost
    matrix file for each cell.  If no cost was specified, it wrote out
    a cost of zero.  This is fixed in v1.3.
------------------------------------------------------------------------------
2.  HeNCE won't compile on my machine.

    Version 1.3 works on many more machines than did 1.2.

    HeNCE compiles easily on most machines that support the X Window System, 
    so long as a correct set of imake config files is installed on the 
    system.  Your vendor should have supplied imake config files, but some
    (like IBM) do not do so, and others (like Sun) supply incorrect ones.

    I have tried to include notes on how to compile HeNCE on various
    machines.  If necessary I will include custom Makefiles for especially
    troublesome machines.
------------------------------------------------------------------------------
3.  I need a way to link extra libraries into my HeNCE subprograms.

    Sorry, the best way to do this at present is to edit the Makefile.
    The next major release of HeNCE will have a better way to do this.
------------------------------------------------------------------------------
4.  The HeNCE sources seem to have arrived trashed from netlib.

    You can use the xnetlib program to get files from the netlib server
    in "real time" much more quickly than by email access.  Xnetlib is 
    available from netlib.  To get a copy from a UNIX system, type:

    echo "send xnetlib.shar from netlib" | mail netlib@ornl.gov

    Of course, you may have the same problem with xnetlib, but it's
    a bit smaller and therefore easier to retrieve intact.
------------------------------------------------------------------------------
5.  Htool won't let me exit compose mode even though I'm not editing
    any node programs.

    This was a bug on SysV-style machines due to the fact that they
    do not restart signals.  Hopefully it is fixed now on these
    machines.  If necessary, edit imake.defs and add -DSYSVSIGNAL
    to the HENCE_DEFINES line for your machine.
------------------------------------------------------------------------------
6.  How do I use HeNCE to watch the execution of (or tweak performance
    of) PVM programs?

    HeNCE isn't designed to do this.  Various people are working on
    X-windows based tools to do similar things for bare PVM.
------------------------------------------------------------------------------
7.  All files produced by the HeNCE.shar file are readonly.

    Should be fixed now.  At least the files you need to scribble
    on should now be writable.
------------------------------------------------------------------------------
8.  What does the following error message mean?

    master: PVM user lib <master,0>
    master: initiateM: No such File
    master: ERROR: InitiateM failed on node 1/0:
    master: initiateM(start,somewhere) returned -7

    It means that the program "start" in not installed in the right
    directory on machine "somewhere".  Normally it would belong in
    "~/pvm/$(ARCH)" where $(ARCH) is the architecture name for that
    machine.  (But you can change this with the ep= option of the
    PVM hosts file.)

    The "make install" button under the "build" function should
    take care of installing this for you.  Be sure the htool.binDir
    is either set to ~/pvm/$(ARCH), or matches whatever the ep=
    option is set to in the pvm hosts file.  (If you change this,
    you'll have to quit restart htool and do "make makefile" before
    the change has any effect.)
------------------------------------------------------------------------------
9.  When I try to compile HeNCE on a SUN, the following routines are
    missing:

      _get_wmShellWidgetClass
      _get_applicationShellWidgetClass

    (This is from the FAQ file for X11...)

   In SunOS 4.1.2 Sun fixed a shared-library bug in ld which conflicts
   with the way X11R4 builds the shared Xmu library, causing these symbols 
   to be undefined when building some X11 clients.

   Compiling "-Bstatic -lXmu -Bdynamic" appears to work. 

   To solve the problem if you are using OpenWindows 3.0 (X11R4-based Xt), 
   please contact your local Sun office and request the following patches:

   Patch i.d.      Description
   100512-02       4.1.x OpenWindows 3.0 libXt Jumbo patch
   100573-03       4.1.x OpenWindows 3.0 undefined symbols when using
                        shared libXmu

   [Greg Earle, earle@Sun.COM; 7/92]
------------------------------------------------------------------------------
10. I compiled htool on one machine and moved it to another.  When I
    try to run it, I get the message that says some library or another
    is not found.  How do I fix it?

    On Suns and IBM RS/6000s, you can edit imake.defs and uncomment
    out the line that reads "#define StaticallyLink".  This should
    allow you to produce an executable that does not depend on
    shared libraries.
------------------------------------------------------------------------------
11. Performance is lousy.

    The current HeNCE implementation is not very efficient.  A new
    pvm process is started every time a new HeNCE subroutine is called.
    There is no effort to minimize communication overhead in scheduling
    new tasks.  Each new subroutine may have to query several of its
    ancestors to obtain its complete set of data before it can start
    executing, and may have to wait around in "idle" state (consuming
    swap space) so that its children can query it for data.  Although
    the executioner does try to take machine speed into account when
    scheduling (via the cost matrix), no attempt is made to take the
    machine's current load into account, other than that produced by
    HeNCE itself.  Even then, all subroutines are treated as if they
    load down the processor equally.

    Most of the recent work on HeNCE has been into making the tool
    usable on many different machines, so people can experiment with
    the language.  The initial htool was very difficult to use, and
    the language still needs some work.  The current HeNCE executioner 
    is essentially a prototype; the next implementation will focus on
    improved performance while attempting to fix some of the problems
    in the design of the language that make HeNCE both difficult to
    use and difficult to implement efficiently.
------------------------------------------------------------------------------
12. How can I resize the various windows?

    Most of the windows in htool 1.3 are still fixed size.  htool 2.0
    has a new spiffy screen layout (with resizable everything) and will 
    be out sometime early in 1993.
------------------------------------------------------------------------------
13. I'm having trouble getting HeNCE to work with FORTRAN.

    HeNCE doesn't currently work very well with FORTRAN.  In particular:

    * HeNCE tries to treat all arrays as if they were in C order (last
      subscript varies fastest).  This is fine for FORTRAN one-dimensional
      arrays, but fails for anything larger.  One workaround is to treat
      all arrays as one-dimensional within HeNCE, but they can be
      two-dimensional in your FORTRAN codes, as long as they are always
      the same size and shape.

    * HeNCE doesn't always generate the right calling sequence for
      character strings when calling FORTRAN subroutines.

    * The "mkwrap" program does not generate correct FORTRAN wrappers for
      some machines.

    * Constructs like the C '&' operator don't translate very well
      into FORTRAN.

    All of these things are targeted to be fixed, but they're not fixed
    yet.  Please bear with us!
------------------------------------------------------------------------------
14. I use HeNCE on several machines that do not share a common file system,
    but HeNCE tries to use the X server's resources no matter what machine
    I'm using.

    In addition to putting resources in .Xresources (or your server's 
    resource data base), you can put a file named "htool" in your home 
    directory on each machine that contains machine-specific resources.  
    This is a good place to put things like file and directory names.  
    Names of fonts, colors, etc., should probably remain in .Xresources.

    Note that any resource definitions in .Xresources will override the
    ones in your "htool" file, so you need to remove the machine-specific
    resources from your .Xresources file.

    If you don't want to clutter up your home directory, define an 
    environment variable named XAPPLRESDIR, set it to point to
    some other directory, and put your "htool" file in that directory.
------------------------------------------------------------------------------
15. When I start up PVM under htool, the window goes away immediately,
    and htool says "pvmd exited normally".

    Htool is lying.  Actually, the xterm exited normally.  Currently,
    htool must use an xterm to pop up a window for pvmd, and there's no
    good way to get the status back from a program that runs under
    xterm.

    The real problem is probably that the pvm startup failed on one
    or more hosts.  htool 1.3 has been modified to prompt you to
    press RETURN after pvmd dies before getting rid of the window, 
    so you can read the error messages.

    In htool 2.0, pvmd will run directly under htool, and the window
    will always be there.
------------------------------------------------------------------------------
16. How can I get the hostmap popup window to display cool icons
    for each machine?  (instead of the "tape drive")

    1) make sure the htool.iconList resource is set to point to a
    file that contains the icon list.  Make sure that the icon list
    file name begins with either a '/' or a '~'.  If it begins with
    ~username, make sure the username is valid and that his/her home 
    directory exists and is mounted and readable. etc.

    % xrdb -query | grep 'htool.[Ii]conList'
    htool.iconList: ~/.htool_icons


    2) make sure the file named in that resource exists and is readable
    and has reasonable contents.  Mine looks like:

    % cat ~/.htool_icons
    chili                ~moore/src/Hence/icons/chili.xbm
    rx                   ~moore/src/Hence/icons/intelicon.xbm
    rx.epm.ornl.gov      ~moore/src/Hence/icons/intelicon.xbm
    austin               ~moore/src/Hence/icons/rs6000.xbm
    rios                 ~moore/src/Hence/icons/rs6000.xbm
    alliant              ~moore/src/Hence/icons/alliant.xbm
    cray                 ~moore/src/Hence/icons/crayicon.xbm
    barney               ~moore/src/Hence/icons/sun.xbm
    duncan               ~moore/src/Hence/icons/sunrack.xbm
    fred                 ~moore/src/Hence/icons/fred_flintstone.xbm
    thud                 ~moore/src/Hence/icons/sparcserver.xbm
    tmc                  ~moore/src/Hence/icons/tmc.xbm
    tonka                ~moore/src/Hence/icons/symmetry.xbm
    betty                ~moore/src/Hence/icons/dec5200.xbm
    u2.ncsa.uiuc.edu     ~moore/src/Hence/icons/crayicon.xbm
    cmsun4.ncsa.uiuc.edu ~moore/src/Hence/icons/tmc.xbm
    groucho              ~moore/src/Hence/icons/banana6000.xbm

    3) make sure each of the files named in the icons list file exists.  Also,
    make sure each filename in the icons list file begins with either a '~' 
    or a '/'.  If the file starts with ~username, make sure that the username 
    is valid and his/her home directory exists and is readable, etc., etc.

    4) if htool has trouble displaying specific icons, try looking at them with
    the "bitmap" utility (or xloadimage, or xv) to make sure they are still
    there and intact.
------------------------------------------------------------------------------
17. Explain about the "null" subroutine.

    The "null" subroutine is special.  Whenever the executioner tries to
    schedule a subroutine named "null", it doesn't actually execute it --
    it just pretends to.  This is useful because you sometimes need
    a "do nothing" node just to declare variables.  However, not all
    components of HeNCE take this into account.  So if you use the "null"
    function in a node, you may still end up having to declare "null" in
    the cost matrix (for htool) and give it a machine to run on (even
    though it won't actually be used for this purpose), defining an
    empty subroutine named "null", generating wrappers, compiling,
    and installing it along with the other subroutines.

    Hopefully a later version of HeNCE will have fixed this.
------------------------------------------------------------------------------
18. How do I display the output of the mandelbrot demos?

    The program "xpx" is in the demos/demo0 directory, and the README file
    tells how to run it.  Unfortunately, it only works on color screens.
------------------------------------------------------------------------------
19. How do I change the editor that HeNCE uses?

    Basically, use %s in the editorCommand resource wherever you want the
    filename to appear.

    If the editor you want to use already knows about X windows (i.e. opens up
    its own window), then something like "edit %s" should suffice.

    Otherwise, if the editor requires a terminal, then you need to run it under
    an xterm or other terminal emulator.  In this case, something like 
    "xterm -e  edit %s" should work.

    The example in the HeNCE User's Guide uses the -title option of xterm
    to set the window's title bar to match the name of the file being edited.
------------------------------------------------------------------------------
20. I can't seem to print the HeNCE user's guide postscript files.

    We have compressed some of the bitmaps used in the figures in the
    PostScript version of the HeNCE User's Guide, resulting in a much
    smaller file.  Hopefully this will be easier to print.  (The 
    compressed bitmaps are still in PostScript, but they use run length
    encoding instead of straight binary).
------------------------------------------------------------------------------
21. When trying to compile on a Sun, it complains that I'm missing _dlsym,
    _dlopen, and _dlclose.  What's wrong and how do I fix it?

    There are several reasons why this may happen:

    * your system is running SunOS 4.1.1, which has some functions missing
      from libc.a, and you are trying to generate a statically-linked
      executable.
    * your system has had its shared libc replaced by one that does not
      include these functions.  This is usually done to get Sun network
      programs to use the DNS rather than NIS for host name lookups.
      (As it should; SunOS is broken to use NIS by default.)  Unfortunately,
      Sun forgot to include the libdl stuff in its kit for rebuilding
      shared libraries.

    Suggested fixes:

    (a) try adding "-ldl" to EXTRA_LIBRARIES for SUN4 in imake.defs.
        This may fail on 4.1.1 if your system does not have a libdl.a
        installed (it's missing on our 4.1.1 systems).

    (b) give up trying to generate a statically-linked executable.
------------------------------------------------------------------------------
22. What does the message "sendto: no buffer space available" mean?

    This is a PVM error message that occurs when the recipient of a PVM
    message can't allocate any more space to buffer incoming messages.
    PVM will keep trying to send the messages until enough space exists.
    Since PVM normally recovers from this condition, the message is usually
    of no concern, except to give a clue as to why communication is slower
    than normal.
------------------------------------------------------------------------------
23. What does it mean when I get the message:

    PVM user lib <master,0>: snd: No such Component

    PVM would generate these messages whenever HeNCE was trying to send
    a message to a node subroutine, telling it to exit, but the subroutine
    had already exited.
------------------------------------------------------------------------------
