From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!attcan!uunet!samsung!think!bbn!bbn.com!spmcdona From: spmcdona@bbn.com (Stephen McDonald) Newsgroups: comp.lang.ada Subject: TeleSoft 1.4 compiler Keywords: compiler, port Message-ID: <53651@bbn.COM> Date: 16 Mar 90 19:37:14 GMT Sender: news@bbn.COM List-Id: We have just ported our project from TeleSoft's TeleGen2 Sun Ada 1.3a host compiler to TeleSoft's TeleGen2 Sun Ada 1.4 host compiler. I say "ported" because the effort was non-trival, taking a couple of days. My main problems were: 1. Incomplete Release Notes. They don't tell you all the things you need to know to use the new revision of the compiler. 2. Stylistic changes that are not upwards compatible. We use the TeleSoft Ada bindings to SunView. Not only has TeleSoft not documented these changes they are often purely stylistic. In one case they merely changed the name of a function. The good news is the 1.4 compiler runs noticably faster. I don't have any figures but you will see the difference. Also the Ada interface to SunView seems to be better. The program does not roll over and die for no reason after doing something with the windows like it used to. Non-SunView Problems The definition of INTEGER changed (16 to 32 bits). This was not mentioned in the release notes (RN). Code dealing with protocols or datafiles could still compile but no longer work. The fact that long_integer no longer exists was not mentioned in the release notes. The fact that there are now /bin and /lib subdirectories under the TELEGEN2 directory might be somehow "cleaner" but it added no new functionality and you have to change all of your liblst.alb files and your PATH. (This was mentioned in the release notes.) Given package A is type meters_per_second is new float; end A; with A; package B is speed : a.meters_per_second := -0.5; end B; This used to work with 1.3 but doesn't with 1.4. It seems that under 1.3 "-0.5" was converted to IEEE representation an then coerced to a.meters_per_second. Now "0.5" is converted to IEEE representation and the compiler does not have a visible unary minus function to apply to something of type a.meters_per_second. This was not mentioned in the release notes. I'm not sure if either or both 1.3 and 1.4 are compliant with the mil standard. I get dozens of warning messages that say: >>> WARNING: Call_DI_Shadow: death undefined Telesoft support assures me this this can be ignored. (DI is debug information. It has something to do with when you are compiling with the debug option while a variable is being kept in both a register and someplace in memory and some part of the compiler is getting confused.) Sunview Bindings Problems In window_inputs package, function event_id was changed to event_action. In windows package, under 1.4 there is a generic package Event_proc_pkg. Under 1.3 there was a generic function Event_proc_handle. Why is there now a package? Both generics take a formal parameter that accepts three arguments. Under 1.3 the arguments were an int, an event and a window. Now there are a window, an event and an int. Is this supposed to be an improvement? In the panels package the callback stuff was changed much the same way the callback in windows was changed. There are now packages instead of functions which appear to provide no new functionality but require I change my source code. Under 1.3 there was a generic function notify_procedure_handle_button_or_text and now there are two generic packages notify_procedure_pkg_button and notify_procedure_pkg_text. Also the arguments to the generic formal parameter were an event and a panel_item and they are now a panel_item and an event. Steve McDonald spmcdonald@bbn.com Disclaimer: No disclaimer needed - I speak for all lifeforms on Earth. Note To Extraterrestrials: Planetary law requires that you contact me whenever you enter or leave the solar system. Planetary law also requires that if you wish to conduct field observations I must first inspect your spacecraft. No exceptions!