Subject: Re: Graphical M*'s

From: [email-masked]
Date: Thu, 11 Mar 1993 21:11:58 -0800

Date: 	Thu, 11 Mar 1993 20:29:53 PST
    From: [email-masked] (H. Peter Anvin)

    [ . . . ]

    In order to provide the client with *useful* intelligence, the server
    needs to be able to execute code on the client.  A static set of
    functions is too limiting.  Furthermore, it would be useful if the
    server could augment the  function library of the client in a semi-permanent
    way (code could be stored between sessions).

    Compiled languages are unsuitable, because the server will be
    dynamically modifying the environment of the client.  For performance
    reasons, thus, an interactive, pseudo-compiled language such as FORTH
    might be suitable to the task.  FORTH has the additional benefit that
    it is a rather simple language to implement.  The basic FORTH language
    needs to be augmented with some form of string handling and non-block
    disk I/O, but that should be trivial to do.

    [ . . . ]

I submit that one place where many of these issues have been thought out is
Display PostScript.  However, supporting this on non-NeXT machines is a rather
large thing to expect of most clients.  It _does_ have the benefits of
well-thought-out semantics and existing implementations, though.  (Would GNU's
GhostScript perhaps be an appropriate base to start from?)

---

From: [email-masked] (John Rogers)
Date: Thu, 11 Mar 1993 21:48:00 -0800

[ text proposing modified FORTH deleted ]

    From: [email-masked]

> GhostScript perhaps be an appropriate base to start from?)

    Postscript is pretty slow...perhaps a simpler version, reimplemented in
FORTH rather than Postscript, might do it....it has additional benefit that
a knowledgable user can directly add a glue-on routine/interface with the
underlying machine architecture/system....of course one must figure out how
to handle the FORTH word creating guard...perhaps a privilege hierarchy is
in order here....

    e.g.   disk I/O would be implemented as a privileged operation; only the
           user can modify it, not the server...server may invoke the function
           though.....etc.

    Just a two cents worth of thought....
                                             The_Blue_Wizard@LambdaMOO
------------------------------------------------------------------------------
         ///            | The Blue Wizard Of Dragon Order (John Rogers)
        ///  Only Amiga | [email-masked]
  \\\  ///  gives you a | (Don't toucha my wand or I will breaka ya!)
   \\\/// creative edge |     #include <std.disclaimers>
    \XX/                |     cat flames >/dev/null 
------------------------------------------------------------------------------