Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!rutgers.rutgers.edu!sri-spam!ames!sdcsvax!ucbvax!NMFECC.ARPA!KARNEY%PPC.MFENET
From: KARNEY%PPC.MFENET@NMFECC.ARPA
Newsgroups: comp.os.vms
Subject: Running multiple interactive programs under VMS
Message-ID: <870719101422.03c@nmfecc.arpa>
Date: Sun, 19-Jul-87 13:14:21 EDT
Article-I.D.: nmfecc.870719101422.03c
Posted: Sun Jul 19 13:14:21 1987
Date-Received: Tue, 21-Jul-87 00:46:41 EDT
Sender: daemon@ucbvax.BERKELEY.EDU
Distribution: world
Organization: The ARPA Internet
Lines: 48

One of the most objectionable features of VMS is how awkward it is to run
several interactive programs simultaneously.  This seems to be solved
principally by one of two techiques:

* SPAWNing a new subprocess -- this is allowed within several utilities
(DEBUG, MAIL...)

* Running a program in a subprocess, and ATTACHing to the parent when you
want to do something else -- this is a common technique for running editors
like Emacs and EVE.

Unfortunately, each technique involves special VMS code within the utility
to do the spawning/attatching.  This prompts the following question:

Is it possible to run n > 1 vanilla programs (e.g., standard FORTRAN
programs) and bounce between them?  I want to fire up program[i], give it
some input, leave it running, fire up program[i+1], etc.  Program[i] then
runs until it needs to do terminal I/O.  Then it should optionally (a)
hang, (b) notify the user that program[i] needs the terminal, (c) if it only
needs to do output, go ahead and do the output (mingling such output with
that of other programs), (d) again if it is only output, buffer the output
in some suitable place.  I should be able to reconnect the terminal to
program[i], do the required I/O and then hop to another program.

I'm aware of two solutions:

* A commercial package WINDOWS (Clyde Data Systems).  I have not seen
this in operation.  This has the disadvantage that it costs money.

* Start up multiple subprocesses in Gnu Emacs (v 17) and use the PTY
drivers to talk to them.  This has the disadvantage that the I/O happens
through Emacs which can deal with straight text OK, but can't manage
graphics, etc.  Also version 18 of Emacs lost PTY support and can only do
inferior mailbox communication with subprocesses.

It seems to me that it should be possible using the Carosso PTY driver to
write a supervisor program that can manage several programs running in
subprocesses and thus do what I want.  Anyone know of such a beast?

                    Charles Karney
                    PHONE:   609/682-2607
                    MFENET:  Karney@PPC.MFENET
                    ARPANET: Karney%PPC.MFENET@NMFECC.ARPA
                    BITNET:  Karney%PPC.MFENET@ANLVMS.BITNET

CC:
        INFO-VAX@SRI-KL.ARPA
        KARNEY