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