1
votes

An application developed in Ada 83 with OpenVMS platform is to be migrated to Itanium with GNAT Ada compiler.

  1. What are the risks of this port?

  2. Is there a general acceptance plan for the migration in a general way.

  3. How can I validated this application, knowing there is management difference in floating point between GNAT Ada and DEC Ada.

3
@trashgod I disagree about "too broad", at least for the acceptance plan. The question is very specific (even though it contains the word "general"): The OP gives us the operating systems and compilers involved in the migration and asks for a checklist. Such a checklist my have been assembled by people who have already gone that migration path and may thus be readily available.Peter - Reinstate Monica
Google found me this page about compatibility between DEC compilers on Alpha & VAX, may give some pointers on what to watch out forSimon Wright

3 Answers

3
votes

Issues with floating point types will be detected at compile-time. I can't remember the limits DEC Ada has, but my experience with GNAT on Intel architectures is that you can have up to 18 significant digits, which is more than what I could have with GNAT on DEC Alpha.

I've worked on one application, which was ported from DEC Ada to GNAT. As I have understood it, all porting issues were either related to representation clauses or plain bugs in the source text, which DEC Ada hadn't detected.

My guess is that you should calculate with 1 day/M lines + 2 hours/representation clause.

And then of course time to run your full test suite.

3
votes

DEC hired ACT (now AdaCore) to make GNAT DEC-compiler compatible, so the biggest effort may well be telling GNAT what the file names are. Once GNAT knows what files hold what Ada units, using the -gnat83 option should handle everything except platform-specific code, and may point out platform-specific code it can't handle. With the -gnat95 option, you might encounter a few more inconsistencies, but the compiler should point those out, and most Ada-83 code is valid Ada 95.* Moving to later versions of the the language (-gnat05 and -gnat12) will increase the opportunities for problems.

Once you set things up so GNAT can compile your code, compiling with -gnat83 should give you an idea of the effort needed. Odds are that it will turn out to be fairly small.

*I once ported a several thousand terminator semicolons of Ada-83 code to Ada 95 simply by recompiling. Of course, that code was properly designed and implemented to be compiler and platform independent, and by good fortune hadn't used any of the new Ada-95 reserved words as identifiers. YMMV

0
votes

I see that very late. Just a precision about FP. You can use DEC specific FP with GNAT. You just have to recompile all the ada libraries specifying you choose DEC fp format.