From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,MSGID_RANDY autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b5459f8ad45b088c X-Google-Attributes: gid103376,public From: Robert Dewar Subject: Re: [A bit OT] Problems with GNAT 3.11p Date: 1999/09/26 Message-ID: <7sk2ko$sbm$1@nnrp1.deja.com> X-Deja-AN: 529596748 References: <37EC5429.4328708B@yukyonline.co.yuky> <7siica$sgu$1@nnrp1.deja.com> <37ECE188.7AF1E2B@yukyonline.co.yuky> X-Http-Proxy: 1.0 x40.deja.com:80 (Squid/1.1.22) for client 166.72.81.93 Organization: Deja.com - Before you buy. X-Article-Creation-Date: Sun Sep 26 03:07:10 1999 GMT X-MyDeja-Info: XMYDJUIDrobert_dewar Newsgroups: comp.lang.ada X-Http-User-Agent: Mozilla/4.04 [en] (OS/2; I) Date: 1999-09-26T00:00:00+00:00 List-Id: In article <37ECE188.7AF1E2B@yukyonline.co.yuky>, the middleman wrote: > I agree with you. I am guilty of not reading the > documentation! well we all do that sometimes, and the fact is that many kinds of program really don't need documentation. For instance I have used powerpoint for ages and know it quite well, but never read any documentation. > And i'd > say that NG's are getting to a sad state where people just ask questions > without looking into it much themselves. Well of course in this situation you really needed to ask the newsgroup anyway, and got the valuable information about the RPM's that you needed, so that's not so terrible :-) :-) > Normally I would do a bit more > work myself but on this occason I think I have an good excuse > (excueses.....excuses!!). I had been up all night messing around with 3D > on my Voodoo Banshee (and I'm sure those of you who have tried to get > one of those to work with linux will agree, it can get very > frustrating). Sometimes I must say I find it hard to believe that anyone can get anything working, we have all been there! > Once I had succeded with that I moved on to installing > GNAT. when I got these problems I couldn't be bothered reading > anything > so I just posted a question. Pick up the RPM, and things should be smooth. Note that we have given the GNAT/Linux team advance access to the 3.12 version, so they should have the RPM's available for 3.12p almost simultaneously with the 3.12p release. That's the idea. > Just to say that I am guilty thats all. Well I apologize if I was too fierce reacting -- it's always frustrating on the other end when you work hard on the documentation and it does not get read :-) P.S. If you are using GNAT, take the time to read the manuals at some point, you will be surprised how much useful stuff is there! > P.S. I know i should have read the documenation before even > trying to install it but to be honest I don't think that many > people do that. It's often worth just glancing at a top level readme file, even if you don't have time for the full doc! > P.P.S Good news that GNAT 3.12p is out soon Yup, and I think you will find a lot of good stuff there. Here for reference is the list of features new in 3.12: Enum_Rep can now be applied to integer types and objects. This allows its use on (<>) formal discrete types in generic packages and subprograms. A preliminary version of the Data Decomposition Annex is now available for use in ASIS. This preliminary version supports only the simple typ model, and does not yet allow queries with Portable_Data arguments. The -gnatR switch can now be used in conjunction with the -gnatc switch to obtain representation information without requiring a full compile. The standard GNAT library (on Unix systems) now contains a Makefile called Makefile.adalib which allows recompilation of the runtim with different compilation options or different configuration pragmas. GNAT now handles C, C++ and Fortran convention boolean types specially. In all these cases, zero/non-zero semantics is used, so that any non-zero value is treated as equivalent to True. This means that the implementation of Interfaces.Fortran.LOGICAL is more accurate and provides a convenient way of importing C int values used as boolean values. GNORT now permits the use of allocators and it is also possible to explicitly raise Program_Error. These calls are supported by user defined subprograms. See GNORT documentation for full details. A new package, GNAT.Current_Exception is provided for access to the current exception name and information. This is provided for compatibility with other Ada 83 compilers. See g-curexc.ads for a full description of this package. A new gnatbind option, -shared, enables the use of a shared GNAT library when available (currently DEC Unix, SGI IRIX and OpenVMS). Static GNAT library is the default on all targets but VMS and SGI IRIX. A new tool is provided, gnatdll. This is an NT/Win9x specific tool to help in constructing DLLs. Complete rewrite of the section of NT/Win9x specific features and documentation of the GNAT technology in this area. This section now clearly explains and documents how to use the NT/Win9x specific features of the GNAT technology. The compiler is now built with options -gnatpn instead of -gnata. This means that the front end of the compiler is considerably faster, up to 2-3 times faster in some cases. The cases where you will see the biggest speed up are in -gnatc compilations with no code generation, or if very large specs are with'ed from smaller units. If pragma Suppress is used in the gnat.adc file, this now properly suppresses exceptions in all files compiled in the presence of this gnat.adc file (Suppress pragmas in gnat.adc were previously ignored, which is in accordance with the RM, but certainly not what is wanted!) On Digital Unix 4.0D, the run time now takes advantage of the full range of priorities (0 .. 63). In -gnatc mode, an existing up to date ali file is no longer destroyed. In particular this means that the -gnatc -gnatt compilations used by ASIS do not destroy existing ali files. A new switch -gnaty activates style checking features in the compiler. These roughly correspond to the checking done by the special internal -gnatg flag, except that -gnaty allows extensive choice of which checks are to be performed, and also allows parametrization, e.g. of the indent level that is enforced. The handling of aggregates has been optimized in many cases, generating more efficient code and less memory usage. The binder now generates an Ada package as the main program by default instead of a C program. The generated files are called b~xxx.ads/adb, where xxx is the name of the main program. The -C switch for both gnatbind and gnatlink can be used to get the old behavior of generating the main program in C. The compilation switches are now stored in the ali file (lines starting with A). This is used to implement the corresponding ASIS option to retrieve the command line arguments. A new pragma Finalize_Storage_Only has been implemented. It indicates that a Finalize routine is present only for the purposes of releasing storage, and that thus the Finalize call can be omitted in some cases (e.g. for objects declared at the library level). A function and a procedure to retrieve the current working directory have been added in g-dirope.ad[sb]. Gcov, a test coverage program is now distributed with GNAT. See the gcc documentation for its use. pragma Task_Info is now available for AiX and can be used to specify the scheduling contention scope of each Ada task. New switches -nostdinc and -nostdlib for gnatmake and gnatbind. New switch -nostdinc for gcc/gnat1 and gnatls. -nostdinc turns off looking for sources in the system default directory. -nostdlib turns off looking for library files in the system default directory. [VMS] Wildcard directory specifications accepted and expanded in /SEARCH qualifiers and ADA_{INCLUDE,OBJECTS}_PATH logicals. Add support for Windows NT Resources. Under NT there are two new tools. RCL the resource compiler and res2coff to convert a binary resources file to a coff object file to be linked with a program. A new package GNAT.Traceback provides non-symbolic tracebacks at run time on Solaris and Linux. A new package GNAT.Traceback.Symbolic provides symbolic tracebacks at run time on Solaris and Linux. A new package GNAT.Regpat implements the full V7 regular expression matching, including such features as anchors, and is thus a more complete implementation than that in GNAT.Regexp, which is retained for compatibility (and is in any case more appropriate for certain functions). The packages Calendar and Ada.Real_Time for the NT/Win9x implementation now use a high resolution clock providing a resolution of 1 micro-sec. A new convention DLL has been added to simplify the development of DLL's using the NT/Win9x port of GNAT.. The convention Stdcall is now available for variables as well as subprograms for the NT/Win9x port of GNAT. A restricted version of the run time is now provided. This version of the run time is automatically used if the appropriate set of restrictions is used. A new pragma Restricted_Run_Time sets this set of restrictions. The restricted run-time is more efficient for the set of allowed operations. A new pragma Ravenscar establishes the set of restrictions that corresponds with the Ravenscar profile for limited tasking. This is a more restrictive set than Restricted_Run_Time, so use of pragma Ravenscar will also cause th restricted run time to be used. A new restriction identifier No_Complex_Barriers has been added which causes barriers to be restricted to simple boolean variables declare within the protected type. This is one of the Ravenscar restrictions. A new restriction identifier No_Select_Statements has been added which completely eliminates the use of select statements. This is one of the Ravenscar restrictions The list of switches printed out when the -gnath option is used now includes common gcc switches. The handling of protected objects with no entries has been simplified and optimized. A new switch -gnatR causes the compiler to output representation information for declared arrays and records. A new switch -gnatD causes the compiler to generate files with names x.dg (where x is the source file name) that contain the expanded (-gnatG) code and to force debugging information to refer to these files. This allows source level debugging using the expanded code. The package GNAT.Command_Line has been updated to handle sections on the command line, as in gnatmake (-largs, -bargs, ...). There is also a new character '!' to specify that a switch must have a parameter, and that there must be no space between the two. Finally, a new special switch '*' has been created, to match any item on the command line. Shared passive partitions are fully implemented, including support for protected objects that provide global locking capability. The implementation allows the use of shared passive partitions to communicate between separate programs as well as between partitions of a single distibuted program, and also provides for automatic persistance from one run to another. A new flag -O for gnatbind gives a complete list of objects that are needed by the Ada part of the program. The sorting packages GNAT.Heap_Sort_A, GNAT.Heap_Sort_G, GNAT.Bubble_Sort_A and GNAT. Bubble_Sort_G use subtype Natural instead of Positive for the number of items to sort, so it is no longer an error to sort an empty range of items. A new package GNAT.Threads (in files g-thread.ads/adb) provides a general facility for foreign code (e.g. written in C) to create threads in a manner known to the Ada run-time system, so that these threads can freely call Ada code that uses explicit or implicit tasking constructs. The Assert pragma now permits expressions of types derived from Boolean instead of requiring Standard.Boolean itself. A new flag -z for gnatmake and gnatbind allows the more convenient compilation/binding/linking of an Ada program without a main subprogram. The execution of such a program is identical to the one of the program with an empty main subprogram with a "with" clause on the main package. The output format of gnatxref has been modified to be in columnar format so that it is easier to read. The gnatfind utility now accepts wild cards in the file name to allow a set of files to be searched, and this works on all operating systems. The gnatprep utility now supports boolean expressions (and, or, and then, or else, =, 'Defined), and has a new command line switch to define symbols. A new optimization circuit removes many subscript checks in loops in the cases where the range of the loop can be determined to be in range of the subscript. The location (file and line number) at which an exception was raised now appears by default in the exception message, and the message for an unhandled exception includes this information. Zero cost exceptions are now implemented in DEC Unix and on SGI Irix. On these two targets, zero cost exception handling is the standard default. You can select longjmp/setjmp exception handling (smaller executables) by using the -gnatL switch on all compilations including the library units. The switch -gnatZ can be used to enable zero cos exceptions on certain other targets including NT, but these are partial implementations in which exceptions cannot be propagated through C code (but for all Ada programs, this will work correctly). In the DEC Unix version, foreign threads (those created outside Ada) are now recognized automatically and converted to Ada tasks for proper treatment by the Ada run time as Ada tasks. 24-bit packed components are now permitted in GNORT mode provided that the alignment of the component type is explicitly set to 1. A new attribute System'To_Address (X) has exactly the same result value as System.Storage_Elements.To_Address (X), except that the result is a static value if the input value is static, allowing its use in a package to which pragma Preelaborate applies. It is now permissible to declare library variables whose nominal type is unconstrained String in GNORT mode if the initializing expression is a string literal. Robert Dewar Ada Core Tecnologies Sent via Deja.com http://www.deja.com/ Before you buy.