F REPORT DOCUMENTATION PAGE F,;;(; · 2011. 5. 14. · Ada Validation Facility: ASD/SCtL,...

46
F REPORT DOCUMENTATION PAGE F,;;(; "hma"nd I0 avmag. I hour "1 '0po0". nc Ln1 Ihe tmi rot rev. rucw4.04"S.cll. SM'lsn gOatsg , 41rl so<a.A Imin of infomtion S" nd rnmer~s ;.gaitng this bure~n atitimat. or any othow &0d 0 *I~. thisClo~in ol ,nfo0'nwbon, nd~dmg Aqul9Qeon Sonvyc., Crodralito•l fnlonmation Opwatbons and Repofl, 1215 Jefferson Dav- •ghway 120e 4 AH rglow. VA AD-A ~ ~ ~~2 262OR 961 REPORTl~~t~ng~~l TYPE AND DATES Final: 30 April 1992 4. 111ILt ANU 5. FUNDING Validation Summary Report: TLD Systems, Ltd., TLD MV/MV Ada Compiler System, Version 2.9.0, Data General MV/32 2000-2 under AOSNS II, Version 2.03 (Host & Target), 920319W1.11238 6 Wright-Patterson AFB, Dayton, OH USA 7. PERFORMING ORGANIZATION NAME(S) AND 8. PERFORMING Ada Validation Facility, Language Control Facility ASD/SCEL ORGANIZATION Blda. 676, Rm 135 AVF-VSR-523-0392 Wright-Patterson AFB, Dayton, OH 45433 9. SPONSORING/MONITORING AGENCY NAME(S) AND 10. SPONSOR ING/MON ITORING Ada Joint Program Office AGENCY United States Department of Defense g r Pentagon, Rm 3E 114 D TIC Washington, D.C. 20301-3081 ". EC T fT 11 -SUPPLEMENTARY A ýU 12a. DISTRIBUTION/AVAILABILITY 12b. DISTRIBUTION Approved for public release; distribution unlimited. 13. (Maximum 200 TLD Systems, Ltd., TLD MV/MV Ada Compiler System, Version 2.9.0, Data General MV/32 20000-2 under AOS/VS II, Version 2.03 (Host & Target), ACVC 1.11. 8 330 067 93-06530 14. SUBJECT 15. NUMBER OF Ada programming language, Ada Compiler Val. Summary Report, Ada Compiler Val. 16,_PRICE Capability, Val. Testing, Ada Val. Office, Ada Val. Facility, ANSI/MIL-STD-1815A, 16 PRICE 17 SECURITY ' 18. SECURITY 19. SECURITY 20, LIMITATION OF CLASSIFICATION CLASSIFICATION UNCLASSIFIED UNCLASSIFED UNCLASSIFIED NSN Caodard Form 298. (Rev 2.-8q Prescribed by ANSI Std

Transcript of F REPORT DOCUMENTATION PAGE F,;;(; · 2011. 5. 14. · Ada Validation Facility: ASD/SCtL,...

  • F REPORT DOCUMENTATION PAGE F,;;(;"hma"nd I0 avmag. I hour "1 '0po0". nc Ln1 Ihe tmi rot rev. rucw4.04"S.cll. SM'lsn gOatsg , 41rl so

  • Certificate Information

    The following Ada implementation was tested and determined to pass ACVC1.11. Testing was completed on 19 March 1992.

    Compiler Name and Version: TLD MV/MV Ada Compiler System,Version 2.9.0

    Host Computer System: Data General MV/32 20000-2,under ADS/VS II, Version 2.03

    Target Computer System: Data General MV/32 20000-2,

    under AOS/VS II, Version 2.03

    Customer Agreement Number: 91-11-14-TLD

    See section 3.1 for any additional information about the testingenvironment.

    As a result of this validation effort, Validation Certificate920319W1.11238 is awarded to TLD Systems, Ltd. This certificate expires on1 June 1993.

    This report has been reviewed and is approved.

    Ada Validation FacilitySteven P. WilsonTechnical DirectorASD/SCELWright-Patterson AFB OH 45433-6503

    Ad a Vqd1 1 fn OrganizationDirecfor,t-mputer and Software Engineering DivisionInstitute for Defense Analyses.Alexandria VA 22311

    A" Joint Program OfficeDr. John Solomond, DirectorDepartment of DefenseWashington DC 20301

  • AVF Control Number: AVY-VSR$-523-039230 April 1992

    91 - I!-!I 4-TL-D

    Ada COMPI LERVALI kTIOCN 5tM19RY REPORT:

    Certificate Number: 920319WI.11238TLD Systems, Ltd.

    TLD MV/AV Ada Compiler System, Version 2.9.0Data General MV/32 20000-2 under A.CSVS II, Version 2.03 w>

    Data General MV/32 20000-2 under AOSVS I, Verslon +.0Z3

    Prepared By:Ada Validation facility

    ASDiSCELWright-Patterson AFB OH 45433-6503

    D=TI Qt7AIJ'7 7U O o

    Atv8fht Te

    AvR!A and/or

    )lIsT S v- n lt

  • DECLARATION OF CO4FQMAICE

    Customer: TLD Systems. Ltd.

    Ada Validation Facility: ASD/SCtL, Vrit-ra*ttorson Afl. OHt 45.433-6501

    ACVC Version: Li

    Ad& Implementatton:

    Coptiler Nom and Version: ?LD KV/WV AdA Co*piler Systom. Versioi 9 , 0

    Host Computer System: Data General M/1/2 20000.2,AOS/VS 11, Version 2.03

    Target Computer System: Data General eV/32 20000-2.AOS/VS 11. Version 2.0)

    Customer's Docleration

    I. the undersigned. representing TLD Systems. Ltd . d*clare h.•t TU'Systems, Ltd. has no knowledgs of deliberate devatIton, fro* the AhdLanguage Standard ANSI/AIL-STh-18WlA in tt1 impleomntation llstod In thisdeclaration executing in the default soda, The certltlcatea shell beavarded i* TUL Systeas. Ltd.'s corporate name.

    7' ~.~ at*: 29 2Jovebs 19?1ILD Syitoms, Ltd.Terry L. Du•rbar. President

    MV/KV Page I

  • TABL Of Ca•lmrS

    CHAPTER 1 ITOCUCTIc*4

    1.1 USE OF THIS VAL'ýATIOGr SJAY REPI(-' .....1.2 REFERENCES .........1.3 A'%C TEST CLASSES ........ . .

    DEFINITICN Of TE74M!S...........

    CHAPTER 2 iPLE ATI c DP-2: FS

    2.1 WITHDRAWN TESTS ..... ..................2.2 INAPPLICABLE TESTS .............2.3 TEST MXODIFICATIONS .... . .

    CHAPTER 3 PROCESSING INAU-ORM&T-IO

    3.1 TESTING ENVtI E"T ............... . .3¼3.2 SUL,4ARY OF TEST RESULTS ....................... -:3.3 TEST EXECUTIOt ............. ................... . -

    APPENDIX A MACRO PARAME-r"ERS

    APPENDIX 8 COM1PILATION SYSTEM OPTION'S

    APPENDIX C APPE•2DIX F OF THE Ada STAXNUfRD

  • The Ada implementation described above was tested accordtnq t•c the Addvalidation Procedures (Pro90 against the Ada Standard 'AaB! un ecurrent Ada Compiler Validation Capability (ACVC). This Validatircr• 5•:Report (VSR) gives an account of the testing of this Ada eqrnt. ~.For any technical terms used in this report, the reader is refee, t,-(Pro90]. A detailed description of the ACVC may be found in the ctrentACVC User's Guide 1UG891.

    1.1 USE OF THIS VALIDATION SU AY RFORT

    Consistent with the national laws of the originating country, the MdaCertification Body may make full and free public disclosure of this report.In the United States, this is provided in accordance with the "Freedom ofInformation Act" (5 U.S.C. #552). The results of this validation applyonly to the computers, operating systems, and compiler versions identifiedin this report.

    The organizations represented on the signature page of this report do notrepresent or warrant that all statements set forth in this report areaccurate and complete, or that the subject implementation has nononconformities to the Ada Standard other than those presented. Copies ofthis report are available to the public from the AVF which performed thisvalidation or from:

    National Technical Information Service5285 Port Royal RoadSpringfield VA 22161

    Questions regarding this report or the validation test results should bedirected to the AVF which performed this validation or to:

    Ada validation OrganizationComputer and Software Engineering DivisionInstitute for Defense Analyses1801 North Beauregard StreetAlexandria VA 22311-1772

    1-1

  • INT)DCICIN

    1.2 REFERENCES

    (Ada831 Reference Manual fot the ALPo a2~

    [Pro9Ol Ada Cota iler validcatiL)n Pr ocedurýe Vrsct . 1Pr qam -~fIce, SAuur,4

    iUG891 Ada Co*mler Val 1d~atio ZiC t~r ~ ~ ;. :;

    1.3 ACNC TEST CLASSES

    Compliance of Ada implementations is testted by 9an.s •f the CZ', Thýcontains a collection of test pr,

  • For each Ada implementation, a ~nie test tikAte '.s reK .jty tAVF. This custcaciation consists ol mikiv tr~ zt>ws~:tthe precedinq paragraph, re:/rvn te~tý, se&" .ct .. , ,possibly re•o•oing sowe inaplic a,,ie tets ,se -ct .: ý• 2.2 astut •. i

    In order to pass an &NYC an Ada ~~a~ sthe customizxed test suite acz-otJinq4 t, tý* MAd Sta.-AWd.

    1.4 DEFINITICMN OF TUNS

    Ada Compiler The sofrtwae arwl any tw%!1vr ~ale that Nive t,~~~-to a qLven hu St and ta:get C'%: te. y , te a :transformation ý'f Ada po~amas ez~~texecution the e-,f.

    Ada Compilet The means for testingv vf Ad aValidation consisting of the test sutte, the suivCt,Capab•iity user's guide anc trhe te:•te !c: te•e dat;.: #",i•y(ACVrC) report.

    Ada An Ada cotr~iler with it No)Nt systr-, ývImplementation target computer system.

    Ada Joint The part of the cebtod~at~on Xy "-•ch. - ,lzProgram guidance fo: the Ada rer.t.fizcatxi system.Office (AJPO)

    Ada The pact of the certif.cation t>ýdy which carmit& t ;tValidation procedures required to establish the ccwariance of &n a&-Facility (AVF1 implementation.

    Ada The part of the certification body that providps techn;•,a.validation guidance for operations of the A certification syste.,Organization(AVO)

    Compliance of The ability of the implementation to pass an ACC versicT,.an AdaImplementation

    Computer A functional unit, consisting of one or more computers andSystem associated software, that uses common storage for all or

    part of a program and also for all or part of the datanecessary for the execution of the program; executesuser-written or user-designated programs; performsuser-designated data manipulation, including arithirticoperations and logic operations; and that can executeprograms that modify themselves during execution. Acomputer system may be a stand-alone unit or may consist ofseveral inter-connected units.

    1-3

  • INTIPOt3JCTICt

    Conformity Fulfillment by a prtoduct, p1ocess, Cr sterv-ce cf arequirements specified.

    Cutstomer An individul or corpctate en.t.,ty wh.ent(t-.sagreement w-ith an AV wt..h S;, ±les th*e t e:m-i an'ýconditions for X.T servic-eti -ct a4~y kindý .~t-ý be ~

    Declaration of A formIal statement froi, a cult2v:el assu.,riq t*4¶ .Conformance is realized or attainble -on tt* Ada , .

    which validation ststu•s is tea.ized.

    Host Computer A computer system. where AJA sorý e prýj: -e tSystem irto executable form.

    Inapplicable A test that contains ore Or more test c;tve.ec j•x, •

    test irrelevant for the given Ada mp.enar'V

    ISO International OQrganizatizn f,)c Sta.-idatdtzatifn.ýý,

    LMThe Ada standard, or Lanqjuago PWeertnce Pirvua> .'-ANSI/•IL-STD-18l5A-!983 and :s)O 86ý2198` *the LRM¶ take the tor;" er r

  • Q1P' 2

    I MPLEMDnATI C DEPVEMC I ES

    2.1 WITHDRAWN TESTS

    The following tests have been withdrawn by the AV,. The ratlonale fc,withdrawing each test is available from either the AVW) or the AVT. Thepublication date for this list of withdrawn tests is 2 August 199>.

    E28005C B28006C C32203A C34006D C355081 C355081C35508M C35508N C35702A C35702B B413088 C43004AC45114A C45346A C45612A C45612B C45612C C456$1AC46022A B49008A 8490088 A74006A C74308A BSv•021FB83022H B830258 B83025D C83026A 883026B 630C4iAB85001L C86001F C94021A C97116A C98003B BA:011iACB700IA CB7001B CB7004A CC1223A SC1226A C1226BBC3009B BDB102B BDIB06A ADIBO8A BD2AO2A CD2A2IECD2A23E CD2A32A CD2A41 A CD2A41E CD2A87A C2B15CBD3006A BD4008A CD402ZA CD4022D CD40245 C:D424CCD4024D CD403IA CD4051D CDvII A CD7004C EDT70C5CD7005E AD7006A CD7006E AD7201A AD7201E CD7204?AD7206A BDSO8A BD8004C CD9005A CD9005B CDA:.01ECE21071 CE2117A CE2117B CE21198 CE2205B CCE2405ACE3111C CE3116A CE3118A CE34!1B CE3412B CE3607BCE3607C CE3607D CE3812A CE3814A CE3902B

    2.2 INAPPLICABLE TESTS

    A test is inapplicable if it contains test objectives which are irrelevantfor a given Ada implementation. Reasons for a test's inapplicability maybe supported by documents issued by the ISO and the AJPO known as diaCommentaries and commonly referenced in the format AI-ddddd. For thisimplementation, the following tests were determined to be inapplicable forthe reasons indicated; references to Ada Coomentaries are included asappropriate.

    2-1

  • IMPLEMENTATICON DEPENDENCI ES

    The following 201 tests have floating-point type deciarat.onsrequiring more digits than SYSTEZ4.MAX DIGITS:

    C24113L..Y (14 tests) C35705L. Y 14 tests)C35706L..Y (14 tests) C35707L. .Y 114 tests)C35708L..Y (14 tests) C35802L. .Z 15 tests,C45241L..Y (14 tests) C45321L. Y 114 testswC45421L..Y (14 tests) C45521L. Z (15 tests0C45524L..Z (15 tests) C45621L.0Z 15 tests,C45641L..Y (14 tests) C46012L..Z Q15 tests&

    C24113H..K (4 tests) contain lines exceeding the impementation -'•-,of 120 characters per line.

    The following 20 tests check for the predefined type LNGc3 '7EGE2; to:this implementation, there is no such type:

    C35404C C45231C C45304C C45411C C4542:CC45502C C45503C C45504C C45504F C4KE.C45613C C45614C C456=C C45632C MOCK,C55B07A B55B09C 88600W C86006C C7,••"F

    C35404D, C45231D, B86001X, C86006E, and CD7IOIG check for a predef..i•iinteger type with a name other than INTEGER, Lt5 LON JTtEAE, ,:SHORT INTEGER; for this implementation, there is no such iype.

    C35713B, C45423B B86001T, and C86006H check for the predefined type-,SHORTFLOAT; for this implementation, there is n' such type.

    C35713D and B86001Z check for a predefined floating-point type with aname other than FLOAT, LONG FLOAT, or SHORT FLOAT; for thisimplementation, thcre is no such type.

    A35801E checks that FLOAT'FIRST..FLOAT'LAST may be used as a rangeconstraint in a floating-point type declaration; for thisimplementation, that range exceeds the range of safe numbers of thelargest predefined floating-point type and must be rejected, Seesection 2.3.)

    C45531M..P and C45532M..P (8 tests) check fixed-point operations fortypes that require a SYSTEM.MAX MANTISSA of 47 or greater; for thisimplementation, MAXMANTISSA is leis than 47.

    C45536A, C46013B, C46031B, C46033B, and C46034B contain length clausesthat specify values for 'SMALL that are not powers of two or ten; thisimplementation does not support such values for 'SMALL.

    C45624A..B (2 tests) check that the proper exception is raised ifMACHINEOVERFLOWS is FALSE for floating point types and the results ofvarious floating-point operations lie outside the range of the basetype; for this implementation, MACHINEOVERFILOWS is TRUE.

    2-2

  • IMPLTE ATIOG DEPENDENCI ES

    D64005F..0 (2 tests) use 10 levels of recursive procedure callsnesting; this level of nesting for procedure calls exceeds thecapacity of the compiler.

    B86001Y uses the name of a predefined fixed-point type other than typeDURATION; for this implementationz, there is no such type.

    B91001H checks that an address clause for a task entry must notprecede any entry; this implementation does not support interrupts.(See section 2.3.)

    LA3004A..B, EA3004C..D, and CA3094E.0. (6 tests) check pragna INI,,Efor procedures and functions; this implementation dtes not suppc:tpragm-a INLINE.

    CD1009C checks whether a length clause can specify a non-default sizefor a floating-point type; this implementation does not support suchsizes.

    CD2A53A checks operations of a fixe-point type for which a lengthclause specifies a power-of-ten TYPE'SMALL; this implementation doesnot support decimal 'SMALLs. (See section 2.3.'

    CD2AB4A, CD2A84E, CD2A841..J (2 tests!, and CD2A840 use length clausesto specify non-default sizes for access types; this implementationdoes not support such sizes.

    AE2101C and EE2201D..E (2 tests) use instantiations of packageSECUENTIAL 10 with unconstrained array types and record types withdiscriminants without defaults; these instantiations are rej,-ted bythis compiler.

    AE2101H, EE2401D, and EE2401G use instantiations of package DIRECT 10with unconstrained array types and record types with discrimdnantswithout defaults; these instantiations are rejected by this comiier.

    The tests listed in the following table check that USE ERROR is raisedif the given file operations are not supported for the givencombination of mode and access method; this implementation supportsthese operations.

    Test File Operation Mode File Access Method

    CE2102D CREATE IN FILE SEQENTIAL TOCE2102E CREATE ONT FILE SEBDENTIAL-IOCE2102F CREATE IrJT FILE DIRECT 10CE21021 CREATE IN FILE DIRECT IOCE2102J CREATE OUT FILE DIRECT 10CE2102N OPEN IN FILE SEQUENTIAL IOCE21020 RESET IN FILE SEQUNTIAL•IOCE2102P OPEN CUT FILE SEQUENTIAL I0CE2102Q RESET OUTFILE SEQUENTIAL I0

    2-3

  • IMPLEMENTATION~ DEPENDECI ES

    CE2102R OPEN INOLT FILE D1RL(T I0CE2102S RESET I!?(21T TILX VIL " 1CE2102T OPEN IN rItL D0RE - '_nCE2102U RESET IN FILE Y.KEZ C.CE2102V Opcx i.LE RE 110CE2102W RESET OUT FILE r: RE7 :0CE3102E CM.TE IN rILE E .CE3102F RESET Any Ykit TIXCE3102G DELETE . ."D ICCE3102I CREATE ILE TILE.CE3102J OPEN IN ViLE TtxT 0©CE3102K OPENir CLOT F 7U Ty 1

    The following 16 tests check operato-n• • -4. , a.'text files when multiple internal fi~os are * as !av texternal file and one or more are o•en fto vIur.n,• t . F,raised when this association is attreted.

    CE2107B..E CE2107G..H CE210, 1O' ,CE2111D CE2111H CE1U1B CtE 3 1* E CTi. 14hCE3115A

    CE2203A checks that WRITE raises USE EP" If ,external sequential file is exce-ded' thýs - .restrict file capacity.

    CE2403A checks that WRITE taises USE ER" if caPa,:iyexternal direct file is exceeded; this • euetatc a-t U•scfile capacity.

    CE3304A checks that SET LINE LEY3Th and SET PXZE LECh raireUSE ERROR if they specify 'an inappropriate value fo-- tho externafile; there are no inappropriate values for this iplemntacr.

    CE3413B checks that PAGE raises LAYOCt E Own tho va>, of tfwpage number exceeds C(XRT'tAST; for this implentation, the valtw ofCOXNT'LAST is greater than 150000, making the checking of th2irobjective impractical.

    2.3 TEST MODIFICATIONS

    Modifications (see section 1.3) were required for 1233 tests.

    The following tests were split into two or more tests because thisimplementation did not report the violations of *-e Ada Sta7nUarda in the wayexpected by the original tests.

    B44004D 859001E B73004B BA 001A BC3017A

    2-4

  • IMPLDE¶fTATION DEPEDENCI ES

    C340090 and C34009J were graded passed by Evaluation Modification asdirected by the AVO. Thcze tests check that 'SIZE for a composite type isgreater than or equal to the sum of its components' 'SIZE values; but thisissue is addressed by AI-00825, which has not been considered; there is notan obvious interpretation. This implementation represents array componentswhose length depends on a discriminant with a default value by implicitpointers into the heap space; thus, the 'SIZE of such a record type mightbe less than the sum of its components 'SIZEs, since the size of the heapspace that is used by the varying-length array components is not counted aspart of the 'SIZE of the record type. These tests were graded passed giventhat the Report.Result output was "FAILED" and the only Report.Failedoutput was "INCORRECT 'IBASE'SIZE", from line 195 of C34009D and line 193 inC34009J.

    A35801E was graded inapplicable by Evaluation Modification as directed bythe AVO. The compiler rejects the use of the range FLAT'FIRST..FLAT'LASTas the range constraint of a floating-point type declaration because thebounds lie outside of the range of safe numbers (cf. LRM 3.5.7:12).

    C83030C and C86007A were graded passed by Test Modification as directed bythe AVO. These tests were modified by inserting "PRAGMA ELABORATE(REPORT);" before the package declarations at lines 13 and 11,respectively. Without the pragma, the packages may be elaborated prior topackage Report's body, and thus the packages' calls to functionREPORT.IDENT INT at lines 14 and 13, respectively, will raisePROGRAMERRO-R.

    B91001H was graded inapplicable by Evaluation Modification as directed bythe AVO. This test checks that an address clause for an entry cannotprecede that or any other entry of the task. This implementation does notsupport interrupts, and so rejects any address clause for an entry, regard-less of placement.

    The tests below were graded passed by Test Modification as directed by theAVO. These tests all use one of the generic support procedures,LengthCheck or EnumCheck (in support files LECHECK.ADA & NUMCHEK.ADA),which use the generic procedure unchecked Conversion. This implementationrejects instantiations of Unchecked Conversion with array types that havenon-static index ranges. The AVO- ruled that since this issue was notaddressed by AI-00590, which addresses required support forUnchecked Conversion, and since AI-00590 is considered not binding underACVC 1.11, the support procqdures could be modified to remove the use ofUnchecked Conversion. Lines 40..43, 50, and 56..58 in LENCHECK and lines42, 43, and 58..63 in ENUMCHEK were commented out.

    CD1009A CD10091 CD1009M CD1009V CD1009W CDlCO3ACDICO4D CD2A21A..C CD2A22J CD2A23A. .B CD2A24A CD2A31A..C

    *CD2A81A CD3014C CD3014F CD3015C CD3015E..F CD3015HCD3015K CD3022A CD4061A

    2-5

  • IMPLEMENTATION DEPENDENCIES

    *CD2A8lA, CD2A8lB, CD2A8lE, CD2A83A, CD2A83B, CD2A83C, and CD2A83E weregraded passed by Test Modification as directed by the AVO. These testscheck that operations of an access type are not affected if a 'SIZE clauseis given for the type; but the standard customization of the ACVC allowsonly a single size for access types. This implementation uses a largersize for access types whose designated object is of type STRING. The testswere modified by incrementing the specified size $ACCSIZE with '+ 64'.

    Many of the Class A and Class C (executable) test files were combined intosingle procedures ("bundles") by the AVF, according to information suppliedby the customer and guidance from the AVO. This bundling was done in orderto reduce the processing time-compiling, linking, and downloading to thetarget. For each test that was bundled, its context clauses for packagesReport and (if present) SYSTEM were conmmented out, and the modified testwas inserted into the declarative part of a block statement in the bundle.The general structure of each bundle was:

    WITH REPORT, TEXT_10, SYSTEM;PROCEDURE IS

    - repeated for each test

    DECLARE [a modified test is inserted here, ... ]

    BEGIN; 1... and invoked here]

    EXCEPTION -test is not expected to reach this exception handlerWHEN OTHERS -> REPORT. FAILED( "unhandled exception ");

    REPORT. RESULT;END;TEXT_IO.NEWLINE;

    [ ... repeated for each test in the bundle]

    TEXT IO.PUT LINE ("GROUP TEST COMPLETED");END ;

    The 1189 tests that were processed in bundles are listed below; each bundleis delimited by ''. ,

  • IMPLEMTATION DEPE•MCIES

    A83CO1E A83CO1F A83CO1G A83CO1H A83CO1I A83CO1J A85007DA85013B A87B59A>

  • IMPLEMTATICN DLPEN2WC I E.S

    C41303B C41303C C41303E C41303F C4130Q C C413C3t CCK3C52C41303K C41303M C41303N C413030 C41303Q C41303P. C4I3CC41303U C41303V C41303W C41304A> (C4.OC7J C42'? C2, 4 3i

    C43004B C43004C C43103A C431038 -43104^> OC4 3 '$A C 2iC43106A C43107A C43108A C43204A C43204C C4324t c4A2.4r

  • IM'PLD1O TINt• DEPIMECICES

    C58004C C58004D C58004F C58004G C58005A C58005B C58005HC58006A C58006B C59001B C59002A C59002B C59002C>

  • IMPLEMETTION DEPENDENCIES

    * This test listed in two explanations

    2-10

  • CHAPTER 3

    PROCESSING INFORMATION

    3.1 TESTING ENVIRONMENT

    The Ada implementation tested in this validation effort is describedadequately by the information given in the initial pages of this report.For technical and sales information about this Ada implementation, contact:

    Terry L. DunbarTLD Systems, Ltd.3625 Del Amo Blvd.Suite 100Torrance, CA 90503

    Testing of this Ada implementation was conducted at the customer's site bya validation team from the AVF.

    3.2 SUMMARY OF TEST RESULTS

    An Ada Implementation passes a given ACVC version if it processes each testof the customized test suite in accordance with the Ada ProgranmmingLanguage Standard, whether the test is applicable or inapplicable;otherwise, the Ada Implementation fails the ACVC [Pro90].

    For all processed tests (inapplicable and applicable), a result wasobtained that conforms to the Ada Programming Language Standard.

    The list of items below gives the number of ACVC tests in variouscategories. All tests were processed, except those that were withdrawnbecause of test errors (item b; see section 2.1), those that require afloating-point precision that exceeds the implementation's maximumprecision (item e; see section 2.2), and those that depend on the supportof a file system - if none is supported (item d). All tests passed,except those that are listed in sections 2.1 and 2.2 (counted in items band f, below).

    3-1

  • PROCESSING INFORMATION

    a) Total Number of Applicable Tests 3760b) Total Number of Withdrawn Tests 95c) Processed Inapplicable Tests 114d) Non-Processed I/O Tests 0e) Non-Processed Floating-Point

    Precision Tests 201

    f) Total Number of Inapplicable Tests 315 (c+d+e)

    g) Total Number of Tests for ACVC 1.11 4170 (a+b+f)

    3.3 TEST EXECUTION

    A magnetic tape containing the customized test suite (see section 1.3) wastaken on-site by the validation team for processing. The tests weregrouped in bundles for more efficient processing. The contents of themagnetic tape were initially loaded on the Sun-4, and moved to the DataGeneral MV/32 20000-2 using Ethernet.

    After the test files were loaded onto the host computer, the full set oftests was processed by the Ada implementation.

    The tests were compiled and linked on the host computer system, asappropriate. The executable images were transferred tr the target computersystem by the communications link described above, _.d run. The resultswere captured on the host computer system.

    Testing was performed using command scripts provided by the customer andreviewed by the validation team. See Appendix B for a complete listing ofthe processing options for this implementation. It also indicates thedefault options. The options invoked explicitly for validation testingduring this test were:

    Options I Switch Effect

    No-Phase Suppress displaying of phase times duringcompilation

    All tests were executed with the Code Straightening, GlobalOptimizations, and automatic Inlining options enabled. Whereoptimizations are detegted by the optimizer that representdeletion of test code resulting from unreachable paths,deleteable assignments, or relational tautologies orcontradictions, such optimizations are reflected byinformational or warning diagnostics in the compilationlistings.

    3-2

  • PROCESSING INFQ-ATI C

    Test output, compiler and linker listings, and job logs were captured onmagnetic tape and archived at the AVF. The listings examined on-site bythe validation team were also archived.

    3-3

  • APPeLDIX A

    MACRO PARAME71MS

    This appendix contains the macro parameters used for customuizng the AZXC.The meaning and purpose of these parameters are explained in tU)891. Theparameter values are presented in two tables. The first table lists thevalues that are defined in terms of the maximu= input-line length, which :sthe value for $MAX IN LEN-also listed here. These values are expressedhere as Ada string aggregates, where "V" represents the maximum input-linelength.

    Macro Parameter Macro Value

    $MAXINLEN 120 -- Value of V

    $BIGIDl (l..V-l -> 'A', V ,> 'i')

    $BIGID2 (l..V-I ,> 'A', V -> '2')

    $BIGID3 (l..V/2-> 'A') & '3' &(i..V-l-V/2 -> 'A')

    $BIG ID4 (l..V/2 -> 'A') & '4' &(i..V-I-V/2 -> 'A')

    $BIGINT_LIT (l..V-3 -> '0') & "298"

    $BIGREALLIT (1..V-5-> '0') & "690.0"

    $BIG STRING1 '"' & (1..V/2 -> 'A') & #"o

    $BIG STRING2 I'll & (1..V-I-V/2 -> 'A') & 'I' & '"'

    $BLANKS (l..V-20 -> ' ')

    $MAX_LEN__INTBASED_LITERAL"2:" & (I..V-5 1> '0') & "11:"

    $MAX LEN REALBASEDLITERAL"16:" & (l..V-7 -> '&') & "F.E:"

    A-I

  • MACRO PARAMETERS

    $MAX STRING LITEFAL Ii &L...V-2 W)'A~

    The following table lists all of the other macro param.irezs arid thtvlrespective values.

    Macro Paramneter Macro Value

    $ACCSIZE 32

    $ALIGNMENT 4

    $couwrrLAST 2147483647

    SOEFAULTME24_SIZE 16010000000#

    $DEFAULTSTORU)NIT 16

    $DEFAIJLTSYS NAMiE DG?1V

    $DELTA-DOC 2.O**(-31)

    $EN~TRYADDRESS 15

    SENTRYADDRESS1 17

    SENTRY-ADDRESS2 19

    $FIELDLAST 127

    $FILETERMINATOR ASCII.EDT

    $FIXEDNAME 1K)_SUCHFIKEI)_TYPE

    $ FLOAT NAME tN)_SUCH_-ILOAT TYPE

    SFORM-1STRING 11"

    $FORMSTRING2 "CANNOTYrRESTRICT FILE CAPACITY"

    $GREATER THANC URA TIO 900.

    $GREATER_'Fl-AN-tDJRATICN BASE LAST131071-.0

    SGREATERTHANFLOAT BASE LAST_ _ -2.'UE+76

    $GREATERTHANFLOAT SAFE LARGE2.-6E+75

    A-2

  • I1ACRO PARAM""ItRS

    SGRE.ATERTHAN SHORT FLOAT SAFELkt LENOE SU~li SIUJ&T FL0AT .TY(PE

    SHIGUPRIORITY 200

    S ILLEGAL EXTIRNAL-FILE NAME I-. ADFILE2NAME'.!

    SI LLEGAd._EXTERNAL FILE NAME2Tlil SF1 LENAM EJLD8EPERFECTL~YLE)GAL I F I Th'WTYD40sLaCt SOT U

    SI NAPPROPRIATE LINEL!2NETH-1

    S INAPPROPRIATEPAGELENG-M-1

    SINCLUDEPRAGMA1 PRA(?iA INCLUDE ("A28006D1.TST')

    SINCLUDE-PRAGMA.2 PRACG1A INCLUDE V"b28006El.TST-)

    SINTE)GERFIRST -2147483648

    $INTEGERLAST 2147483647

    $IN'rEGER iASTrLwS_1 2147483648

    $ INTERFACELANGULACE ASSEMIBLY

    $LESSTHANDURATION -90000.0

    SLESSTHANDURATION BASE FIRST-11107 3.0

    $LINETERMINATOR ASCI I .CR

    $LOW PRIORITY 1

    SriACHINECODESTATEM'ENTAC2' (OP->1,ACSii>O,ACD>2,OP2->WM*KI);

    SMACHINECODETYPE ACCTUMUATOR

    SMANTISSA-DOC 31

    SMAXDIGITS 15

    $MAXINT 2147483647

    $MAXINTPLUS_1 2147483648

    $MIN INT -2147483648

    $NAME NOSUCHINfl'GER TYPE

    A-3

  • MACRO PARAMETERS

    SNAME-LIST Af1'750, Dg,*Pv

    $NAMESPEC-IF'CATICXJ1 X2120A

    SNAMESPECIF~ICATION2 X2120B

    $NAMESPECIFICATIOtN3 X3119A

    SNEG BASED INT 16*FFFFFFFE#

    SNEWMEMSIZE 16#100000000

    $NEWSTORUNIT 16

    $NEW SYS NAME AF175O

    SPACE-rERMINAI'cR ASCII.FE'

    SRECORD OEFINITICtN type !N'ulary is record OpccxkNullary_0p; endi record;

    SECORDNAME NJLLAR,.

    $TASI

  • A~PPEZ: X B

    CCOPILATICO SYSMIM OnICKS

    The compiler options of this Ada iaplementatioc., as descrbed n tinAppendix, are provided by the custoivr. Lhaless spec:hca2y notedotherwise, references in this appendix a:e to comVe onAer andnot to this report.

    LINKMER OPTICNS

    The linker options of this Ada implementation, as described :n thlsAppendix, are provided by the customer. Unless spe•ifically notedotherwise, references in this appendix are to linker doct.Ientation and nctto tnis report.

    B-1

  • MV/ADA COMPILER SYSTEM MV/ADA-1

    To delete default options:

    TLDDEFAULTS DELETE

    3.4 COMPILER OPTION SWITCHESCompiler option switches provide control over various processing andoutput features of the compiler. These features include severalvarieties of listing output, the level and kinds of optimizationsdesired, the choice of target computer, and the operation of thecompiler in a syntax checking mode only.

    Keywords are used for selecting various compiler options. Thecompleme,.t keyword, if it exists, is used to disable a compiler optionand is formed by prefixing the switch keyword with "NO2.

    Switches may be abbreviated to the number of characters required touniquely identify the switch. For example, the switch "CROSSREF"(explained in the list below) may be uniquely identified by theabbreviation *CR" or any longer abbreviation. In the list of switches,on the following pages, the abbreviations are in bold, the optionalextra characters are not bolded.

    If an option is not specified by the user, a default setting isassumed. All specified compiler options apply to a single invocationof the compiler.

    The default setting of a switch and its meaning are defined in thetable below. The meaning of the complement form of a switch isnormally the negation of the switch. For some switches, the complementmeaning is not obvious; these complement switch keywords are listedseparately.

    In the description of the switches, the target dependent name targee isused. The value of this symbol is determined by the value of theTARGET switch.

    Compiler generated file specifications generally conform to hostconventions. Thus, any generated filename is the source filenameappended with the default-file extension. If the user specifies a fulloutput filename, no default extension is provided.

    3- 8

    SVWTWr S LT

  • MV/ADA COMPILER SYSTEM MV/ADA-1

    SWITCH NAME MEANING

    CAu. TREENO.CALL TREE -- aefault

    This switch is used in conjunction with /ELABORATE and /LIST tocause all .CTI files (corresponding to the complete set of objectfiles being linked for this program) to be read in and a closure ofall calls in the program to be computed. The results of thisanalysis is formatted into a subprogram call tree report.

    Note: The call tree will be incomplete if any required compilationunit's .CTI files are missing.

    CHECKS -- defaultCHECKS(-check identifier( k....)NOCHECKs I-check idenrifier( .... }

    When the CHECKS switch is used, one or more check-identifiers arespecified and the specified run time checks are enabled. Thestatus of run time checks associated with unmentionedcheck-identifiers is unchanged.

    Without any check identifiers, the NO CHECKS switch omits all runtime checks. If one or more check identifiers are specified, thespecified run time checks are omitted. The status of run timechecks associated with unmentioned check-identifiers is unchanged.

    Checks can be eliminated selectively or completely by sourcestatement pragma Suppress. Pragma Suppress overrides the checksswitch.

    Check identifiers are listed below and are described in the LR•M,Section 11.7.

    ACCESS CHECK DISCRIMINANT CHECK DIVISIONCHECKELABORATION CHECK INDEX CHECK LENGTH CHECKOVERFLOW-ogCECK RANGE-CHECK STORAG•ECHECK

    ADE Related Switch: /§UPPRESS

    3- 9

    d•IS7WrrA4MA L.T

  • MV/ADA COMPILER SYSTEM KV/ADA-I

    CONFIG-valueNOCONiG-vaz ju

    The CONFIG switch provides a conditlornal compilation(configuration) capability by detersmiing whrether or not sourcetext, introduced or bracketed by special coment constructs, iscompiled. For a single line:

    -- /value souree-rexc

    vhere source-aext is compiled only if config- valu, isspecified.

    For multiple lines:

    -- /value line-i- -/value line-2- -/value line-3

    -- /value line n

    where the construct

    -- (value line-1line-2line-3

    - - )value line-n

    is equivalent.

    NOTE: The braces (f and m) must appear in the source code; inthis instance. they are not metacharacters. All of the textbetween -- (value and -- )value is cowpiled or skipped, dependingupon vhether or not the /config-value is present.

    CPL

    This switch sets the number of characters per line (80 to 132) inthe listing file.

    3 - 10

    'WI -MC mvS•amz LTC

  • MV/ADA COMPILER SYSTEM MV/ADA-1

    CRossaRENO_CRossEF - default

    This switch generates a cross reference listing that contains namesreferenced in the source code. The cross reference listing isincluded in the listing file; therefore, the LIST switch must beselected or CROSSREF has no effect.ADE Related Command: PREMTY/CREf

    CTI (-Crr-file-spec)NOCTi -- default

    This switch generates a CASE tools interface file. The defaultfilename Is derived from the object filename, with a .CT1Iextension. This switch is required to support the Stack Analysisand/or Call Tree switches.

    DEBuc -- defaultNODEBuG

    This switch selects the production of symbolic debug tables in therelocatable object file.

    Alternate abbreviation: DBG, NODBGADE Related Switch: /DEBUG, /TABLE

    DELAssIGN -- defaultNODELAss1cN

    This switch optimizes code by deleting redundant assignments.

    NOTE: Use of this switch can cause erroneous source programs toexecute with unexpected results if references to access objectsare made without regard to the interference semantics of Ada.

    ELAioRAToR

    This switch selects generation of a setup program that elaboratesall compilation units on which the named subprogram depends andthen calls the named program. This program will be the mainprogram at link time.

    3 - 11

    owl ..... VSTWSM LT_

  • MV/ADA COMPILER SYSTEM MV/ADA-1

    EXCEPTION INFONOEXCEPTION.INFO -- default

    This switch generates a string in the relocatable object code thatis the full pathname of the file being compiled. It generatesextra instructions to identify the location at which an unhandledexception occurred. The NOEXCEPTION INFO switch suppresses thegeneration of the string and extra instructions. The sourcestatement pragma Suppress (ALLCHECKS) or pragma Suppress(EXCEPTION INFORMATION) suppresses only the extra instructions.

    FULL-CALL TREE -- default

    When the FULLCALL TREE switch is used, the compiler listing [includes representations of every call. I

    INDENr-nINDENT-3 -- defaultNO_INDENr

    This switch produces a formatted (indented) source listing. Thisswitch assigns a value to the number of columns used inindentation; the value n can range from 0 to 15.

    INFo - defaultNOINFo

    This switch produces all diagnostic messages. It suppresses theproduction of information-level diagnostic messages.

    INLINE -- defaultNOINLINE

    This default switch automatically inlines any procedure that is Icalled only once. It may be disabled by adding the noinline option Ito the command line. Inlining is only implemented for calls that Iare made within the same compilation unit as the body of the Iprocedure to be expanded. I

    INTsLNOINTsL -- default

    This switch intersperses lines of source code with the assembly Icode generated in the macro listing. This switch is valid only if Ithe LIST, SOURCE, and MACRO switches are selected. IADE Related Switch: /ASSEMBLY I

    3 - 12

    7%. Nwrr LTD

  • NV/ADA COMPILER SYSTEM MV/ADA-1

    INVERTED-cAL~s

    This switch is used to determine which calls led to the present ?one. A reversed order call tree is generated. ?

    LIBRARY-Ada -program- iibrary-f.Ll •-specLIBRARY-eargee.LIB - - default

    The LIBRARY switch specifies the file to be used for Ada ProgramLibrary. The default value of rarger in the Ada Program Libraryfile spec is derived from the TARGET switch.ADE Related Switch: /LIBRARY

    LIST -lis ing-fil e -spec)NOLIST -- default

    The LIST switch generates a listing file. The default fileextension is LST. The lisring-file-spec can be optionallyspecified.

    LOGNOLOG -- default

    This switch requests the compiler to write a compiler log.including command line options and the file spec of the Ada sourcefile being compiled, to @OUTPUT.

    LPP-60 - - default

    The LPP switch assigns a value to the number of lines per page forlisting. The value can range from 10 to 99.

    MACRONOMACRo -- default

    The MACRO switch produces an assembly like object code listingappended to the source listing file. The LIST switch must beenabled for this switch to work.

    MAIN ELABNOMAINELAB -- default

    The MAINELAB switch is used to inform the compiler that thecompilation unit being compiled is to be treated as a user-definedelaboration, or setup, program.

    Note: The XTRA switch is required when MAINELAB is to be used.

    3 - 13

    d7I.0 SVw7EamzIS Tv

  • MV/ADA COMPILER SYSTEM MV/ADA-1

    MAKELIBI-parent-APL-spec}NO_,AKELIB -- default

    The MAKELIB switch creates a new Ad& Program Library (APL) file.MAKELIB should be used with caution because it creates a new APLfile in the default directory even if another APL file of the samename existed.

    The new APL file is created in the current working directory withthe name rarger.LIB unless the LIBRARY switch is used.

    If MAKELIB is used without a parent, a new library is created withthe default RTS specification. This specification is derived fromthe name TLD LIB sarget. See the target dependent compilersections for further explanations of this name.ADE Related Commands: LIBCREATE, LIBSEARCHLIST

    MAXERRORS-nMAXERRORS-500 - default

    This switch assigns a value limit to the number of errors forcingjob termination. Once this value is exceeded, the compilation isterminated. Information-level diagnostic messages are not includedin the count of errors forcing termination. The specified value'srange is from 0 to 500.

    MODEL-MATH -- MV targetMODEL-PATH -- MV target

    By default, the compiler produces code for the generic or standardtarget. The model switch allows the user to specify a nonstandardmodel for the target.

    For the MV-HAWK target, the MODEL switch may be set to MATH toindicate that code generation should take advantage of theintrinsic math instructions.

    NEc_OFFSET

    The NEG OFFSET switch is used to get around a deficiency in the MV 7linker. Negative offsets can cause a "relocation overflow" errorif this option is not used.

    OBJECT-bobject-file-spec)OBJECT -- defaultNO_OBjEcT

    The OBJECT switch produces a relocatable object file. The defaultfile extension is ".OBJ".

    3 - 14

    "" V7E4SLT

  • MV/ADA COMPILER SYSTEM MV/ADA-1

    OPT -- defaultNO_OPT

    The OPT switch enables global optimization of the compiled code.

    PARMN0_PARn -- default

    The PARM switch causes all option switches governing thecompilation, including the defaulted option switches, to beincluded in the listing file. The LIST option must also beselected or PARM will have no effect. User specified switches arepreceded in the listing file by a leading asterisk (*).

    PHASE -- defaultN0_PKAsE

    The NO PHASE switch suppresses the display of phase names during

    compilation.

    REFIDCase-opcron

    The Ref Id Case switch is used to determine how variable namesappear in the compiler listing. The options for this switch are:

    All Lower All variable names are in lower case.AllUnderlined - All variable names are underlined.AllUpper -- All variable names are in upper case.As-Is -- All variable names appear as is.Initial Caps -- All variable names have initial caps.Insert-Underscore -- All variable names have underscores inserted.

    REFKEY Case-opcion

    The RefjKeyCase switch is used to determine how 'ýda key wordsappear in the compiler listing. The options for this switch are:

    All-Lower -- All Ads key words are in lower case.All Underlined All Ads key words are underlined.AllUpper -- All Ada key words are in upper case.As-Is --- All Ads key words appear as is.Initial Caps All Ads key words have initial caps.Insert-Underscore - All Ada key words have underscores inserted.

    3 - 15

    7-0ASVre7As LTD

  • QS

    MV/ADA COMPILER SYSTEM MV/ADA-1

    REFORMAT(-reforsnat- fl .e-spec)NO-REFORMAT - - default

    This switch causes TLDada to reformat the source listing in thelisting file and, if a refozmat-file-spec is present, to generate areformatted source file. The default extension of the new sourcefile is ".RFM".ADE Related Command: PRETTY

    SOURCE -- defaultNQSOURCE

    This switch causes the input source program to be included in thelisting file. Unless they are suppressed, diagnostic messages arealways included in the listing file.

    ADE Related Switch: /ERRORS

    STACK ANALYSISNOSTACK-_ANALYSIS -- default

    This switch is used with the ELA.BORATOR switch to cause all CTIfiles (corresponding to the complete set of object files beinglinked for this program) to be read in. The subprogram call treeis analyzed to compute stack requirements for the main program andeach dependent task.

    NOTE: The tree will be incomplete if any required compilationunit's CTI files are missing.

    SYNTAX ONLYNOSY rAx ONY -- default

    This switch performs syntax and semantic checking on the sourceprogram. No object file is produced and the MACRO switch isignored. The Ada Program Library is not updated.

    TARGET-MV -- defaultTARGET-HAWK

    This switch selects -the target computer for which code is to begenerated for this compilation. "HAWK" selects the Rolm HAWKarchitecture running under AOS/VS or ARTS/32. "MV" selects theEclipse MV architecture operating under AOS/VS. AOS/VS II, orRT/32.

    3 - 16

    mo T.07rwVIEA LTD

  • MV/ADA COMPILER SYSTEM KV/ADA-1

    WARNINGS -- defaultNOWAR~iNcs

    The WARNINGS switch outputs warning and higher-level diagnosticmessages.

    The NO WARNINGS switch suppresses the output of both warning-leveland information-level diagnostic messages.

    WRITE ELABNO_WITEELAIB -- default

    The WRITE ELAB switch is used to obt& n an Ada source file whichrepresents the main elaboration *setupw ?rograz created by thecompiler. The MAIN ELAB switch may not be used at the same time asthe ELAB switch.

    XTRAN0XTRA -- default

    This switch is used to access features under development. See thedescription of this switch in Section 3.9.

    3 - 17

    =r0TL.C SWTUMA4 LTD

  • APPENDIX C

    APPENDIX F OF THE Ada STANDARD

    The only allowed implementation dependencies correspond toimplementation-dependent pragmas, to certain machine-dependent conventionsas mentioned in Chapter 13 of the Ada Standard, and to certain allowedrestrictions on representation clauses. The implementation-dependentcharacteristics of this Ada implementation, as described in this Appendix,are provided by the customer. Unless specifically noted otherwise,references in this Appendix are to compiler documentation and not to thisreport. Implementation-specific portions of the package STANDARD, whichare not a part of Appendix F, are:

    package STANDARD is

    type INTEGER is range -2147483648 .. 2147483647;

    type FLOAT is digits 6 range -2.26156E+74 .. 2.26156E+74;

    type DURATION is delta 2.0**(-12) range -86400.0 .. 86400.0;

    type SHORTINTEGER is range -32768 .. 32767;

    type LONG FLOAT is digits 15range -2.2615642491634E+74 .. 2.26156424291634E+74;

    end STANDARD;

    c-i

  • APPENDIX F OF THE Ada STANDARD

    In the customer's Appendix F documentation that constitutes this appendix,some information appears to be inaccurate or incomplete; the AVF offeredthe customer an opportunity to redress these points, but the customerdeclined to do so.

    The customer declined to provide the AVF with an updated list o± allcompiler/linker options and the options used specifically for thisvalidation.

    The customer states that DURATION'DELTA - 2.0**(-12). Although otherimplementations have a value of 2.0**(-14) and therefore should possibly be2.0**(-14). The customer declined to provide the AVF with an updatedAppendix F for this implementation; therefore we cannot be certain as tothe correct value.

    The customer declined to provide an Appendix F containing a package SYSTE2-specification.

    On page C-4, the customer states several inaccuraties concerning lengthclauses being not supported for 'SIZE except when applied to task types and'Storage Size when applied to access types. Also length clauses aresupported for 'Small. The customer declined to provide the AVF with anupdated Appendix F for this implementation.

    C-2

  • APPENDIX F OF TRE Ada STAimARD

    The Ada language definition allows for certain machine dependencies in acontrolled mcnner. No machine-dependent syntax of semantic extensions orrestrictions are allowed. The only allowed implementation-dependenciescorrespond to implementation-dependent pragmas and attributes, certainmachine-dependent conventions as mentioned in chapter 13 of theMIL-STD-1815A; and certain allowed restrictions on representation clauses.

    The full definition of the implementation-dependent characteristics of theTLD MVAMV Ada Compiler System is presented in this Appendix F.

    Implementation-Dependent Pragmas

    The TLD ACS supports the following implementation dependent pragmas.

    Pragma Export (Languagename, Ada entityname, {String});

    This pragma is a complement to Pragma Interface and instructs the compilerto make the entity named available for reference by a foreign languagemodule. The language name identifies the language in which the foreignmodule is coded. The only foreign language presently supported isAssembly. Ada and JOVTAL are permitted and presently mewi the same asAssembly but the semantics of their use are subject to redefinition byfuture releases of the compiler. If the optional third parameter ispresent, the string provides the name by which the entity may be referencedby the foreign module. The contents of this string must conform to theconventions for the indicated foreign language and the linker being used.No check is made by the compiler to insure that these conventions areobeyed.

    only objects having static allocation and subprograms are supported bypragma Export. If the Ada entity named is a subprogram, this pragma mustbe placed within the declarative region of the named subprogram. If thename is that of an object, the pragma must be placed within the samedeclarative region and following the object declaration. It is theresponsibility of the programmer to insure that the subprogram and objectare elaborated before the reference is made.

    pragma If (Compile Time Expression);pragma Elsif (Complie_T1-meExprpssion);pragma Else;pragma Endif;

    These Source directives may be used to enclose conc'tionally compiledsource to enhance program portability and configuration adaptation. Thesedirectives may occur at the place that language defined pragmas,statements, or declarations may occur. Source code following these pragmaswill be compiled or ignored similar to the semantics of the correspondingAda statements depending upon whether the CompileTimeExpression is true

    C-3

  • APPENDIX F OF THE Ada STANDARD

    or false, respectively. The primary difference between these pragmas andthe corresponding Ada Statements are that the pragmas may enclosedeclarations and other pragmas.

    Implementation-Dependent Attributes

    None.

    Representation Clause Restrictions

    Pragma Pack is not supported.

    Length clauses are not supported for 'SIZE except when applied to tasktypes.

    Length clauses are not supported for 'StorageSize when applied to accesstypes.

    Length clauses are not supported for 'Storage Size when applied to a task

    type and denote the number of words of stack to-be allocated to the task.

    Length clases are not supported for 'Small.

    Enumeration representation clauses are supported for value ranges ofInteger'First to Integer'Last.

    Record representation clauses are supported to arrange record componentswithin a record. Record components may not be specified to cross a wordboundary unless they are arranged to encompass two or more whole words. Arecord component of type record that has itself been "rep specificationed"may only be allocated at bit 0. Bits are numbered from left to right withbit 0 indicating the sign bit.

    The alignment clause is not supported.

    Address clauses are supported for variable objects and designate thevirtual address of the object. The TLD Ada Compiler System treats theaddress specification as a means to access objects allocated by other thanAda means and accordingly does not treat the clause as a request toallocate the object at the indicated address.

    Address clauses are not supported for constant objects, packages, tasks.or task entries.

    Implementation-Generated Names

    The TLD Ada Compiler System defines no implementation dependent names forcompiler generated components.

    C-4

  • APPE2•DIX F OF THE Ada STANtARD

    Address Clause Expressions

    Address expression values and type Address represent a location in logicalmemory (in the program's current address space). For objects, the addressspecifies a location within the logical address space. The 'Addressattribute applied to a subprogram represents a 32 bit word address withinthe logical instruction space.

    Unchecked Conversion Restrictions

    None.

    I/O Package Characteristics

    The following implementation-defined types are declared in Text Io.

    subty, Count is integer range 0 .. 2_147_483_647;

    subtype Field is integer range 0 .. 127;

    Other System Dependencies

    LRM Chapter 1.

    None.

    LRM Chapter 2.

    Maximum source line length - 120 characters.

    Source line terminator - Determined by the Editor used.

    Maximum name length - 120 characters.

    External representation of name characterr.

    Maximum String literal - 120 characters.

    LRM Chapter 3.

    LRM defined pragmas are recognizec~d and processed as follows:

    Controlled - Has no effect.

    Elaborate - As described in the LRM.

    Inline - Not presently supported.

    C-5

  • APPENDIX F OF THE Ada STANDARD

    Interface -- Supported as a means of importing foreign languiagecomponents into the Ada Program Library. May be applied eithet to asubprogram declaration as being specially implemented, -- readInterface as Import -, or to an object that has been declaredelsewhere. Interface languages supported are Assembly fot calllnvassembly language routines; and MV 32 for defining built itninstriction procedures. An opticaal thira parameter is used to definea name other than the name of the Ada subprogram for interfacing withthe linker.

    List - As defined in the LRM.

    Memory Size - Has no effect.

    Optimize -- Has no effect. Optimization controlled by compilerconunan option.

    Pack -- Has no effect.

    Page- As defined in the LPM.

    9Priority - As defined in the LRM. Priority may range from 1 to 200.Default priority is 1.

    Shared - As defined in the LRM. May be applied to scalar objectsonly.

    Storage Unit - Has no effect.

    Suppress - As defined in the LRM for suppressing checks; all standardchecks may be suppressed individually as well as "Exception Info" and"All Checks". Suppression of Exception Info eliminates data used toprovide symbolic debug information in the event of an unhandledexception. The All Checks selection eliminates all checks with asingle pragma. In -addition to the pragma, the compiler permitscontrol of check suppression by command line option without thenecessity of source changes.

    System Name - Has no effect.

    Number declarations are not assigned addresses and their names are notpermitted as a prefix to the 'address attribute. (Clarification only).

    Objects are allocated by the compiler to occupy one or more 16 bit words.Only in the presence record representation clauses are objects allocated toless than a word.

    Except for access objects, uninitialized objects contain an undefinedvalue. An attempt to reference the value of an uninitialized object is notdetected.

    The maximum number of enumeration literals of all types is limited only by

    C-6

  • APPENDIX F OF T7W Ada STAWEARZn

    available symbol table space.

    The predefined integer types are:

    Short Integer range -32_768 .. 32 767 and is implemented as a 16 bitvalue-.Integer range -2_147_483_648 .. 2 147 483 647 and implemented a 32 bitvalue.Long-Integer is not supported.System.Min Int is -2 147 483 648.System.Max-Int is 2_147_183_647.

    The predefined real types are:

    Float digits 6.LongFloat digits 15.Short Float is not presently supported.System.MaxDigits is 15 digits.

    Fixed point is implemented as 16-bit or 32-bit data as is appropriate forthe range and delta.

    Index constraints as well as other address values such as access types arelimited to 29 bits of value.

    The maximum array size is limited to the size of virtual address.

    The maximum String length is the same as for other arrays.

    Access objects are implemented as an unsigned 32 bit integer. The accessliteral Null is implemented as two words of zero.

    There is no limit on the number of dimensions of an array type. Arraytypes are passed as parameters opposite unconstrained formal parametersusing a 3 word dope vector illustrated below:

    Word address of first elementI Low bound value of first dimensionI Upper bound value of first dimension i

    Additional dimension bounds follow immediately for arrays with more Chanone dimension.

    LRM Chapter 4.

    MachineOverflows is True.

    C-7

  • 0

    APPENDIX F OF THE Ada STANDARD

    Pragma Controlled has no effect since garbage collection is never

    performed.

    LRM Chapter 5.

    The maximum number of statements in an Ada source program is undefined andlimited only by the Symbol Table space.

    Case statements unless they are quite sparse, are allowed as indexed jumpvectors and are, therefore, quite fast.

    Loop statements with a for implementation scheme are implemented mostefficiently if the range is in reverse and down to zero.

    Data declared in block statements is elaborated as part of its containingscope.

    LRM Chapter 6.

    Arrays, records and task types are passed by reference.

    Pragma Inline is not presently supported for subprograms.

    LRM Chapter 7.

    Package elaboration is performed dynamically permitting a warm restartwithout the necessity to reload the program.

    LRM Chapter 8.

    LRM Cýhpter 9.

    Task objects are implemented as access types pointing to a Task InformationBlock (TIB).

    Type Time in package Calendar is declared as a record containing two doubleprecision integer values: the date in days and the real time clock.

    Pragma Priority is supported with a value of 1 to 200.

    Pragma Shared is supported for scalar objects.

    LRM Chapter 10.

    Multiple Ada Program Libraries are supported with each library containingan optional ancester library. The predefined packages are contained in theTLD standard library, MV.LIB.

    LRM Chapter 11.

    Exceptions are implemented by the TLD Ada Compiler System to take advantageof the normal policy in embedded computer system design to reserve 50% of

    C-8

  • APPENDIX F OF THE Ada STANDARD

    the duty cycle. By executing a small number of instructions in theprologue of a procedure or block containing an exception handler, a branchmay be taken, at the occurance of an exception, directly to a handlerrather than performing the time consuming code of unwinding procedure callsand stack frames. The philosophy taken is that an exception signals anexceptional condition, perhaps a serious one involving recovery orreconfiguration, and that quick response in this situation is moreimportant and worth the small throughput tradeoff in a real timeenvironment.

    LRM Chapter 12.

    A single generic instance is generated for a generic body. Genericspecifications and bodies need not be compiled together nor need a body becompiled prior to the compilation of an instantiation. Because of thesingle expansion, this implementation of generics tend to be more favorableof space savings. To achieve this tradeoff, the instantiations must bynature be more general and are, therefore, somewhat less efficienttimewise.

    LRM Chapter 13.

    Representation clause support and restrictions are defined above.

    A comprehensive MachineCode package is provided and supported.

    UncheckedDeallocation and UncheckedConversion are supported.

    The implementation dependent attributes are all supported except'Storage_Size for an access type.

    LRM Chapter 14.

    Full file I/O operations are supported and interface to AOS/VS operations.TextIo and Low LevelIo are supported.

    C-9