======================================================================= 1 ===
Date:    3 Jul 1993 05:16:10 GMT
From:    agulbra@nvg.unit.no (Arnt Gulbrandsen)
Subject: Upper case reserved words - why?

Paul Vixie wrote in ";login:" about M3:
> (5) case is significant even for built-ins, so you _must_
> type a fair amount of your program text in UPPER CASE;

My question is simply, _why_ did the M3 committee choose to use upper case?

-- 
Arnt Gulbrandsen
agulbra@nvg.unit.no


======================================================================= 2 ===
Date:    Sat, 3 Jul 1993 22:03:47 GMT
From:    schwartz@roke.cs.psu.edu (Scott Schwartz)
Subject: Re: Upper case reserved words - why?

agulbra@nvg.unit.no (Arnt Gulbrandsen) writes:
   My question is simply, _why_ did the M3 committee choose to use upper case?

<engage sense of humor>

Making the common case difficult to type builds character.
Unfortunately most terminals have a Caps-Lock key, which will enable
fledgling M3 programmers to escape to FORTRAN mode by typing
everything in upper case, not just keywords.


======================================================================= 3 ===
Date:    4 Jul 93 00:38:08
From:    vixie@gw.home.vix.com (Paul A Vixie)
Subject: Re: Upper case reserved words - why?

I find that M3 code looks quite nice with all-UPPER-case reserved identifiers.
But then I use "Electric Modula 3 Mode" in GNU Emacs so I don't have to type
all that glorp.  But I wouldn't like typing it all even if it were in the same
case I usually type in -- if you're not using a language-sensitive editor, you
are wasting time and hurrying faster than you need to to your next RSI.
--
Paul Vixie
                                     "Be neither a conformist or a rebel,
<paul@vix.com>                        for they are really the same thing.
decwrl!vixie!paul                     Find your own path, and stay on it." (me)


======================================================================= 4 ===
Date:    Sun, 4 Jul 1993 22:23:21 GMT
From:    schwartz@roke.cs.psu.edu (Scott Schwartz)
Subject: Re: Upper case reserved words - why?

vixie@gw.home.vix.com (Paul A Vixie) writes: 
   I find that M3 code looks quite nice with all-UPPER-case reserved
   identifiers.

Aestetics and ergonomics should work together.  If the issue is how
nice the text of the program looks, then the right solution is to
print (not input) those identifiers in a different typeface, ala
tgrind.

   But then I use "Electric Modula 3 Mode" in GNU Emacs so I don't
   have to type all that glorp.  But I wouldn't like typing it all
   even if it were in the same case I usually type in -- if you're not
   using a language-sensitive editor, you are wasting time and
   hurrying faster than you need to to your next RSI.  

That's a good point, and in fact I do use emacs (dabbrev-expand is the
greatest thing ever), but the existance of emacs doesn't support
requiring upper case keywords.  Conversely, if you do require the use
of some powerful editor like epoch (or some other emacs variant), then
you can make keywords appear in any font or color you like, so there's
no point in hardcoding the inconvenient case into the language
definition.


======================================================================= 5 ===
Date:    6 Jul 93 11:41:44
From:    gary@odin.dfci.harvard.edu (Gary Beckmann)
Subject: Re: Upper case reserved words - why?

>>>>> "schwartz" == Scott Schwartz <schwartz@roke.cs.psu.edu> writes:
schwartz> Nntp-Posting-Host: roke.cse.psu.edu
          . . .

schwartz> Aestetics and ergonomics should work together.  If the issue is how
schwartz> nice the text of the program looks, then the right solution is to
schwartz> print (not input) those identifiers in a different typeface, ala
schwartz> tgrind.
	  . . .
schwartz> That's a good point, and in fact I do use emacs (dabbrev-expand is th
e
schwartz> greatest thing ever), but the existance of emacs doesn't support
schwartz> requiring upper case keywords.  Conversely, if you do require the use
schwartz> of some powerful editor like epoch (or some other emacs variant), the
n
schwartz> you can make keywords appear in any font or color you like, so there'
s
schwartz> no point in hardcoding the inconvenient case into the language
schwartz> definition.

Let's not forget our history folks.  Modula-3 is based on Modula-2 and
one of changes between Pascal and the Modula language was the
requirement that keywords be in upper case.  Now-a-days we have fancy
editors and printers ('course I only have a VT320 at home  -- any
donations? :-), but when the language was developed bitmap displays
were expensive.  It's all a matter of taste.

While we're on the subject, I use epoch (an X based extention to
emacs) and was wondering if anyone has put together a hilit.el mode
for M3, if not I'll post one that I'll hack together.

--
					Gary Beckmann
					gary@poseidon.dfci.harvard.edu

Disclaimer: I'm a consultant, they pay money so that they can
            ignore these opinions.  You can ignore them for free.

Quote:      "I never met a chocolate I didn't like."
                                              --Deanna Troi, STtNG



======================================================================= 6 ===
Date:    6 Jul 1993 06:51:16 -0700
From:    PJENSEN@CSI.compuserve.com
Subject: Upper case reserved words - why?

Date: 06 Jul 93 09:46:10 EDT
X-Received: by src-mail.pa.dec.com; id AA16011; Tue, 6 Jul 93 06:51:13 -0700
X-Received: by inet-gw-2.pa.dec.com; id AA23069; Tue, 6 Jul 93 06:51:12 -0700
X-Received: by iha.compuserve.com (5.67/5.930129sam)
X-Received: by src-news.pa.dec.com; id AA27929; Tue, 6 Jul 93 06:51:15 -0700

It is interesting that the issue of case in keywords and reserved identifiers
is being raised, as I was on the point of raising it myself.  My favorite
style of program presentation is the WEB format used in Knuth's recent work,
with keywords in lower-case bold, and identifiers in lower-case italic.
Since no sane person would actually want to use a lower-case "homonym" of
a predefined M3 word as an identifier, I would urge that compilers be
required to accept either solid upper or solid lower case for these words.
(Although I am reluctant to urge any tinkering with such a generally
admirable document as the M3 reference manual.)

- Phil Jensen
pjensen@csi.compuserve.com



======================================================================= 7 ===
Date:    6 Jul 1993 11:46:23 -0700
From:    jacobi.PARC@xerox.com
Subject: Re: Upper case reserved words - why?

Date: Tue, 6 Jul 1993 11:42:24 PDT
X-Received: by src-mail.pa.dec.com; id AA20293; Tue, 6 Jul 93 11:46:21 -0700
X-Ns-Transport-Id: 0000AA007B74C0DF2FF9
X-Received: by inet-gw-1.pa.dec.com; id AA21456; Tue, 6 Jul 93 11:46:20 -0700
X-Received: from Charon.PARC.Xerox.xns by alpha.xerox.com via XNS id <11769>; T
ue, 6 Jul 1993 11:43:42 PDT
X-Received: by src-news.pa.dec.com; id AA15123; Tue, 6 Jul 93 11:46:22 -0700

Because upper case keywords are tradition, and, unless there is some benefit it
is unwise to break with traditions; specially good ones.
Because I prefer lower case identifiers which I have to read and upper case
keywords which I do not need to read (because the brain recognizes the pattern
without reading the characters).  I like keywords and identifiers being
different; this makes it more easy to navigate in a program text.
Christian


======================================================================= 8 ===
Date:    7 Jul 93 11:19:40
From:    andru@tonic.lcs.mit.edu (Andrew Myers)
Subject: Re: Upper case reserved words - why?


Around here we love Modula-3 semantics, but are not fond of its
uppercase keywords. Since we are also CLU hackers from way back, we find
semicolons repugnant as well. The Modula-3 users here use my
"m3process" preprocessor to avoid using upper case or semicolons.
We find that writing in this dialect of Modula-3 makes programs 
more readable, easier to type, and less prone to those silly semicolon
omissions.

With appropriate flags, the preprocessor will only do the case conversion.
This preprocessor can be obtained by anonymous ftp from
pion.lcs.mit.edu:/pub/m3su. 

Here's a sample of an interface written in this Modula-3 dialect:
(provided by Mark Day)

    interface SimpleCacheWindow

    from Abbrev import Card
    from StdExcept import Bounds

    import VBT, PaintOp

    type

      T <: Public

      Public = Private object methods
	setPixel(addr: Card, c: PaintOp.T) raises {Bounds}
	setPixelNoSync(addr: Card, c: PaintOp.T) raises {Bounds}
	reset()
	init(size: Card)
      end

      Private <: VBT.Leaf

    procedure Create (size: Card): T

    end SimpleCacheWindow.


Here is an excerpt from the manual page:


   Public Domain                                                 M3PROCESS(1)

   NAME
     m3process - process Modula 3 source files

   SYNOPSIS
     m3process [ -o output-file ] [ -uldfps ] <m3su source file>

   DESCRIPTION
     m3process creates Modula-3 interface and implementation files (both gen-
     eric and normal) from source files written in an almost identical
     language that I will call m3su for convenience. There are two major
     differences between m3su and Modula-3. In m3su, keywords and reserved
     words may be either all-uppercase or all-lowercase. In addition, semi-
     colons are nowhere allowed in m3su.

     Variables may be introduced at any point within a block of code. They
     will remain in scope until the end of the block. To indicate this kind
     of scoping, a double colon "::" is placed after the variable declara-
     tions (rather than a "begin...end"). Ordinary block-style variable
     declarations are still allowed.

     Variables may also be introduced using the "with" statement in a similar
     manner: the word "do" may be omitted and replaced with a double colon.
     No "end" needs to terminate the "with". Instead, the variables intro-
     duced will remain in scope until the end of the block. The commas that
     Modula-3 requires between the individual variable declarations may be
     omitted.

     Semicolons are not allowed in declarations of formals to a procedure.
     They may be omitted entirely or replaced by commas.

     m3process will insert line number information in the processed results
     that will allow compilation errors to be correctly located in the origi-
     nal m3su file.

     Sometimes an identifier from a standard package looks like a keyword, in
     lowercase, such as "val". To let m3process know that the identifier is
     not a keyword, it must be preceded by a backslash:  "\val".  Identifiers
     that are part uppercase, part lowercase, will not be treated as keywords
     (e.g. "Text").

     m3process parses m3su source files considerably faster than the current
     implementation of the Modula-3 compiler, so you can catch syntax errors
     much more quickly (though it doesn't recover from errors).



======================================================================= 9 ===
Date:    Thu, 8 Jul 1993 15:18:54 GMT
From:    dave@yost.com (Dave Yost)
Subject: Re: Upper case reserved words - why?

In article <ANDRU.93Jul7111940@tonic.lcs.mit.edu> andru@tonic.lcs.mit.edu (Andr
ew Myers) writes:
>
>Around here we love Modula-3 semantics, but are not fond of its
>uppercase keywords. Since we are also CLU hackers from way back, we find
>semicolons repugnant as well. The Modula-3 users here use my
>"m3process" preprocessor to avoid using upper case or semicolons.
>We find that writing in this dialect of Modula-3 makes programs 
>more readable, easier to type, and less prone to those silly semicolon
>omissions.

NICE!  ... I mean, nice

-- 
  Dave Yost
      @    .COM


======================================================================= 10 ===
Date:    Sat, 10 Jul 1993 18:00:44 GMT
From:    jmkomine@napier.uwaterloo.ca (John Kominek)
Subject: DEC FUSE

What work has there been done in fitting Modula-3 into the DEC FUSE
(Friendly User Software Environment) system?

John Kominek


======================================================================= 11 ===
Date:    13 Jul 1993 13:56:35 GMT
From:    dsims@leo.ece.uc.edu (David Sims)
Subject: SRC M3 port to SunOS 5.2 or OSF/1 ???

Has anyone begun work on a SRC M3 port to either SunOS 5.2 or OSF/1?  We
have a student who is interested in incorporating POSIX threads into SRC
M3.  We're trying to get the SPARC release of SRC M3 to compile under
SunOS 5.2, but imake.c won't even compile and we haven't found a fix yet.

Anyway, if anyone else is working on one of these ports, please let me
know.  Thanks.
-- 
David L. Sims               Dept. of Electrical and Computer Engineering
david.sims@uc.edu           University of Cincinnati
+1 (513) 556-2499           Cincinnati Ohio  45221-0030
PGP mail preferred.         USA


======================================================================= 12 ===
Date:    Mon, 12 Jul 1993 08:32:11 GMT
From:    tito@di.unipi.it (Tito Flagella)
Subject: X Window Interface

I have a graphical application using the m3X11R4 library and the standard libX 
library. 
The application works well both with MIT X11R5 server and with the Open Windows
 2.0 news server.
When used against an Open Windows 3.0 news server the application causes the se
rver to crash. I tried to link the application both with the X11R5 and OpenWind
ows X library, but without any success.

Anybody is aware of similar problems using the Modula 3 interface to X Window w
ith the OpenWindows 3.0 news server? Is there a more recent X11R5-based Modula 
3 graphical library?

Tito Flagella
-------------------------------------------------------------------
Tito Flagella			  Information Technology Consultant
Universita' di Pisa		  ---------------------------------
Dipartimento Informatica	  email:   tito@di.unipi.it
Corso Italia 40 		  fax  :   +39 (50) 510226
I-56125 Pisa    		  tel  :   +39 (50) 510263
-------------------------------------------------------------------



======================================================================= 13 ===
Date:    Wed, 14 Jul 1993 18:10:39 GMT
From:    strzelin@sscdaq.phy.bnl.gov (Bob Strzelinski)
Subject: M3 Success Stories

Here at BNL, I have M3 2.11 up and running on software distribution disks for
SGI (IRIX 4.0.5) and DEC (Ultrix 4.3) systems, and will have a SUN version up
as soon as I can free up (or buy) some disk space.  IMHO, M3 is a superior
language to C++ in many ways.  Unfortunately, the high-energy physics community
here in particular, and the scientific programming community in general, seems
to be moving toward C++ (perhaps by default) as its standard OOP language.  I
think this is a mistake, at least without considering any serious alternatives.
I have been trying to advance the case for M3 as an alternative strongly- and
statically-typed language here.  So far, I have met with little success or
enthusiasm.  In order to lend weight to my arguments, I am asking M3 users
out there for some anecdotal record of their experiences using M3 in non-trivia
l
projects.  Email me your success (or horror, let's be balanced) stories and if
the response is significant, I will post a summary to this newsgroup (for you
other M3 advocates to use in persuading your boss, colleagues, pets, etc).

By the way, I personally am primarily interested in hearing about real-time,
data acquisition, and GUI development projects (but I will include projects in
other areas in the summary).  Thanks in advance to anyone who responds to this
request.


///////////////////////////////////////////////////////////////////////////////
// Robert J Strzelinski                 // Brookhaven National Laboratory    //
// strzelin@sscdaq.phy.bnl.gov          // Upton, NY 11973-5000              //
///////////////////////////////////////////////////////////////////////////////


======================================================================= 14 ===
Date:    Wed, 14 Jul 1993 19:51:36 GMT
From:    jredford@shearson.com (John Redford)
Subject: Re: X Window Interface



In article <1993Jul12.083211.18682@serra.unipi.it> tito@di.unipi.it (Tito Flage
lla) writes:

   I have a graphical application using the m3X11R4 library and the
   standard libX library.  The application works well both with MIT
   X11R5 server and with the Open Windows 2.0 news server.  When used
   against an Open Windows 3.0 news server the application causes the
   server to crash. I tried to link the application both with the
   X11R5 and OpenWindows X library, but without any success.

   Anybody is aware of similar problems using the Modula 3 interface
   to X Window with the OpenWindows 3.0 news server? Is there a more
   recent X11R5-based Modula 3 graphical library?


I personally have a couple problems using m3X11R4 with X11R5. The main
one is that my window manager isnt getting events it should, like the
'raise' button being pressed in a trestle window.

I had the Openwindows problem. Got this response. Tried it. Worked.

------------------------------------------------------------
From: David Goldberg <goldberg@parc.xerox.com>
Subject: Re: Openwindows dies
 
1.  Patch xnews.  The Sun bugID for this is

        1082200 UngrabKey for a particular keycode after GrabKey
                for AnyKey crashes xnews

    Sun has a patch for this.  The one I got from Sun was labeled:

        Patch-ID# 100444-14
        Keywords: X11-NeWS, server, patch, xnews
        Synopsis: Openwindows V3.0 Server Patch 3000-22
        Date:04/01/92

2.  Patch Trestle

    In XClient.m3, replace

        X.XGrabKey(trsl.dpy, X.AnyKey, X.AnyModifier, ur.w, X.True,
          X.GrabModeAsync, X.GrabModeAsync);

    with

        VAR min, max: INTEGER;
        BEGIN
          X.XDisplayKeycodes(trsl.dpy, ADR(min), ADR(max));
          FOR i := min TO max DO
            X.XGrabKey(trsl.dpy, i, X.AnyModifier, ur.w, X.True,
                       X.GrabModeAsync, X.GrabModeAsync);
          END;
        END;




======================================================================= 15 ===
Date:    Sat, 17 Jul 1993 01:12:33 GMT
From:    tmetzger@cancer.csil.sfu.ca (Thomas Metzger)
Subject: RANK AMATEUR QUESTIONS!

Well, it seems that I've got a project due that has to be written in Modula 3,
but I don't know the first thing about how the compiler works.

The following programs do not compile:


INTERFACE Job;

(* dummy *)

TYPE Job <: REFANY;
END Job.



MODULE Job;

(* Dummy implementation *)

REVEAL Job = BRANDED OBJECT
    cputime : INTEGER;
    entrytime : INTEGER
    END;

BEGIN
END Job.

Now granted, they're not very interesting, but I need a 'stub' for testing
purposes.  Both fail to compile, citing an "incomplete program" fatal error.

SO, I can see that they're probably incomplete, but just exactly what must I
add to them to make them minimally complete?

Please respond in email, since I'm sure no REAL Modula3 programmers are too
interested in this stuff.

Thanks!

-- 
()~`~`~`~`~`~`~`~`~`~`() "Baldric, you wouldn't know a cunning plan if it      
() Tom Metzger        ()  painted itself blue and danced naked on top of aa
() tmetzger@sfu.ca    ()  harpsichord singing `cunning plans are here again!'" 
 
()_,_,_,_,_,_,_,_,_,_,()          -E. Blackadder (III)


======================================================================= 16 ===
Date:    Sat, 17 Jul 1993 13:59:21 GMT
From:    whitney@christie.Meakins.McGill.CA (Whitney de Vries)
Subject: Modula better than C

L. Griffiths wrote a paper called _Modula-2 is Three Times
less Error Prone than C_. Proceedings of the Second International
Modula-2 Conference, 332-338. Loughborough University, UK. Sep 1991.

The paper does a quantitive analysis of error classes as they occur
when programming in C or in Modula-2, respectively.

Has anyone seen any similar papers in favour of the successors
of Pascal over C-like languages. Equally intresting would
published contra-arguments.

Thanks, 
Whitney




======================================================================= 17 ===
Date:    Fri, 16 Jul 1993 22:30:44 GMT
From:    pc0100@medtronic.COM (Paul R. Cole)
Subject: SRC M3 ftp sources, Other M3 resources

Looking for the FTP site(s) for the M3 sources and any other good M3 stuff.
I'm new to M3 but am an old hand at Pascal ( esp. HP PASCAL)/M2 and am
looking for some OOP lang. other than C++. (Which I use for the same
reason I use MS-DOS, I have to eat :-) ).
I'm sure this is FAQ stuff but I haven't seen one here or in our system.
Thanks


======================================================================= 18 ===
Date:    Sun, 18 Jul 1993 01:37:55 GMT
From:    larson@plains.NoDak.edu (Steve Larson)
Subject: Modula-3 problems with NeXTSTEP 3.0

I saw a posting awhile ago giving a solution to problems installing
libm3 on the NeXT.  The archive on gatekeeper has not been updated
recently so I'll ask here.

I get the following error when installing libm3:
# m3make build_install.libm3
Sat Jul 17 19:07:41 CDT 1993 ****************************************** libm3
zcat libm3-2.11.tar.Z | /bin/tar xf -
/m3/M3/bin/m3make -f m3makefile.libm3 all install
dirname: Command not found.
mkdir libm3/NEXT
-------------------------------------- libm3/NEXT
Make:  Don't know how to make /M3Config.m3.  Stop.
*** Exit 1
Stop.
*** Exit 1
Stop.

I believe it was a cpp problem but I don't remember the solution.  Would
someone please Email me?  Thanks. 

Steve Larson
larson@plains.NoDak.edu



======================================================================= 19 ===
Date:    19 Jul 1993 16:21:22 GMT
From:    madmats@lglsun.epfl.ch (Mats Weber)
Subject: M3 reference manual


Hello,

I have an M3 reference manual dated Novermber 1, 1989 and published by
DEC SRC. I know it is not the last version since it does not include
generics.

I know the last version was published in a book, is it also available 
in postscript form through anonymous ftp ?

Thanks

Mats


======================================================================= 20 ===
Date:    23 Jul 1993 13:12:21 GMT
From:    mester@tamfana.informatik.uni-dortmund.de (Arnulf Mester)
Subject: Thread - Question: reverse to yield?

   Is there a possibility that a thread gets (nearly) the whole
   processor time for a specific interval?
   (A sort of  reverse function to Thread.Yield();i)
   Stated in other words: That a thread is priorized over all others
   for a specific interval?

Thanks in advance,
kind regards,
Arnulf Mester

       ___ 
      ////  Arnulf Mester, Dipl.-Inform.  
 UNI DO//   Subj.: Distrib. Systems / Comp. Networks (Prof.Dr. H.Krumm)
___ ////  Internet: mester@ls4.informatik.uni-dortmund.de 
\*\\///   Mail: A.Mester, Informatik IV, University, 44221 Dortmund, Germany
 \\\\/    Phone: +49 231 755-4662 (Q), Secretariate: -2596, Fax: -2386 



======================================================================= 21 ===
Date:    23 Jul 1993 12:09:45 GMT
From:    mester@tamfana.informatik.uni-dortmund.de (Arnulf Mester)
Subject: ViewportVBT-question: ScrollTo coordinates?

   What values I have to use in the ViewportVBT for ScrollTo?
   The documentation requests coordinates as Rect.T.
   I suspect that it does not want world coordinates (0-1,0-1),
   neither domain ranges (visible region of VBT).
   But where I can get the intervals from I can use Rects from here?

Thanks in advance,
kind regards,
Arnulf Mester

       ___ 
      ////  Arnulf Mester, Dipl.-Inform.  
 UNI DO//   Subj.: Distrib. Systems / Comp. Networks (Prof.Dr. H.Krumm)
___ ////  Internet: mester@ls4.informatik.uni-dortmund.de 
\*\\///   Mail: A.Mester, Informatik IV, University, 44221 Dortmund, Germany
 \\\\/    Phone: +49 231 755-4662 (Q), Secretariate: -2596, Fax: -2386 


======================================================================= 22 ===
Date:    23 Jul 1993 12:21:59 GMT
From:    mester@tamfana.informatik.uni-dortmund.de (Arnulf Mester)
Subject: Zeus - Question: new window during animation?

   Does an possibility exist to interactively open a window
   (e.g. a view) during the running animation?
   Background: The user should be able to click on a specific portion of a
   system view to get detailed information about it.

Thanks in advance,
kind regards,
Arnulf Mester

       ___ 
      ////  Arnulf Mester, Dipl.-Inform.  
 UNI DO//   Subj.: Distrib. Systems / Comp. Networks (Prof.Dr. H.Krumm)
___ ////  Internet: mester@ls4.informatik.uni-dortmund.de 
\*\\///   Mail: A.Mester, Informatik IV, University, 44221 Dortmund, Germany
 \\\\/    Phone: +49 231 755-4662 (Q), Secretariate: -2596, Fax: -2386 


======================================================================= 23 ===
Date:    23 Jul 1993 13:10:30 GMT
From:    mester@tamfana.informatik.uni-dortmund.de (Arnulf Mester)
Subject: Zeus - Question: View-manipulation after animation end?

   Is there a possibility, that after ending an animation run,
   a specific view gets the input focus or the input focus could
   be moved to this view?
   Background: Certain views contain histories about the run
   and the user is able the toggle specific options of the view
   and to scroll within this history. After animation end 
   this scrolling unfortunately isn't possible any longer.

   Current solution: (non-elegant, but it works)
   Definition of a feedback event, which allows the Algorithm (Run)
   to terminate.

Thanks in advance,
kind regards,
Arnulf Mester

       ___ 
      ////  Arnulf Mester, Dipl.-Inform.  
 UNI DO//   Subj.: Distrib. Systems / Comp. Networks (Prof.Dr. H.Krumm)
___ ////  Internet: mester@ls4.informatik.uni-dortmund.de 
\*\\///   Mail: A.Mester, Informatik IV, University, 44221 Dortmund, Germany
 \\\\/    Phone: +49 231 755-4662 (Q), Secretariate: -2596, Fax: -2386 


======================================================================= 24 ===
Date:    23 Jul 1993 13:00:40 GMT
From:    mester@tamfana.informatik.uni-dortmund.de (Arnulf Mester)
Subject: Question to Zeus: interaction with panel?

   
   Q1: How can I control thread-processes, which are forked off from the RUN
       procedure, with the Zeus-Panel-Buttons STOP,STEP,ABORT ?
       Background: the forked processes are simulating a distributed algorithm.

   Q2: Is there a possibility to use the Zeus RUN,ABORT - Buttons 
       in the Run-procedure, analog to ZeusPanel.Pause(..)?

Thanks in advance,
kind regards,
Arnulf Mester

       ___ 
      ////  Arnulf Mester, Dipl.-Inform.  
 UNI DO//   Subj.: Distrib. Systems / Comp. Networks (Prof.Dr. H.Krumm)
___ ////  Internet: mester@ls4.informatik.uni-dortmund.de 
\*\\///   Mail: A.Mester, Informatik IV, University, 44221 Dortmund, Germany
 \\\\/    Phone: +49 231 755-4662 (Q), Secretariate: -2596, Fax: -2386 


======================================================================= 25 ===
Date:    23 Jul 1993 12:26:23 GMT
From:    mester@tamfana.informatik.uni-dortmund.de (Arnulf Mester)
Subject: Question to VBTkit: reverse operation to ZSplit.Insert?

   Does a reverse operation to ZSplit.Insert exists, i.e.
   a function, which closes a window opened with ZSplit.Insert?

Thanks in advance,
kind regards,
Arnulf Mester

       ___ 
      ////  Arnulf Mester, Dipl.-Inform.  
 UNI DO//   Subj.: Distrib. Systems / Comp. Networks (Prof.Dr. H.Krumm)
___ ////  Internet: mester@ls4.informatik.uni-dortmund.de 
\*\\///   Mail: A.Mester, Informatik IV, University, 44221 Dortmund, Germany
 \\\\/    Phone: +49 231 755-4662 (Q), Secretariate: -2596, Fax: -2386 


======================================================================= 26 ===
Date:    23 Jul 1993 12:24:36 GMT
From:    mester@tamfana.informatik.uni-dortmund.de (Arnulf Mester)
Subject: Zeus - Question: communication between views?

   According M.H. Brown, Zeus: A System for Algorithm Animation and 
   Multi-View Editing. Palo Alto, 1992 (pg.20) communication from
   program to views uses interesting events (IE) and from a view 
   to the program uses feedback events (FE).

   In a special setting here interesting events are sent from the
   Run-procedure to two different views. Both deliver feedback events to
   the appropriate procedures in the main program (FE ViewI, FE ViewII).
   According a special FE in ViewII a special action in ViewI should 
   happen. Therefore "FE ViewII" delivers an IE to ViewI.

                 IE       Hauptprogramm          IE 
   View I  <-------------    Run        -------------------------> View II
   |  |      FE                                                       |
   |  ------------------->  FE View I             FE                  |
   | - - - - - - - - - -    FE View II   <-----------------------------
             IE                .....

   Problem: apparently a "deadlocked" system.
   
   Documentation excerpt:
     Feedback  events  are
     delivered  to the algorithm; they are typically generated by
     a view.  Feedback events occur with VBT.mu  locked  and  the
   				         ^^^^^^^^^^^^^^
     algorithm   Paused.   Update  events  are  generated  by  an
     ^^^^^^^^^^^^^^^^^^^
     algorithm in response to feedback events and  are  delivered
     to  views;  they  occur with VBT.mu locked and the algorithm
     Paused.

   Our (non-elegant but running) solution for the moment:
   In "FE ViewII" a global boolean variable will be set true.
   In the "Run-Procedure" this variable will be checked.
   If its true, an IE to ViewI will be emitted.

   Is there an elegant solution possible?
 
Thanks in advance,
kind regards,
Arnulf Mester

       ___ 
      ////  Arnulf Mester, Dipl.-Inform.  
 UNI DO//   Subj.: Distrib. Systems / Comp. Networks (Prof.Dr. H.Krumm)
___ ////  Internet: mester@ls4.informatik.uni-dortmund.de 
\*\\///   Mail: A.Mester, Informatik IV, University, 44221 Dortmund, Germany
 \\\\/    Phone: +49 231 755-4662 (Q), Secretariate: -2596, Fax: -2386 


======================================================================= 27 ===
Date:    23 Jul 1993 13:02:23 GMT
From:    mester@tamfana.informatik.uni-dortmund.de (Arnulf Mester)
Subject: Question to Zeus: data types in evt-file?

   Is there a way to define data TYPE's in the *.evt file ?
   I like to create an event like:
   MyView.evt

   > IMPORT List.T,Fmt.List (* <- that's o.k.*)
   >
   > TYPE station = RECORD
   >        name  :TEXT := "undefined";
   >        color :TEXT := "Black";
   >      END; 
   >
   >OUTPUT Init(StationList:List.T [Fmt.ListToText]);

   My intention is to create a VIEW - object so that i can import a 
   MyViewViewClass,MyViewAlgClass, MyViewIE,
   in the algorithem so that i can use a construct like this:

   >IMPORT MyViewIE,...;

   >PROCEDURE Run(self:T) RAISES {Thread.Alerted}=
   >VAR NewStation  : REF MyViewAlgClass.station;
   >    StationList : List.T;
   >BEGIN
   > NewStation := NEW(REF MyViewAlgClass.station,name:="First-Point",
                                                  color:="Red");
   > StationList := List.Append1D(StationList,NewStation);
   > MyViewIE.Init(self,StationList);
   
   It is posible to define an external interface "Station.i3" and to
   import this in the algorithm-,view- and MyView.evt implementations,
   but that isn't effectiv, because these type belong to the a special
   View. The  algorithm- and viewi mplementations
   have declarations like:

   > NewStation := NEW(REF Station.station,name:="First-Point",
                                           color:="Red");

   The manpages of m3zume contains the following: 
 
     Before any of these
     procedure  headers,  the  procedure arguments, followed by a
     section introduced by the keyword ALGDATA that contains  the
     data fields that should belong to a <basename>AlgClass.T.
     ^^^^^^^^^^^
     
Thanks in advance,
kind regards,
Arnulf Mester

       ___ 
      ////  Arnulf Mester, Dipl.-Inform.  
 UNI DO//   Subj.: Distrib. Systems / Comp. Networks (Prof.Dr. H.Krumm)
___ ////  Internet: mester@ls4.informatik.uni-dortmund.de 
\*\\///   Mail: A.Mester, Informatik IV, University, 44221 Dortmund, Germany
 \\\\/    Phone: +49 231 755-4662 (Q), Secretariate: -2596, Fax: -2386 


======================================================================= 28 ===
Date:    23 Jul 1993 23:08:48 -0700
From:    heydon@src.dec.com
Subject: Re: Question to VBTkit: reverse operation to ZSplit.Insert?

Date: Fri, 23 Jul 93 23:08:46 -0700
X-Received: by pebbles.pa.dec.com; id AA08008; Fri, 23 Jul 93 23:08:46 -0700
X-Received: by src-news.pa.dec.com; id AA12208; Fri, 23 Jul 93 23:08:47 -0700
X-Mts: smtp


>  Does a reverse operation to ZSplit.Insert exists, i.e.
>  a function, which closes a window opened with ZSplit.Insert?

The Split.Delete procedure is the inverse of ZSplit.Insert. Since 
a ZSplit.T is a subtype of a Split.T, all of the procedures in the 
Split interface apply to ZSplit's.

>From the Split interface: 

  PROCEDURE Delete(v: T; ch: VBT.T) RAISES {NotAChild};
  (* Delete the child "ch" of the split "v", detach "ch", and mark 
     "v" for redisplay. *)

In this comment, the phrase "detach ch" simply means that "ch"'s 
parent is set to NIL.

Allan Heydon					heydon@src.dec.com
DEC Systems Research Center			(415) 853-2142
130 Lytton Ave.					(415) 853-2104 (FAX)
Palo Alto, CA 94301


======================================================================= 29 ===
Date:    24 Jul 1993 19:21:59 GMT
From:    d92hl@efd.lth.se (Henrik Laurila)
Subject: Amiga M3 Compiler

I have heard of a publicdomain modula-3 compiler for the Amiga. Does 
anyone know more about this, or if it is available at any anonymous ftp-site?

Thanks.


    /HL



-- 
! Henrik Laurila  ! University of Lund    ! +46-(0)40 960766,+46-(0)46 107697 !
! Kvartettgatan 6 ! Department of Physics ! Henrik.Laurila@fysik.lu.se        !
! 215 71  MALMO   ! Kryolab               ! FYSIK_KRYO@ursula.lucas.lu.se     !
! Sweden          ! Lund, Sweden          ! d92hl@efd.lth.se                  !


======================================================================= 30 ===
Date:    Mon, 26 Jul 1993 18:24:58 GMT
From:    grlw1@cus.cam.ac.uk (Rich Walker)
Subject: gnu modula-3

Is there a status on this yet?

I've just discovered I need to have a large Modula-3 program running on a machi
ne
that has gcc (sort of) but not the SRC Modula-3 (Acorn Archimedes _without_ Ris
cIx);
anyone any idea which would port faster?

(help!)

-- 
--- Rich! Walker (grlw1@cus.cam.ac.uk)
"This government hasn't even got whips and tellers who
are capable of counting. No wonder this country
is up to its neck in debt"
- Dennis Skinner, Labour MP


======================================================================= 31 ===
Date:    28 Jul 1993 12:13:34 -0700
From:    mdec@VAX1.cmr.ca (Michel de Champlain)
Subject: Mailing list

Date: Wed, 28 Jul 1993 15:13:20 -0400 (EDT)
X-Mailer: ELM [version 2.4 PL5]
X-Received: by src-mail.pa.dec.com; id AA15738; Wed, 28 Jul 93 12:13:25 -0700
X-Content-Type: text
X-Content-Length: 445       
X-Received: by inet-gw-1.pa.dec.com; id AA06976; Wed, 28 Jul 93 12:13:14 -0700
X-Received: by VAX1.cmr.ca (5.65/DEC-Ultrix/4.3)
X-Received: by src-news.pa.dec.com; id AA29177; Wed, 28 Jul 93 12:13:32 -0700


Please put me on your M3 mailing list

Thanks,

-------------------------------------------------------------------------
 Michel de Champlain                               Email: mdec@cmr.ca
 Computer Science and Engineering Department       Fax:   (514) 358-6799
 College Militaire Royal de St-Jean                Voice: (514) 358-6628
 Richelain, QC  J0J 1R0, CANADA
-------------------------------------------------------------------------


======================================================================= 32 ===
Date:    28 Jul 1993 23:24:39 -0400
From:    neeri@err.ethz.ch (Matthias Neeracher)
Subject: RFD: comp.programming.literate

      Request for Discussion: comp.programming.literate
      -------------------------------------------------

Proposed name:              comp.programming.literate
Proposed moderation status: unmoderated

Proposed Charter: A forum for the discussion of issues related
   to literate programming.

(1) To share ideas, questions, experiences, and knowledge about the
    reading and writing of literate programs.

(2) To discuss the merits of the currently existing literate
    programming tools.

(3) To discuss the design of new literate programming tools.

Background: What is Literate Programming?

In an article published in _The Computer Journal_ 27 (1984), 97-111,
Donald E. Knuth proposed a "literate" programming style:

     I believe that the time is ripe for significantly better
     documentation of programs, and that we can best achieve this by
     considering programs to be works of literature. Hence, my title:
     "Literate Programming."

     Let us change our traditional attitude to the construction of
     programs: Instead of imagining that our main task is to instruct
     a *computer* what to do, let us concentrate rather on explaining
     to *human beings* what we want a computer to do.

     The practitioner of literate programming can be regarded as an
     essayist, whose main concern is with exposition and excellence of
     style. Such an author, with thesaurus in hand, chooses the names
     of variables carefully and explains what each variable means. He
     or she strives for a program that is comprehensible because its
     concepts have been introduced in an order that is best for human
     understanding, using a mixture of formal and informal methods that
     reinforce each other.

A literate programming system can be characterized by the following
properties:

 - The compilable program and the publishable documentation should be
   generated *automatically* from a *single* document.

 - The program can be presented in the order that is best for human
   understanding, regardless of any requirements of the programming
   language.

 - The program should be automatically indexed and cross-referenced.

Knuth's original system, called WEB, generated Pascal code and a TeX
documentation. Most tools relating to the TeX system have been written
using WEB, and the TeX and Metafont programs have been published in book
form.

Today, there are Literate Programming systems for a wide range of
programming languages and documentation systems. Specialized Literate
Programming tools have been written for Ada, Awk, C, C++, Fortran,
Modula-2, Modula-3, Pascal and Scheme, and generic tools exist that
can generate almost any programming language (including Perl and sh).

Documentation systems supported include TeX, Troff, and Word for
Windows.

Existing Resources

The mailing list LitProg@SHSU.EDU has existed for about a year. There
are currently more than 300 subscribers and an average of about 80
messages (corresponding to about 150K of traffic) per month in the
first 6 months of this year.

If a newsgroup is created, mechanisms are already in place to support
a mirrored gateway between it and the existing mailing list.  For
reference purposes, the newsgroup will be fully archived by the host
sponsoring the mailing list.

Discussion

Discussion should be confined to news.groups. Please do not post
responses to any other groups. Discussions may also be e-mailed to
neeri@iis.ee.ethz.ch if posting is not possible.

Assuming there is a consensus that the group comp.programming.literate
should be created, voting will start 21 days from the first posting
date of this request.  Voting instructions will be published in a Call
for Votes to the same newsgroups that see this Request for Discussion.
Both this Request for Discussion and the Call for Votes will be
crossposted to the "LitProg@shsu.edu" mailing list.

Matthias
-- 
Matthias Neeracher                                      neeri@iis.ethz.ch
  "For a successful technology, reality must take precedence over public
   relations, for Nature cannot be fooled." - Richard P. Feynman


