[comp.os.vms] Info-Vax Digest V0 #18

Info-Vax-REQUEST@KL.SRI.COM.UUCP (05/12/87)

Info-Vax Digest          Monday, 11 May 1987       Volume 0 : Issue 18

Today's Topics:
  Re: How do you ring bell in DCL file?
  MORIA
  Re: MORIA
  Re: How do you ring bell in DCL file?
  Fatal Bug in VAX C pointer indirection
  setup
  Submission for mod-computers-vax
  Re: Ban: "Submission for mod-computers-vax" etc.
  "automatic" insertion of DISCLAIMER in EDT...
  Q/A: Word processing move from 785 to MicroVAX
----------------------------------------------------------------------

Date: 10 May 87 18:48:05 GMT
From: ihnp4!inuxc!iuvax!bsu-cs!dhesi@ucbvax.Berkeley.EDU  (Rahul
      Dhesi)
Subject: Re: How do you ring bell in DCL file?

In article <312@skatter.UUCP> kuo@skatter.UUCP (Dr. Peter Kuo) writes:
>In article <154@siemens.UUCP>, jrv@siemens.UUCP writes:
>> ...Is there a way to specify [a control G] within a string
>> used with a 'write sys$output' statement?
>Have you tried putting in the ^G using EDT...?

That's the easy part.  The DIFFICULT part is convincing VAX/VMS not to
send a trailing carriage return/linefeed  when doing a 'write
sys$output".  This is the kind of operating system bug that is not
fatal, yet one that can grate on one's nerves.
--
Rahul Dhesi
ARPA:  bsu-cs!dhesi@iuvax.cs.indiana.edu
UUCP:  {ihnp4,seismo}!{iuvax,pur-ee}!bsu-cs!dhesi

------------------------------

Date: 10 May 87 01:49:00 GMT
From: hao!gatech!hubcap!ncrcae!ncr-sd!hp-sdd!ucsdhub!jack!man!wolf!bil
      lw@ames.arpa  (Bill Wisner)
Subject: MORIA

What is the -latest- version of MORIA? The one on ghostwheel.cmu.edu?
--
Bill Wisner
..{sdcsvax,ihnp4}!jack!wolf!billw

------------------------------

Date: 10 May 87 23:37:12 GMT
From: aramis!mende@RUTGERS.EDU  (Bob Mende)
Subject: Re: MORIA

Hi Bill,
  The most current version on Moria is 4.9.   But you will not find it
outside of U of Oklahoma.  For the rest of us there is version 4.8.  I
have just received it and if you want to FTP the .exe it can be gotten
from aim.rutgers.edu [dua0:[usr.mende.new_moria]moria.exe].
  Ver. 4.9 is suppose to be just some bug fixes from 4.8, but it there
is also a VAX C version.  It is the VAX Pascal version that has been
run thru a Pascal->C converter and some frobs here and there.
  Ver. 5.0 is still in dream land.  I dont know if we will ever see it
or what... but from the propaganda it looks good.

                                        Bob
--
        Bob Mende       mende@rutgers.edu       {...}!rutgers!mende

------------------------------

Date: 10 May 87 23:55:07 GMT
From: ihnp4!inuxc!iuvax!bsu-cs!corwin@ucbvax.Berkeley.EDU  (Paul
      Frommeyer)
Subject: Re: How do you ring bell in DCL file?

You must use either the SPECINS key in VAX EDT or the QUOTE function in
VAX TPU to enter the control characters. Just put them between double
quotes in a WRITE SYS$OUTPUT DCL command as you would normal text. I use
terminal control sequences extensively in my LOGIN.COM; clearing the
screen, setting VT240 colors, etc. However, you cannot do this:
        $ CLEAR :== WRITE SYS$OUTPUT "<ESC>[H<ESC>[J"
and then say
        $ CLEAR
because you will get an error message (either UNDEFSYM or IVVERB).
You must instead:
        $ CSYM :== "<ESC>[H<ESC>[J"
        $ CLEAR :== WRITE SYS$OUTPUT CSYM
which will do the job. This is also more efficient than something like:
        $ CLEAR :== @CLEARSCREEN


--
Paul "Corwin" Frommeyer        "Experience is no substitute for competence."
UUCP:
        {seismo,ihnp4}!{iuvax,pur-ee}!bsu-cs!corwin

------------------------------

Date: 11 May 87 00:22:01 GMT
From: ihnp4!inuxc!iuvax!bsu-cs!corwin@ucbvax.Berkeley.EDU  (Paul
      Frommeyer)
Subject: Fatal Bug in VAX C pointer indirection

(Sorry, had to move this from comp.lang.c++ to comp.lang.c and repost...)

Several other students and us were working on a software engineering project
involving the display of 39 or more colors on a VT240. We were writing in
VAX C under VMS 4.5. Our program used several lists to keep track of all
the data it needed for window size, current display, etc. Our lists were
interconnected, and in setting up list elements for new windows we
used extensive pointer indirection in calls to malloc().

What we found was, to say the least, interesting. Third-level pointer
indirection, such as list1->link2->link3->data worked fine in a call
such as list1->link2->link3 = (struct lista *) malloc (sizeof(struct lista));
Analysis in VAX DEBUG would reveal that link3 had a value, say, of 55080.

Now, if we attempted another call to malloc like
        pointer1->link2->link3 = (struct lista *) malloc... etc.
there was no problem. This would give link3 a value of, say, 55200 if
struct lista was 120 bytes long. But at one point we needed to
        pointer1->ptr2->ptr3->ptr4->ptr5->ptr6 = (struct lista *)... etc.

When we tried this, all hell broke loose! Malloc calls the system service
for allocating more virtual memory, in addition to performing some VAX C
housekeeping chores. Now, we would expect ptr6 to have a value of
55200, assuming malloc was giving contiguous memory, which it seems to do.
What we never expected was to get a value BETWEEN 55080 and 55200.

But that's exactly what happened! When malloc was called with more than
3 levels of pointer indirection, why, it just crashed! It would give a value
usually about 4 bytes more than the last byte for the structure pointed to by
link3, say about 55084. Malloc was overlapping virtual memory!! It took one
of our team members a day to figure out what was going wrong! Nowhere in any of
the VAX C manuals that we read does it caution against this! Noncontiguous
allocation might be expected, but overlapping addresses was definitely dirty
pool on the part of the computer. After much discussion
we concluded that the fault lay in the compiler; it was not
generating correct VAX-11 native code to do multiple indirection. We don't
know what it IS doing, really, but we can see that it doesn't work properly.
It doesn't seem that the fault could be at the system service level, but it
is impossible to tell because we cannot see the generated object code (our
installation does not posess a disassembler).

Digital might say this is a feature to keep programmers from using excessive
indirection, but what pray tell is wrong with excessive indirection,
especially when it allows manipulation of many interconnected lists?

Is there anyone out there who has encountered a similiar problem? Does
Unix C do this, too? We thought it might be the VAX hardware, but further
thought seemed to point to the compiler. There are already
more bugs than a bait store in the VAX C I/O library
routines for fseek() and lseek(), but those are at least documented in the
VAX C manual. A limitation on indirection should be, too.

Would anyone at Digital care to comment on this? Are there any fixes?
We're both graduating and job hunting, so getting hold of us may be tricky.

Anyway, beware deep pointer indirection in VAX C. It's a killer.

Paul Frommeyer ({ihnp4,seismo}!{pur-ee,iuvax}!corwin)
Russ Walker ({ihnp4,seismo}!{pur-ee,iuvax}!mnp)
Computer Science Dept.
Ball State University
Muncie, IN 47306

------------------------------

Date: Sun, 10 May 87 09:29 O
From: <BEN%TECHMAX.BITNET@wiscvm.wisc.edu> (Benjamin Pashkoff)
Subject: setup

Is it possible for those that mentioned a SETUP routine to send me copies?
I am currently writing something similar, and would like to see a couple of
models.

Thanks,

-------------------------------------------------------------------
|Ben Pashkoff                                   xx  xxxxxxxx      |
|System Engineer                                 xx  xxxxxx       |
|Biomedical Engineering                           xx    xx        |
|Technion, IIT                                     xx  xx         |
|Haifa, Israel 32000                                xxxx          |
|BEN@TECHMAX.BITNET                                  xx           |

------------------------------

Date: 11 May 87 12:35:19 GMT
From: Gary Upchurch <ecsvax!ncatgu@mcnc.org>
Subject: Submission for mod-computers-vax

Path: ecsvax!ncatgu
From: ncatgu@ecsvax.UUCP (Gary Upchurch)
Newsgroups: comp.sys.dec,comp.org.decus,mod.computers.vax
Subject: news software for VMS
Message-ID: <3126@ecsvax.UUCP>
Date: 11 May 87 12:35:18 GMT
Distribution: usa
Organization: NC A&T State Univ. Comp. Ctr.
Lines: 10
Keywords: VMS software news


Would like to know where I could get NEWS software to run on my vax 11/780.
Unfortunately, we do not have a C compiler so I may be out of luck.

Thanks much.

--
    Gary Upchurch
    Systems Programmer
    {decvax,akgua}!mcnc!ecsvax!ncatgu

------------------------------

Date: 7 May 87 02:40:30 GMT
From: munnari!vuwcomp!newbery@seismo.css.gov  (Michael Newbery)
Subject: Re: Ban: "Submission for mod-computers-vax" etc.

Hear hear! (Read read? :-)
Of the 87 articles I get to read in comp.os.vms today, not only are about
20 "Submission for mod-computers-vax" but I have seen most of the latter before!
With a real subject line!

I could do nicely without "Subject: (none)" too.
--
Michael Newbery

ACSnet: newbery@vuwcomp.nz  UUCP: {ubc-vision,alberta}!calgary!vuwcomp!newbery
Une boule qui roule tue les poules.             (Landslides kill chickens)

------------------------------

Date: 11 May 87 10:27:00 GMT+536:14
From: "Daniel  Gregory" <gregory@brl-lvax.ARPA>
Reply-to: "Daniel  Gregory" <gregory@brl-lvax.ARPA>
Subject: "automatic" insertion of DISCLAIMER in EDT...


>I wonder if you can tell me how to define a key that will include a
>predefined file into the current buffer and immedisately logout. The
>motivation for this question is when sending messages to some mail list
>( such as INFO-VAX) one often needs to include a paragraph of his/her own
>address(s) and disclaimer and soon.

First define edtini.edt in your login.com

$ define edtini sys$login:edtini.edt

Then create your disclaimer file (I used DISCLAIMER.TXT).
Now create edtini.edt and include this line

DEFINE KEY GOLD D AS "EXT INCLUDE DISCLAIMER.TXT =MAIN END; EXIT."

Anytime you are editing a file in or out of mail and press GOLD D the
disclaimer will be appended to the bottom of the message and you will
be exited from the editor.  If you do not wish to exit from the editor
just yet, remove  '; EXIT' from the line but leave in the period at the end.
See the EDT reference for the INCLUDE and EXT commands.
Pages EDT-141 and EDT-271 in my manual.

>        An related question, what does it take to associate speller inside
>EDT ? Do you know if anyone has done so ? I'd appreciate if you can offer
>me some advices or references.
>--------------------------------------------------------------------------
> From Kang Sun SUN@YALEVAX5.BITNET  @ 8-MAY-1987 16:59:11.89 EST
>==========================================================================

I don't know.  I don't use a speller.  Can anyone else answer this?

<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
<>      Dan Gregory                             GREGORY@BRL-LVAX.ARPA         <>
<>      BRL-LFD, B120                                                         <>
<>      Aberdeen Proving Grounds, MD. 21005                                   <>
<>      (301) 278-3485                                                        <>
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

------------------------------

Date: Mon, 11 May 87 07:41:36 PDT
From: nagy%warner.hepnet@lbl.arpa
Subject: Q/A: Word processing move from 785 to MicroVAX

In answer to questions relative to moving word processing from a
VAX-11/785 to a MicroVAX from:

> Les Flodrowski
> Assistant Director (Systems and Applications)
> Social Science Computing Laboratory
> University of Western Ontario

> Questions: - Will the MicroVAX handle 16 wordprocessing users, DECnet and
>              the six printers? (Some RUNOFF and TEK processing may
>              also be performed but we could restrict this to BATCH
>              usage only and put a JOB_LIMIT on the queue).
        My guess is YES.  We are doing software development on a LAVC of
        two MicroVAXes.  The systems each have full 16 MB of memory, the
        boot machine has a KDA50 with 2 RA81s and the 2nd system has an
        RQDX3 with RD53 (just used for paging/swapping).  Our maximum load
        seen on one system has been 12-14 interactive users with an additional
        4-6 subprocesses in use.  All doing software development edit/compile
        cycles.  At this level usage begins to be noticeable; our normal
        local is about 6-8 users per machine which gives excellant response.


>            - What's the I/O rate of a Unibus versus the Q32 bus?
        The Q22 bus actually has a greater I/O bandwidth than the Unibus
        attached to the VAX-11/780.  This is because the Unibus Adapter on
        the 780 is a bottleneck due (primarily) to the necessary memory
        mapping (similar situation applies to all the other VAXes with
        Unibuses and to PDP-11s like the 44 and 70; the 84 makes special
        provision with a DMA cache to provide more Unibus bandwidth).

>            - Would the RD53/RQDX3 be useful after we install the much
>              bigger and faster third party disk (i.e. for paging,
>              swapping, system disk, etc.) or should we move everything
>              to the larger disk?
        Pretty much move everything, unless you have some items which are
        only used once in a while and don't want to take up space on your
        big, fast disk with them.

>            - What bottlenecks or other problems should I watch out
>              for?
        All VAXes: avoid terminal controllers like the DZ11 which DO NOT
        have DMA for character output.  This is especially true for word
        processing.  However, in this case, the DHV11s are a good choice.

        TK50s are rather (understatement) slow and you might eventually
        get tired of doing your backups to them (especially as your big
        disk gets full).  It is nice that an RD53 will fit completely
        on one (we backup some of our MicroVAXes and VAXStations by an
        early morning job which runs automatically; then someone comes
        around in the morning and puts a new tape in for the next night).
        Solutions to this are the TU81-Plus (streaming 6250-bpi GCR tape
        with builtin cache) or the "coming" TK70 with greater capacity
        and performance than the TK50.

=Frank Nagy
=Fermilab Research Division EED/Controls
=FNAL::NAGY.HEPNET or NAGY@FNAL.Bitnet

------------------------------

End of Info-Vax Digest
**********************