PowerAda: Release Notes
These Release Notes contain information relevant to Version 5.4e of the OCS PowerAda Compilation System, supplementing the PowerAda User's Guide.
- 1 1. Introduction
- 2 2. Getting Help
- 3 3. Requirements
- 4 4. Licensing
- 5 5. Compatibility
- 6 6. Limitations and Unimplemented Features
- 7 7. Customer-Reported Defects Fixed
Version 5.5 of the PowerAda Compilation System is a bug-fix update to version 5.4e of the PowerAda development tools from OC Systems. These notes identify the differences between this version and version 5.4e.
2. Getting Help
If you have any comments, would like additional information, need a different media format, or you have any other installation or configuration problems, please contact OC Systems by internet at support -at -ocsystems.com or by telephone at (703)-359-8160.
System Requirements for each of the three PowerAda hosts are: For PowerAda/AIX: any computer running AIX version 4.2 or later (including AIX version 5.3) For PowerAda/Linux: any modern Intel Pentium-based computer running Red Hat Linux 8 or later (with a version 2.4.18 kernel or later) Contact OC Systems for help installing PowerAda on versions or platforms other than these. Typically, 500 Megabytes of disk space are required for installation of PowerAda on any of the host platforms. The file (README) contains more detailed notes on requirements. Please refer to this before installing the PowerAda product on any supported host.
PowerAda 5.5 works with the software product FLEXlm. PowerAda 5.5 for AIX does not require a new license if you already have a valid license for PowerAda 4.1 or newer for AIX. PowerAda 5.5 for Linux may require a new license be issued. Contact firstname.lastname@example.org if you have not received a license key specifically for PowerAda 5.3 (or newer). The license keys for AIX are different from those for Linux, as the products are sold separately. See the PowerAda 5.5 Installation Guide for more information about setting up the license manager.
On both AIX and Linux Linux, PowerAda 5.5 is source-code compatible with PowerAda 5.2, 5.3, and 5.4. But the runtime libraries have been recompiled in each version. Furthermore, the internal data structures inside of a sublibrary changed in version 5.4. A complete recompilation of your source code is recommended, but is not required in all cases. It is not required if you are currently using PowerAda 5.4 or newer, but it is required if you are using an older version. Some source code changes may be required when recompiling programs currently working with PowerAda version 4.3 or earlier. Projects created using earlier versions of PowerAda cannot be opened using PowerAda 5.5. Note that future versions of PowerAda 5 may not support AIX 4. PowerAda 5.5 will continue to be supported as the LegacyAda version of PowerAda for use on AIX 4 operating systems.
6. Limitations and Unimplemented Features
If you encounter any problem, or have any suggestions for improvement or enhancement, please contact OC Systems at support -at- ocsystems.com. We can't fix what we don't know about. See APPENDIX C, "Implementation Characteristics" (corresponding to Annex M of the Ada95 Reference Manual) for a detailed description of which optional portions of the language have been implemented. PowerAda/Linux does not do any stack overflow checking, and so it will dump core on insufficient stack space rather than raise STORAGE_ERROR. The user should make sure that all task stacks are given sufficient storage to execute.
7. Customer-Reported Defects Fixed
Below are problems which were found at customer sites and have been fixed in this release. If you have reported a problem and do not see it on this list, please contact OC Systems as described above to check on the status of your problem.
446 PA stack frames should be dbx-compatible 931 Ada shared library elaboration problems 1205 Setup file not properly constructed during installation 1208 XCOFF n_type must be 0x20 for Ada subp symbols to avoid "strip -t" 1228 PA5: port to Fedora Core 5 1241 Deliver files_in_baseline script 1255 PA5: xmlpcm0 fails packed comparison 1260 PA5: runtime tdcallsupb: Csect_Info wrong for new ESV 1266 PA5: AIX runtime must tolerate TBT+ESV or just ESV, for Aprobe's ESV 1267 PA5: allow xas.define_symbol for s_class other than 'ua' 1271 PA5: dbx internal error: assertion failed at line 3519 in file frame.c 1276 PA5: deliver astub with PowerAda 1293 PA5: Not all regs saved/restored by exported Ada routine 1294 PA5: utb hangs on spin-lock using yield() 1295 PA5: crash in aprojbuild -p 1301 PA5: simplify/extend shared lib support 1302 PA5: build & deliver libada_r.a with powerada 1327 PA5: adbg crash during initialization 1340 PA5: BT'Class'Output doesn't dispatch to derived type 1341 PA5: utb_Traceback missing line numbers for soft-linked modules 1346 PA5: generate, check intersection of two .ail files
269 PA5: rep. spec'd enum for index causes array '=' failure 911 PA5 bad unchecked conversion array_element <-> byte 999 delay until ada.real_time.time_of(49 years) silently fails 1001 PA5: DDA.Size for an Array_Component should be aligned size 1028 problems with task entry renaming-as-body 1036 compiler accepts actual proc name as generic formal 1058 aprojbuild: bad comporder for 2 units in file 1063 PA5: library level pragma rejects legal generic child unit name 1092 aprojbuild: incorrect order for units with pragma inline 1095 make aprojbuild work w/o projects 1096 aprojbuild -U should build instance subunits 1099 aprojbuild should defer, identify independent units 1102 PA5: CG crash: bad LF for tagged function call 1104 implement libq.independent_units function 1106 PA5: FE rejects legal type extn in spec as 'not in same body' 1111 Linux pagrep broken on RHEL4 1118 PA5: aprojbuild: incorrect order for units w/ pragma inline (f/u 1092) 1119 aprojbuild translates -qinstances=inline to =defer 1122 PA5: 5.4d regression = fail MP seq sanity check 1124 bad code in package elab built with opt 1126 areport outside proj: use adalib.imports if no alib.list 1127 aprojbuild should only compile pending units from working sublib 1129 ada -qxlcbind should reference /usr/vacpp/bin/xlC 1131 PA5: fix regression caused by issue 1104 changes 1132 PA5: aprojbuild dies w/o warning when command line too long 1133 subunits vs. independent_units 1134 aprojbuild should get read-lock to determine update list 1136 aprojbuild w/o project rejects files outside of current dir 1137 PA5: generic instance rel incorrectly added to optional body 1142 PA5: CG INTERNAL ERROR in adn_impl 1143 PA5: Glink code cannot be added for function: _ptrgl 1147 PA5: FE can't find generic instance subunit body (f/u to d14557) 1160 aprojbuild won't recompile obsolete units 1161 enhance build_shared to limit exported symbols 1163 create stub generation tool 1169 Adbgentry crashes on RHEL3 u3 1172 aprojbuild always forces recompile if -qfloat_overflows 1176 PA5: patch 5.4d.2 was built w/ wrong system sublib (f/u 1001) 1178 PA5: Linux should reject/ignore -qfloat_overflows 1179 PA5: Linux alibmv command-line parsing broken 1185 PA5: CG crash if expanded array object assigned (f/u 911) 1186 astub -g shouldn't generate generic unit stubs 1198 PA5: abuild crashes during bind, while getting Prj.Current_Project
442 PA5: support cross-language tracebacks 514 warn if multiple powerada libs in single apc command [PowerAda] 571 PA5: Build_Overload_Set raise PROGRAM_ERROR if illegal child name 572 PA5: get_dispatching_spec crash: inc_type'class full type in body 596 PA5: excessive time to compile code if -qinstances=defer 603 PA5: Abuild infinitely redo inst subunits if circular dependency 701 order of ada probes causes 'no debug available' 741 PA5: Adaentry cores in call_splitter.parameter_creation 769 PA5 instance subunits ==> 'Lines compiled: 1' (i.641 regression) 770 PA5: 8th floating point param is passed wrongly 798 PA5: FE resolve_operator crash in (Float_Constant * Integer) 801 Linux: handle slightly different /proc/PID/maps file 802 Linux x86_64: specify -m32 when linking 803 Linux: adbg doesn't work on diners 804 Linux: pthread_cond_init overwrites data past MSR 806 PA5: NO_ATTACHED_MPST in nested child instances [partial fix] 807 PA5: MP crash if non-static T'Component_Size 808 PA5: NO_ATTACHED_MPST in re_entity aggregate_eval 812 AIX abinchk should work on shared object in archive 813 PA5: Cannot do areport -r supporters -u inst/whatever 817 AIX: PA-generated toc entries 8-byte aligned, wasting space 828 PA5: Vsm.Reference_Error IN-OUT discriminated record conversion 831 PA5: Task discriminants missing in ASIS 834 PA5: ASIS fails for A_DEFINING_EXPANDED_NAME of child unit 857 CG crash in make_move on put_line of 'Image 873 interface-C boolean stack params loaded wrongly 874 [IN]OUT float params on exported subprogram don't work 880 PA5: trap handler should handle non-Ada traps differently 890 PA5: Dynamic dispatch coredumps 893 PA5 FE traceback instantiating Ifpa_Generic_State_Data_Server 906 apc chokes on inst of BC hash_table 913 PA5: public child subprogram cannot see parent's private part 939 PA5: Generic child name implied within Formal_Package_With_Box 947 PA5: Float'Machine_Overflows = FALSE, so no divide by 0 exception 954 pop_stack_and_call_ada doesn't work for shared library 962 PA5: array init R/W reaches beyond array boundary 968 Ada.Strings.Bounded implementation yields bad equality test 971 PA5: cross-dependent instances fail unless -qinstances=defer 988 AIX: add help function to get app RA,SP from current SP 994 include universal_traceback in runtime 995 add symbol info to universal_traceback 1015 PA5: coding errors in libq:compilation_order 1017 PA5: abuild should ignore inst/ units 1022 PA5: Memory leak copying controlled objects 1025 PA5: Booch stack works wrongly for controlled item type 1029 incorrect layout of dynamically-sized type [PowerAda] 1040 universal_traceback (utb) is not thread-safe 1047 apc NO_BIND_INFO crash reading C++ main Ada modules [PowerAda] 1054 PA5: RM95 4.6:46 range checks missing in DT conversions 1057 PA5: Adbggui crash on Browse Unit of C-main 'adn' driver 1073 PA5: Build_Overload_Set PROGRAM_ERROR if illegal child name (was i.571) 1074 PA5 instance subunits ==> 'Lines compiled: 1' (was i.769) 1092 aprojbuild: incorrect order for units with pragma inline
798 - FE resolve_operator crash in (Float_Constant * Integer) 890 - Dynamic dispatch coredumps 939 - Generic child name implied within Formal_Package_With_Box 956 - Update tools to version 5.4b1
133 - FlexLM: create a new lm_job after queueing license 472 - Incorporate tag comparison into dispatching equals test 510 - Exception raised with "ada -P" option (partially deleted src subspace) 512 - ASIS.Dec.Representation_Value_Image of rep'd enum yields 'Pos not 'Val 576 - MP crash in tagged type extension aggregate inside of instantiation 583 - CG Null Access Check in ctenvb.Param_Block_Size 628 - Can't reinstantiate instance subunit if "ada -P" and no disk file 641 - FE compiling an instance subunit uses wrong source span (see i.545) 643 - Pacm.pl checkout doesn't create directories 644 - FE allows an illegal Qualified_Expr to resolve 654 - MP crash if pragma INLINE is applied to a renamed Derived_Spec 661 - MP crash in Acc_Subp_Entity.Object applied to a renamed object 686 - adbg yields wrong object value if exe was bound with -qxlcbind vs. ld 694 - apcgen/AdaDI infinite recursion on recursive record type 746 - ada can't handle +unit names as non-file names 747 - Update tools to version 5.4b 749 - 'ada -P' renders ASIS incapable of source text (f15250)
79 - FE crash: instantiation needs missing template body 416 - MP crash with generics and -qinstances=defer (booch) 455 - FE crash in CXB.Open_Subunit when finding spec of body_stub 459 - PA5: All access to tagged types need finalization 496 - PA5: -qinstances=defer vs. =inline -- Want different warning msgs 545 - FE crashes when compiling an instance subunit w/ bad span 582 - MP crash if UFC call is library level instance actual param 586 - a2ps.tar is missing
77 - MP traceback (re_support:is_static_unconstrained) in func return stmt 165 - CG optimizer omits required overflow constraint check 181 - CG crash when -O (optimized) subtype of Positive with 0 as low bound 229 - MP crash w/Component_Size rep. clause on array of 3-bit records 239 - CG crash when PPC instruction's immediate offset exceeds 16 bits 352 - ASIS doesn't yield Selected_Name for 'WITH A.B' of child unit 356 - Executables linked on AIX 5.3 dump core (IBM pthread priority chg) 385 - FE crashes for concatenation of hidden #& operator 398 - Tagged type extension overlooks illegal discriminant defaults
77 - MP traceback (re_support:is_static_unconstrained) in func return stmt 165 - CG optimizer omits required overflow constraint check 181 - CG crash when -O (optimized) subtype of Positive with 0 as low bound 229 - MP crash w/Component_Size rep. clause on array of 3-bit records 239 - CG crash when PPC instruction's immediate offset exceeds 16 bits
8709 STND: map implicit spec to body 9270 ASIS: Acu.Unit_Origin should be more accurate 14938 ASIS: Is_Part_Of_Instance() wrong for instantiations 15284 powerada packed bool array handled as not-packed 15302 ASIS fails to traverse prefix of subprogram/entry call 15304 ASIS - exception from asis.declarations:corresponding_base_entity 15351 PA5 crashes on anonymous array subtype w/ DDC 15361 DDA doesn't work for negative discriminant 15365 DDA.Extensions.Small_Value fails for Derived type 15402 problems with A_PRIVATE_EXTENSION_DECLARATION 23 d15727 PA5: caller xmlvcm1 on PPC uses trashed R3,R4 after call 26 PA5: debugger traceback querying array, then confusion reins 31 PA5: debugger crashes Heap memory exhausted. (f/u 15505) 36 Apcentry: produces bad APC type for Message_Type. 55 debugger can't select loop parameter bounds (was CMVC d8905) 56 Make Razor default cm in build_it2 69 PA 5.3 on AIX makes bad string or I'Image yields STORAGE_ERROR 97 PA5: Inlined function loses low 3 bits of 11-bit field 98 d15352 PA5: 2nd call to same inlined proc gave bad result 100 d12268 PA5: global optimizer bug in short circuit condition 102 d15649 PA5: Asis.DD.Array_Components fails with derived_type 103 d15625 PA5: ASIS treats 'RANGE as Simple_Expression_Range 104 d15624 PA5: Asis.Data_Decomposition.Size was not implemented 105 d15623 PA5: MP crash if index constraint in DDC has 'RANGE attribute 117 PA5: MP crash on derived packed array type decln 118 Add AXI bindings to standard build 121 exports list created by gen_exp_list should include adainitargs
15647 minor defects when compiling with -O 15630 PA/Linux: adbg support for type2 subprogs slow 15617 crash compiling siu_util_socket_stream.adb with -O 15612 PA5: type1 entry/exit sequence bad if quad-wrord align applied 15609 PA/Linux: zero use_count error in cctt opt build 15602 PA5 bad Long_Float->Float conversion if no memory store 15555 PA/Linux: extend reg tracking with probable regs 15468 PA/Linux386: try to keep loop_vars from overwriting 15460 PA/Linux: swap operands to avoid spills 15447 PA/Linux: register tracking for case_jump broken 15442 PA/Linux: translation creates false noops for division op 15441 PA5: cg opt regressions: %ECX not saved during type2 subp entry 15435 PA/Linux: adbg support for type2 subprogs on IA32 15424 IA32: use last_reg and minor optmz for loops 15291 adbgdis.linux won't build properly from build_it2 15284 powerada packed bool array handled as not-packed 15094 dispatching call to 'size should return value in bits not bytes 14856 PA_LINUX: optimize subprogram entry/exit sequences 621 MP traceback - storage_size on pointer to private type 15313 PA/Linux: bblk on_entry/on_exit for IA32 15329 PA/Linux IA32: extend remove_extra_spills 15295 PA/Linux optimization: avoid spills that may be saved in regs 15340 PA/Linux: optimize stack pointer manipulations 15364 PA/Linux: use diff. instructions for optimization 15615 crash compiling subprogram_value'access with -O 15611 crash compiling Type_Cvt(X)'Length with -O 15585 Update_CM_Info broken for PA53/Linux/Razor 15557 PA/LinuxIA32: unsigned division for longs broken 15475 PA/Linux: minor cleanup after reviews 15453 PA/LinuxIA32: emit phase doesn't handle no_ops 15367 PA5: IA32 optimizer crashes when Do_Konstant_Binary overflows 15363 PA/Linux: optimize multiplication by a constant 15249 PA/Linux: debugger breaks on some exceptions in tasks 14824 PA_LINUX: computes static byte offset in 2 instrs (slow) 15675 powerada should not specify LM_DUP_DISP 15679 PA5: add debugger into suite of boostrap hoster tools 15680 PA5: self-host crash, array index is 16-bit, but mult is 32 bit 15676 aprojflatten -R is totally broken 15658 pa_tools ediff broken by faulty emacs-switcher.sh 15685 PA5: c34005m crash computing array index (treats BYTE as LONG) 15696 PA/LinuxIA32: make inline more aggressive 15700 PA/Linux: Adaentry may crash in close_master_scope 15652 PA5 To_Unsigned_Byte( Signed_Long ) fails to raise C_Err 15712 create a new lm_job after queueing license 15719 bad conditional spill