[comp.lang.ada] Vax Ada V2. Beware of ADA$USE_V1_5-44.COM

paul@cernvax.UUCP (paul burkimsher) (11/16/89)

Warning re using the OLD (V1) Ada compiler etc on a machine that has Ada V2
installed: It won't work properly 99% of the time...


The Dec documentation (release notes) say that is is possible to use the
old system by executing

$@SYS$MANAGER:ADA$USE_V1_5-44.COM

Although you can execute the old compiler, you probably can't make all of
your needed units current. To be specific, if you use any of the (system)
entered units (eg TEXT_IO) then the system will always look at the new
text_io not your old text_io.

Paul Burkimsher.

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

Details if you are interested:

--------------------------------------------------------------------
$ ! ADA$USE_V1_5-44.COM
$ !
$ ! When invoked this command procedure defines the appropriate
$ ! logicals to access the VAX Ada V1_5-44 compiler
$ ! which has been saved in SYS$MANAGER:[ADA$V1_5-44].
$ !
$ define  ADA                 SYS$SYSROOT:[SYSMGR.ADA$V1_5-44]ADA.EXE
$ define  ACS                 SYS$SYSROOT:[SYSMGR.ADA$V1_5-44]ACS.EXE
$ define  ADARTL              SYS$SYSROOT:[SYSMGR.ADA$V1_5-44]ADARTL.EXE
$ define  ADAMSG              SYS$SYSROOT:[SYSMGR.ADA$V1_5-44]ADAMSG.EXE
$ define  ADA$SCA_PREDEFINED  SYS$SYSROOT:[SYSMGR.ADA$V1_5-44.ADA$SCALIB]
$ define  LNK$LIBRARY         SYS$SYSROOT:[SYSMGR.ADA$V1_5-44]ADARTLSHR.OLB
$ !
$ ! Define ADA$PREDEFINED as a rooted directory logical.
$ !
$ full_file = f$search("SYS$SYSROOT:[SYSMGR.ADA$V1_5-44]ADALIB.DIR")
$ device    = f$parse(full_file,,,"device","no_conceal")
$ directory = f$parse(full_file,,,"directory","no_conceal")
$ remove_loop:
$   if directory .eqs. directory - "][" then goto remove_end
$   directory = directory - "]["
$   goto remove_loop
$ remove_end:
$ directory = directory - "]"
$ directory = directory + ".]"
$ predefined_root = device + directory
$ !
$ define/trans=concealed ADA$PREDEFINED_ROOT  'predefined_root'
$ define                 ADA$PREDEFINED       ADA$PREDEFINED_ROOT:[ADALIB]

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


All of the above stuff is made available when Ada V2 is installed. The principle
is fine BUT your old system units were entered in your V1 library with
an explicit name such as:

junk>acs dir/full text_io                             
TEXT_IO                                               
    package specification            6-Mar-1985 12:42 
      @ SYS$COMMON:[SYSLIB.ADALIB]TEXT_IO_.ACU;1      
      @ SYS$COMMON:[SYSLIB.ADALIB]TEXT_IO_.OBJ;1      
      @ SYS$COMMON:[SYSLIB.ADALIB]TEXT_IO_.ADC;1      
                                                      
    package body                     6-Mar-1985 12:43 
      @ SYS$COMMON:[SYSLIB.ADALIB]TEXT_IO.ACU;1       
      @ SYS$COMMON:[SYSLIB.ADALIB]TEXT_IO.OBJ;1       
      @ SYS$COMMON:[SYSLIB.ADALIB]TEXT_IO.ADC;1       

Even if you redefine ada$predefined using $@SYS$MANAGER:ADA$USE_V1_5-44.COM
you aren't going to see your old text_io. You would see something like:

junk}acs check text_io                                                   
%ACS-E-CL_OBSENTUNI, package specification TEXT_IO has been recompiled in
        SYS$COMMON:[SYSLIB.ADALIB] and must be reentered                 
%ACS-E-CL_OBSENTUNI, package body TEXT_IO has been recompiled in         
        SYS$COMMON:[SYSLIB.ADALIB] and must be reentered                 
%ACS-E-CL_OBSLIBUNI, Obsolete units must be recompiled or reentered      
    TEXT_IO     (package specification)                                  
    TEXT_IO     (package body)                                           

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

For info, when you convert your library to V2 format, this is what you see:

junk>acs dir/full text_io                                      
TEXT_IO                                                        
    package specification          14-Apr-1989 20:12  <entered>
      @ ADA$PREDEFINED_ROOT:[ADALIB]TEXT_IO_.ACU;1             
      @ ADA$PREDEFINED_ROOT:[ADALIB]TEXT_IO_.OBJ;1             
      @ ADA$PREDEFINED_ROOT:[ADALIB]TEXT_IO_.ADC;1             
    package body                   14-Apr-1989 20:12  <entered>
      @ ADA$PREDEFINED_ROOT:[ADALIB]TEXT_IO.ACU;1              
      @ ADA$PREDEFINED_ROOT:[ADALIB]TEXT_IO.OBJ;1              
      @ ADA$PREDEFINED_ROOT:[ADALIB]TEXT_IO.ADC;1              


Now THAT would have worked (but comes too late)!


Paul Burkimsher
paul@online.decnet.cern.ch
paul@cernvax.bitnet