[comp.lang.ada] PL/1 a dead language?

angst%csilvax@hub.ucsb.edu (vaguely human) (05/25/88)

Ok, so this has nothing to do with PL/1.  Got you to look at least.

Anyone have any negative experiences with the TeleGen 2.15 (I think)
compiler for the Sun 3?  We are engaged in a fault tolerant software
experiment, and are using the TeleGen compiler.  Our programs have
many concurrent tasks, and it seems that the TeleGen compiler is way
faulty.  For one thing, it seems that guards (i.e. when statements)
on accept statements simply do not get evaluated sometimes.

I enclose a short sample program.

-------------------- START OF PROGRAM ---------------------

with text_io; use text_io;

procedure blah is

    task bogus is
	entry maybe;
    end bogus;

    task body bogus is
	x : integer := 1;

    begin
	loop
	    if x > 10 then
		put_line ("x>10");
	    end if;
	    select
		when (x > 10) =>
		    accept maybe do
			put_line ("we made it");
		    end;
		    exit;
	    or				-- XXX
		delay 1.0;
		x := x + 1;
		put_line ("can't accept yet");
	    end select;
	end loop;
    end bogus;

begin
    bogus.maybe;
end blah;

-------------------- END OF PROGRAM -----------------------

With the TeleGen compiler, the program prints "we made it" then exits.
This does not seem correct to me.  When I compile this with the Verdix
Ada compiler on our Vax, the program prints "==> DEADLOCK! <== No tasks
to run, no delays waiting."  If I change the "or" marked with "XXX" to
an "else," the programs works "as expected" for both compilers, i.e.
it prints "can't accept yet" 9 times, then prints "we made it" and exits.

Anyone have any ideas?  Please email unless you feel it would be of
interest to the group as a whole.  Many thanks in advance!

P.S. If you want to try the program on your compiler, I'd be interested
to know what happens.

	     "The stuff that undermines the best of me and you"

It was a pleasure |	        Dave Stein	      | on my back.  Just a
to meet you, you  |     angst%csilvax@hub.ucsb.edu    | pleasure to meet you,
slapped me right  |  ...ucbvax!ucsbcsl!csilvax!angst  | you got it almost exact.

deller@vrdxhq.UUCP (Steven Deller) (05/31/88)

In article <637@hub.ucsb.edu>, angst%csilvax@hub.ucsb.edu (vaguely human) writes:
> Anyone have any negative experiences with the TeleGen 2.15 (I think)
> compiler for the Sun 3?   ... and it seems that the TeleGen compiler is way
> faulty.  For one thing, it seems that guards (i.e. when statements)
> on accept statements simply do not get evaluated sometimes.
>  ... 
> When I compile this with the Verdix
> Ada compiler on our Vax, the program prints "==> DEADLOCK! <== No tasks
> to run, no delays waiting."   ...

Dave Stein runs a program on an unidentified version of VADS and reports 
"bogus" results.  HIS TEST ENVIRONMENT IS BOGUS.

Dave is not a registered user of Verdix VADS, nor are we able to find UCSD in 
any customer files so I am unable to verify what compiler he ran, but it is 
certainly not any compiler Verdix has shipped in over 2 years.

I have run his program on all version of VADS 5.41 (1-1/2 years old) that I
have available at my test site (Sun-3 self 5.41(q), VAX/UNIX 5.41(b), 
Sequent 5.41, and VAX/VMS 5.41(c)).  ALL PRODUCE CORRECT EXECUTION RESULTS.

Below is the verbose output from our latest VADS 5.5 for Sun-3 self.  I can 
only assume that Dave is running version VADS 5.3a (released March 1986) or 
some even earlier version of VADS.

While Telesoft does not need me covering for them, I would also point out that
since at least Sept 1987 Telesoft has been using Telegen 3.11 and beyond for
validation, not the "Version 2.15 (?)" that he quotes.

Dave -- if you MUST post news to such a wide forum, please try to be more
specific about your test environment in your posting.  Undoubtedly there will 
be scores of additional postings saying "my compiler x runs this and produces 
y" or "compiler z does fine", with UNDESERVED NEGATIVE IMPLICATIONS FOR VERDIX 
AND TELESOFT.  If you had 2-year old versions of those other compilers, I know 
for a fact that you would find numerous blatant errors, if not this error.  

All on the net -- please try to check with the vendor before wasting the time
of the net like this.  And if you MUST post without contacting the vendor, do 
try to post results for a compiler that is no more than one version old.

Steven Deller
Director, Verdix Customer Support, 703+378-7600, deller@vrdxhq.uu.net

------------------
Script started on Mon May 30 14:18:38 1988
sun3_260% ada -v -T -M blah -o blah.out blah.a

Verdix Ada Compiler, Copyright 1984, 1985, 1986, 1987
Version 5.5 - Sun UNIX
Fri May 13 18:54:43 PDT 1988 (j)

File: /usr/ac/deller/test/blah.a
        compiled Mon May 30 14:18:54 1988
        by user deller

        floating point processor MC68881

unit:   subprogram body blah
        NO Ada ERRORS           UNIT ENTERED

18 statements   31 lines
optimization pass       1       blah..NLSB
        204      IL instructions in
        163      IL instructions out

TIMES for Front End         wall 4.31   cpu 0.85
TIMES for Code Generator    wall 1.14   cpu 0.66
TIMES for Optimizer         wall 0.94   cpu 0.58
TIMES for a.ld              wall 12.40   cpu 4.55
TIMES for TOTAL TIME        wall 19.38   cpu 6.73
sun3_260% ./blah.out
can't accept yet
can't accept yet
can't accept yet
can't accept yet
can't accept yet
can't accept yet
can't accept yet
can't accept yet
can't accept yet
can't accept yet
x>10
we made it
sun3_260% exit
sun3_260% 
script done on Mon May 30 14:19:42 1988
--------------------
-- 
<end_message> ::= <disclaimer> | <joke> | <witty_saying> | <cute_graphic>
{verdix,uunet,umd5}!vrdxhq!deller      deller@vrdxhq.uu.net

ted@telesoft.UUCP (Ted J. Nothorn @spot) (06/02/88)

Concerning the recent item from Dave Stein: 


>With the TeleGen compiler, the program prints "we made it" then exits.
>This does not seem correct to me.  When I compile this with the Verdix
>Ada compiler on our Vax, the program prints "==> DEADLOCK! <== No tasks
>to run, no delays waiting."  If I change the "or" marked with "XXX" to
>an "else," the programs works "as expected" for both compilers, i.e.
>it prints "can't accept yet" 9 times, then prints "we made it" and exits.

>Anyone have any ideas?  Please email unless you feel it would be of
>interest to the group as a whole.  Many thanks in advance!


Thanks to Mr Deller for a **MOST** appropriate response.

Dave Stein is indeed running under an outdated environment. He is
using version 1.0 of the TeleGen2 Sun Ada compiler, an early
beta release which has been replaced by the current release, version 
1.2 TeleGen2 Sun Ada compiler.

The particular problem that Dave was referring to here is a known bug
with the early beta release version of the compiler. This bug has been
fixed in the current released version of TeleGen2 Sun Ada 1.2.
The particular test that was posted has been run on version 1.2 and
PRODUCES CORRECT RESULTS.

I would like to reiterate Mr Deller's encouragement to contact the
vendor with specific problems you are having with their product. This
is the quickest and most effective means of getting **ACCURATE**
information about the product while avoiding the waste of time and
effort of many on the net.

Ted Nothorn
TeleSoft Customer Support
(619) 457-2700