[comp.lang.ada] Limitation of the DEC Ada Compiler ?

DSADABB@dsavx1.sdr.slb.COM (04/08/88)

[]

  In an Ada system using heavilly generic packages and generic procedures 
and functions, I ALWAYS end up when trying to compile the higher level 
units with a crash of the DEC Ada compiler. The crash occurs in the
routine SI_INST_BODY_BODY at line 1125 of the Ada compiler (Micro-VAX 2 
running VMS 4.7 in LAVC with ADA V1.4-33)

$ ADA/DEBUG/NOOP/LIST MY_PROCEDURE.ADA

%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=000000E7,
PC=0013AD67, PSL=03C00000
%TRACE-E-TRACEBACK, symbolic stack dump follows
module name     routine name                     line       rel PC    abs PC
                                                           001DC7B2  001DC7B2
----- above condition handler called with exception 0000000C:
%SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=000000E7, 
PC=0013AD67, PSL=03C00000
----- end of exception message
SIINST          SI_INST_BODY_BODY                1125      000000FB  0013AD67
DSPUTIL         DSPR__INSTANTIATE                1759      000000A7  00172E1D
DSPUTIL         DSPR__ELABORATE_BODY             1052      000000AA  0017281D
DSPUTIL         DSPR__DISPATCH_ACCUM_ELABS        966      0000006E  00172764
DSPUTIL         DSPR__ELABORATE_BODY             1261      00000316  00172A89
DSPUTIL         DSPR__DISPATCH_ACCUM_ELABS        966      0000006E  00172764
DSPUTIL         DSPR__ELABORATE_COMPIL_UNIT      1469      00000197  00172C5C
DSPLIT          DSP_COMPIL_UNIT                  2393      000006B9  00170AD4
BACKEND         BCK_DISPATCH                     1338      00000049  00164509
DSPLIT          DSPLIT_MAIN                       183      0000000E  0016F286
BACKEND         BCK_DRIVER                       1190      0000006A  001643EF
BACKEND         BCK_MAIN                          473      00000063  00163DAB
ADACOMPIL       ADA_COMPIL_UNIT                   794      000001C8  000E239C
ADACOMPIL       ADA_COMPILATION                   517      000000EA  000E210E
ADACOMPIL       ADA_COMPILER                      394      00000051  000E1F81
ADAMAIN         ADA_MAIN                          121      00000009  001A100D
CL_DECODE_ACCVI USER_SIGNAL                                0000014E  001B7055
                                                           001DC5AA  001DC5AA
ADA$ELAB_UNI_RE ADA$ELAB_UNI_REAL                          0000000E  000B4C16
CL_DECODE_ACCVI USER_SIGNAL                                00000129  001B7030

    1 	with TEXT_IO;
%ADAC-F-SUBMITSPR, Internal Ada compiler error -- please submit a Software 
        Performance Report (SPR)


  I modified the Ada code : I reduced the level of genericity by removing 
some intermediate levels. The program offers the same functions, but is not 
as flexible and expandable as before. However it crashes again in the SAME 
PLACE. I have completly restructured the code to try to compile it. And now
I still have the same problem : CRASH.

  I am stuck here. Obviously I submited several SPRs, no answers yet. Does 
that mean that there is a limit of depth of generic which can be used with 
the DEC compiler ? Does anybody have met this bug ? Any information is
welcome.

Philippe JAMET       jamet%m_dsavx1@sdr.slb.com
--
Etudes et Fabrication DOWELL-SCHLUMBERGER       
Z.I. de Molina la Chazotte    B.P. 90           
42003 Saint-Etienne CEDEX 1                     
FRANCE                            

jb@rti.UUCP (Jeff Bartlett) (04/15/88)

In article <8804080846.AA04719@ajpo.sei.cmu.edu>,
					DSADABB@dsavx1.sdr.slb.COM writes:
...
] ...  with a crash of the DEC Ada compiler. The crash occurs in the 
] routine SI_INST_BODY_BODY at line 1125 of the Ada compiler (Micro-VAX 2  
] running VMS 4.7 in LAVC with ADA V1.4-33) 
 
] $ ADA/DEBUG/NOOP/LIST MY_PROCEDURE.ADA
 
] %SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=000000E7,
] PC=0013AD67, PSL=03C00000
] %TRACE-E-TRACEBACK, symbolic stack dump follows
] module name     routine name                     line       rel PC    abs PC
                                                             001DC7B2  001DC7B2
] ----- above condition handler called with exception 0000000C:
] %SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=000000E7, 
] PC=0013AD67, PSL=03C00000
] ----- end of exception message
] SIINST          SI_INST_BODY_BODY                1125      000000FB  0013AD67
] DSPUTIL         DSPR__INSTANTIATE                1759      000000A7  00172E1D
   .....
 
]     1 	with TEXT_IO;
] %ADAC-F-SUBMITSPR, Internal Ada compiler error -- please submit a Software 
]         Performance Report (SPR)
  ...

I encountered something similar to this while trying to compile a 2300 block
machine generated package.  The compile would run for about 30 mins on uVAX2
an would die in a like fashion.   It seemed that the compiler could not
quite recover when the process virtual space was exhasted.

Take a look at your account's 'paging file quota', the system's SYSGEN
parameter VIRTUALPAGECNT, and the size of the PAGEFILE.  ( I had to bump
VIRTUALPAGECNT upto around 58,000 :-).   This was DecAda v1.3

P.S. turning up VIRTUALPAGECNT may require more GBLSECTIONS since process
	pagetables will grow.  (i think that right?)

> 
> Philippe JAMET       jamet%m_dsavx1@sdr.slb.com
> Etudes et Fabrication DOWELL-SCHLUMBERGER       
> Z.I. de Molina la Chazotte    B.P. 90           
> 42003 Saint-Etienne CEDEX 1                     
> FRANCE                            

Jeff Bartlett
Center for Digital Systems Research
Research Triangle Institute
jb@rti.rti.org		mcnc!rti!jb

louboutin@CLSEPF51.BITNET (Sylvain LOUBOUTIN (+41 21) 47 27 37) (04/18/88)

>  In an Ada system using heavilly generic packages and generic procedures
> and functions, I ALWAYS end up when trying to compile the higher level
> units with a crash of the DEC Ada compiler. The crash occurs in the
> routine SI_INST_BODY_BODY at line 1125 of the Ada compiler (Micro-VAX 2
> running VMS 4.7 in LAVC with ADA V1.4-33)
>

[...]

> Philippe JAMET       jamet%m_dsavx1@sdr.slb.com
> --
> Etudes et Fabrication DOWELL-SCHLUMBERGER
> Z.I. de Molina la Chazotte    B.P. 90
> 42003 Saint-Etienne CEDEX 1
> FRANCE

  The Vax Ada compiler seems to have few problems with genericity. Look
at that short program, and its effect on the compiler...

( of course I have submitted a SPR and of course have no answer yet... )

Sylvain Louboutin
Swiss Federal Institute Of Technology
Department of Computer Science
Software Engineering Laboratory

               1015 Lausanne
               -------------
               SWITZERLAND

Phone: (+41 21) 47 27 37

Email Adress: LOUBOUTIN@CLSEPF51.BITNET
              PSI%022846911008::ELMA::LOUBOUTIN (X.25)
              ELMA::LOUBOUTIN (node 20.434 on SPAN/HEPnet/CHadNet)


        generic package G_DISPLAY_G is
          procedure REFRESH;
        end G_DISPLAY_G;

        package body G_DISPLAY_G is
          package INTERNAL is
            generic
              with procedure ACT_ON_LINE;
            procedure TRAVERSE_WINDOW_G;
          end INTERNAL;
          package body INTERNAL is
            procedure TRAVERSE_WINDOW_G is
            begin
              ACT_ON_LINE;
            end TRAVERSE_WINDOW_G;
          end INTERNAL;
          procedure REFRESH is
            procedure ACT_ON_LINE is
            begin
              null;
            end ACT_ON_LINE;
            procedure DO_REFRESH is
              new INTERNAL.TRAVERSE_WINDOW_G (ACT_ON_LINE);
          begin
            DO_REFRESH;
          end REFRESH;
        end G_DISPLAY_G;

        with G_DISPLAY_G;
        package G_DISPLAY is new G_DISPLAY_G;

%SYSTEM-F-ACCVIO, access violation, reason mask=01, virtual address=2FFC0000,
                                                    PC=0017653C, PSL=03C00004
%TRACE-F-TRACEBACK, symbolic stack dump follows
module name     routine name                     line       rel PC    abs PC
DANNOT          DAN_ENTRY_CALL_STMT              1029      0000017A  0017653C
BACKEND         BCK_DISPATCH                     1338      00000049  00164509
BACKEND         BCK_DISPATCH_LIST_REPLACING      1539      0000001F  0016458D
DANNOT          DAN_BODY                          609      0000002F  001761B2
BACKEND         BCK_DISPATCH                     1338      00000049  00164509
DANNOT          DAN_FUNC_BODY_DECL               1645      00000041  00176AC7
BACKEND         BCK_DISPATCH                     1338      00000049  00164509
DANNOT          DANNOT_MAIN                       188      0000000E  00175CDE
BACKEND         BCK_DRIVER                       1190      0000006A  001643EF
BACKEND         BCK_DRIVE_SEGMENT                1059      00000096  001642F0
BACKEND         BCK_FLUSH_SEGMENTS                827      0000014C  001640AC
DSPLIT          DSP_COMPIL_UNIT                  2410      000006E6  00170B01
BACKEND         BCK_DISPATCH                     1338      00000049  00164509
DSPLIT          DSPLIT_MAIN                       183      0000000E  0016F286
BACKEND         BCK_DRIVER                       1190      0000006A  001643EF
BACKEND         BCK_MAIN                          473      00000063  00163DAB
ADACOMPIL       ADA_COMPIL_UNIT                   794      000001C8  000E239C
ADACOMPIL       ADA_COMPILATION                   517      000000EA  000E210E
ADACOMPIL       ADA_COMPILER                      394      00000051  000E1F81
ADAMAIN         ADA_MAIN                          121      00000009  001A100D
CL_DECODE_ACCVI USER_SIGNAL                                0000014E  001B7055
                                                           001DB9F2  001DB9F2
ADA$ELAB_UNI_RE ADA$ELAB_UNI_REAL                          0000000E  000B4C16
CL_DECODE_ACCVI USER_SIGNAL                                00000129  001B7030

   33   package G_DISPLAY is new G_DISPLAY_G;
.........1
%ADAC-F-SUBMITSPR, (1) (from G_DISPLAY_G's body at line 25, from G_DISPLAY_G's
        body at line 16) Internal Ada compiler error -- please submit a
        Software Performance Report (SPR)


  (system: VAX/VMS V4.7, compiler: VAX Ada V1.4-33)

  COMMAND QUALIFIERS
    ADA/NOOPTIMIZE/LIS/LIBRARY=USER3:[LOUBOUTIN.MAIN_LIB] G_DISPLAY

  QUALIFIERS USED
   /NOANALYSIS_DATA/CHECK/COPY_SOURCE/DEBUG=ALL/ERROR_LIMIT=30/LIST
   /NOMACHINE_CODE/NODIAGNOSTICS/LIBRARY=USER3:[LOUBOUTIN.MAIN_LIB]
   /NOTE_SOURCE/NOOPTIMIZE/SHOW=PORTABILITY/NOSYNTAX_ONLY
   /WARNINGS=(NOCOMPILATION_NOTES,STATUS=LIST,
              SUPPLEMENTAL=ALL,WARNINGS=ALL,WEAK_WARNINGS=ALL)

kent@xanth.cs.odu.edu (Kent Paul Dolan) (04/23/88)

I tried your little generic example under the Verdix BSD4.3 Ada compiler,
with "ada G_DISPLAY.a", and it compiled without complaint.  Is that a
sufficient test?

Kent, the man from xanth.