Development Log in 2004.

  • GNAT Pro
    Dec 31st, 2004

    New warning for misaligned objects
    The existing warning about objects whose address was incompatible with the explicit alignment constraints has been extended. It now also warns when an object address is incompatible with explicit or implicit alignment constraints on its base type. The run time check is unchanged and Program_Error will still be raised when objects are not correctly aligned.

  • Ada | Ada 2005 / 95 / 83
    Dec 30th, 2004

    AI-381 Restriction No_Dependence
    This new restriction allows the specification of arbitrary packages to be excluded from the semantic dependencies of a partition. This new restriction form (No_Dependence => unit) is allowed in both the standard Restrictions pragma, and in the GNAT pragma Restriction_Warnings. Note that, contrary to the current writeup (rev 1.7) of the AI, we have implemented the so-called syntactic approach which does not restrict the named package to be one of the language predefined ones. This is still under discussion in the ARG, and we anticipate that this approach will be the preferred one.

  • Ada | Ada 2005 / 95 / 83
    Dec 28th, 2004

    AI-377 Naming of generic child packages
    This AI addresses a pathological visibility issue involving the implicit declaration of a generic child unit that is present within an instantiation of its parent. Specifically, a context clause has to be rejected when an instance I1 of a generic unit G1 has an explicit child unit I1.G2, G1 has a generic child also named G2, and the context includes with_clauses for both I1.G2 and for G1.G2, making the implicit declaration of the generic child unit I1.G2 visible as well.

  • Ada | Ada 2005 / 95 / 83
    Dec 28th, 2004

    AI-332 Resolution of qualified expressions
    This AI clarifies the resolution rules for qualified expressions, object renaming, and other constructs, for which the term "expected type" is not used. GNAT implements properly the intent of this AI.

  • Ada | Ada 2005 / 95 / 83
    Dec 28th, 2004

    AI-331 Instantiation of generic child units
    This AI clarifies the intent of RM 10.1.1(19) that generic child unit can be instantiated at any level of nesting (the original wording left this unclear). GNAT has always implemented this properly.

  • Ada | Ada 2005 / 95 / 83
    Dec 28th, 2004

    AI-268 Rounding of real static expressions
    A literal reading of the wording of the Ada 95 standard appears to require that static float values exactly half way between two machine numbers are to be rounded in biased manner (away from zero), and hence treated differently from non-static environments where typical IEEE compatible systems do non-biased rounding. This is corrected in Ada 2005, where the rounding is implementation defined, with a recommendation to round the same way at compile time as at execution time. In fact GNAT Pro already follows this recommendation, even in Ada 95 mode, since it seems a clearly preferable approach.

  • Ada | Ada 2005 / 95 / 83
    Dec 27th, 2004

    AI-388 Add Greek Pi to Ada.Numerics
    Ada.Numerics now contains an additional declaration using the greek letter pi as the identifier, with the same value as the previously available definition under the identifier Pi (which is retained). In Ada 2005 mode, wide characters can always appear in identifiers.

  • Ada | Ada 2005 / 95 / 83
    Dec 27th, 2004

    AI-364 Fixed-point multiply and divide operations
    In Ada 2005, a special name resolution rule applies to user-defined multiplication and division operators on fixed-point types. If fixed-point type has such primitive operation, the predefined operator of the same name is not available. This rule fixes an incompatibility between Ada 83 and Ada 95, and makes the user-defined operators easier to use.

  • Ada | Ada 2005 / 95 / 83
    Dec 27th, 2004

    AI-242 Surprising behavior of Update
    The Update procedure in Interfaces.C.Strings that takes a string parameter had the unexpected and unintended effect of truncating the result just past the inserted string. This was definitely not intended, and this AI documents the appropriate fix. In GNAT, we have fixed this in both Ada 95 and Ada 2005 mode, since it seems like a clear error.

  • GNAT Pro
    Dec 26th, 2004

    Better error msgs in pragma config file
    The error messages for bad pragmas in configuration files have been improved in three respects: multiple errors are now posted if there are multiple bad pragmas, the error flags are posted more accurately, and the error message disinguishes the cases of unrecognized pragmas and the use of a non-configuration pragma.

  • Ada | Ada 2005 / 95 / 83
    Dec 26th, 2004

    AI-340 New attribute Mod
    This AI introduces a new attribute Mod, available for any modular type, with one argument, which can be of any integer type. The result is this integer value mod the modulus of the modular type. This attribute is available only in Ada 2005 mode (-gnat05 switch). That's because mod is a reserved word, and it requires a change in the syntax to allow a new reserved word as an attribute identifier.

  • Ada | Ada 2005 / 95 / 83
    Dec 25th, 2004

    AI-283 Stream files truncated by close/reset
    This AI specifies that Close and Reset on a stream file should not truncate the file. In practice, although strictly required by the Ada 95 RM, this was an obvious mistake, and GNAT has always done the right thing here (which is not to truncate the file).

  • GNAT Pro
    Dec 23rd, 2004

    Add unit kind to gnatmetric XML output
    A new attribute describing the program unit kind is added to the 'unit' tag in the XML output generated by gnatmetric.

  • Ada | Ada 2005 / 95 / 83
    Dec 23rd, 2004

    AI-196 Assignment and tag-indeterminate calls
    For the assignment of the result of a tag-indeterminate dispatching call to a target of a class-wide type, the controlling tag value for the call is now defined by the tag of the target.

  • Ada | Ada 2005 / 95 / 83
    Dec 22nd, 2004

    AI-368 New restriction No_Obsolescent_Features
    This AI introduces a new restriction No_Obsolescent_Features, with the expected semantics of restricting use of Annex J features. The identifier can be used in pragma Restrictions or Restriction_Warnings. Note that the related warning -gnatwj is retained, since it is not quite the same, in that it also warns on use of obsolete GNAT features.

  • Ada | Ada 2005 / 95 / 83
    Dec 22nd, 2004

    AI-316 Accessibility checks and value conversions
    This AI is classified as a ramification and clarifies that the rule of 6.5(18) applies to any type conversion (including a value conversion) that can be used as the return expression for a return-by-reference type. This rule was already followed correctly by GNAT.

  • Ada | Ada 2005 / 95 / 83
    Dec 20th, 2004

    AI-369 Generic formal objects static in instance
    This AI specifies that the name of a formal object of mode in associated with a static actual denotes a static constant in the instance. This rules has always been followed by GNAT.

  • Ada | Ada 2005 / 95 / 83
    Dec 18th, 2004

    AI-384 Conversion rule for access subtypes
    This AI provides a symmetric legality rule for conversions of access subtypes. The conversion is now legal when either designated type is unconstrained, at the expense of a possible constraint check.

  • Ada | Ada 2005 / 95 / 83
    Dec 17th, 2004

    AI-258 Behavior of To_C for null string
    This AI deals with the anomolous case of a call made to Interfaces.C.To_C with a null string and Append_Nul false. This routine is supposed to return a string with a lower bound of zero, but that is impossible in this case, since the index type is unsigned. The resolution is that this should raise Constraint_Error. Previously GNAT returned a string with bounds 1..0, but that clearly violated the required lower bound of zero.

  • Ada | Ada 2005 / 95 / 83
    Dec 17th, 2004

    AI-255 Renaming of subcomponent of generic in out
    This AI confirms that the rule against renaming of components that depend on a discriminant applies to an in out generic parameter, even when its subtype is constrained.

  • Ada | Ada 2005 / 95 / 83
    Dec 17th, 2004

    AI-167 Validity check after unchecked conversion
    This AI ensures that it is not erroneous to do an unchecked conversion producing an invalid value, followed by a 'Valid check on the result. In fact it has always been the case that GNAT guarantees this to work (the 'Valid check would not be much use otherwise!)

  • Ada | Ada 2005 / 95 / 83
    Dec 16th, 2004

    AI-200 Generic formal subprograms and dispatching
    This AI revises the definition of primitive operations to make it clear that subprograms in a generic unit that override the primitive subprograms of a formal tagged type are not primitives of the formal type (or the actual type in an instantiation), and hence are not dispatching operations. This applies both to formal subprograms and subprograms occuring later in the generic specification. GNAT already implemented this intent correctly, so there will be no effect on users from this change to the revised rule (RM95-3.2.3(7)).

  • Ada | Ada 2005 / 95 / 83
    Dec 8th, 2004

    AI-214 Distinct names for subunits/child units
    This AI allows compilers to reject an attempt to put child unit and subunit with the same expanded name into a compilation environment. In fact GNAT does permit this (via the parameter Subunit_File_Name of the Source_File_Name configuration pragma), but otherwise does reject it if this is not used.

  • GNAT Pro
    Dec 6th, 2004

    Windows uses Zero Cost Exceptions
    GNAT for Windows now uses the zero cost exception mechanism by default. This speeds up most applications built with this new default runtime. The previous runtime, known as SJLJ (SetJump/LongJump) runtime, is provided as a second runtime.

  • GNAT Pro
    Nov 29th, 2004

    Additional warning on unreferenced entities
    When warnings are enabled, the compiler now reports properly on unreferenced entities declared in subprogram bodies that have a previous subprogram declaration. Previously, messages were only produced for entities in bodies without a prior declaration.

  • GNAT Pro
    Nov 24th, 2004

    New project path section for gnatls -v
    When gnatls -v is invoked, in addition to the source and object path section, a new section indicating the project search path is displayed. The project path is found in the environment variable ADA_PROJECT_PATH, or if this environment variable is not defined or empty, it defaults to <prefix>/lib/gnat, where <prefix> is the intallation directory of GNAT.

  • GNAT Pro
    Nov 14th, 2004

    OS_Lib.Spawn uses parent priority on Windows
    Processes launched with all spawn routines found in GNAT.OS_Lib are using the priority class of their parent on Windows. For example, this is the case for gnatmake where the compiler is launched with gnatmake's priority class. Therefore, it is now possible to control the priority of a project build.

  • GNAT Pro
    Nov 13th, 2004

    Independent control of extra paren check
    The warning check for extra parens around conditional expressions has been removed from the redundant construct warning, and been replaced by a new style option -gnatyx (STYLE_CHECKS=XTRA_PARENS in VMS) which controls this specific check. This change reflects the observation that this is really more of a style check, and also allows it to be controlled independently of the other useful redundant construct warnings.

  • Ada | Ada 2005 / 95 / 83
    Nov 10th, 2004

    AI-085 Operations on Stream_IO
    In Ada 2005 a call to Reset without the mode parameter is equivalent to a call to Reset with the current mode of the file. In addition, the beginning and end of the file mentioned in the description of the semantics of Reset designate the beginning and end of the external file.

  • GNAT Pro
    Nov 2nd, 2004

    Enhanced variants of Spawn in GNAT.OS_Lib
    In package GNAT.OS_Lib, two new procedures Spawn have been added. These procedures redirect the output from the spawned program into either a file descriptor, or a file.

  • GNAT Pro
    Nov 1st, 2004

    Improved definition of No_Streams
    The restriction No_Streams is now more useful. It only disallows actual creation of objects of a stream type (by either an object declaration or an allocator). But it does not disallow withing Ada.Streams, which means that library packages with such with statements can still be used, provided no stream object is created.

  • GNAT Pro
    Oct 27th, 2004

    GNAAMP saves asm file after errors
    On the AAMP target only, if there are errors reported by the back end, such as for a stack frame exceeding the target limit, an assembly file will still be generated as an aid to the programmer in determining the source of the errors.

  • GNAT Pro
    Oct 14th, 2004

    Better handling of aggregates in allocators
    For many aggregates that are used as expressions in allocators, GNAT builds these arrays directly in dynamic storage, rather than constructing them first on the stack and then copying them to the heap. This allows the handling of aggregates that would otherwise lead to stack overflow.

  • GNAT Pro
    Oct 13th, 2004

    Virtual extension of Library Projects
    When using "extends all", Library Projects may be virtually extended, however the virtual extending project is no longer a library project.

  • GNAT Pro
    Oct 12th, 2004

    Shared runtime supported on Windows
    GNAT for Windows now comes with a shared runtime. This is made possible by the enhanced support for DLL's in this release. GNAT for windows now has the same level of support for shared libraries as GNU/Linux systems.

  • GNAT Pro
    Oct 9th, 2004

    New gnatclean switch -f
    A new switch -f has been added to gnatclean to allow deletions of files that are not writable when the user has write permission on the containing directory.

  • GNAT Pro
    Oct 9th, 2004

    No warnings for gnatclean -q
    When gnatclean is invoked with -q and not with -v, warnings for undeletable files are not output.

  • GNAT Pro
    Oct 7th, 2004

    Projects for external libraries
    It is now possible to create library project files for externally built libraries. Only the library file need to be put in the library directory. The read only ALI files that would normally be in the library directory should be put in the object directory. The library directory should contain no ALI files. No object files should be in the object directory. The sources in the source directory may be limited to what is necessary, for example the interfaces for a Stand-Alone Library.

  • GNAT Pro
    Oct 6th, 2004

    Facilities for setting file permissions
    New subprograms Set_Executable, Set_Writable and Set_Read_Only have been added to the GNAT.OS_Lib package. They allow setting the corresponding file permission flags in the file directory entry.

  • GNAT Pro
    Sep 28th, 2004

    GNAAMP breakpoints on procedure end line
    For the AAMP target, the compiler now generates LINE mark information for implicit return statements that immediately precede the end of a procedure to indicate the "end" line of the procedure. This allows a breakpoint to be set on the "end" line that will be triggered when the procedure reaches its end.

  • GNAT Pro
    Sep 28th, 2004

    Improved dead code checking for blocks
    The circuitry for detecting unreachable code has been enhanced so that it works for the case of a block where all exit paths from the block (including any exception handlers) terminate with an unconditional transfer of control. In such cases, the statement after the block is unreachable, and this is now properly detected and generates a warning message.

  • GNAT Pro
    Sep 20th, 2004

    Avoid possible reserved word Interface
    It seems possible, perhaps likely, that INTERFACE will become a new reserved word in the next Ada standard. To avoid being forced to make an incompatible change at a later point, we have decided to rename components in GNAT.Sockets.Option_Type at this point: Interface was renamed to Local_Interface, and Multiaddr was renamed to Multicast_Address. That means that you may need to modify programs explicitly mentioning these components. We recommend that at the same time you remove any other use of this identifier from your programs.

  • GNAT Pro
    Sep 17th, 2004

    Packed arrays no longer initialized
    The compiler no longer generates initialization of small packed array variables to zero bits. This avoids the unexpected behavior of such variables in contexts where the initialization is visible (notably for address clauses and for pragma Import).

  • GNAT Pro
    Sep 2nd, 2004

    New gnatdll’s option to generate map file
    A new gnatdll option (-m) has been implemented to generate a map file.

  • Ada | Ada 2005 / 95 / 83
    Sep 2nd, 2004

    AI-305 pragma Detect_Blocking
    This configuration pragma forces the detection of potentially blocking operations in a protected operation. Program_Error is raised in this case.

  • GNAT Pro
    Aug 17th, 2004

    Documentation for -fverbose-asm
    The -fverbose-asm switch (in VMS /VERBOSE-ASM) is now documented. This has been available for some time but was not previously documented in the GNAT users guide. This switch is used in conjunction with -S to cause the resulting assembly language file to be annotated with names of variables.

  • GNAT Pro
    Aug 8th, 2004

    Compile more robust when using -gnatQ
    The use of -gnatQ occasionally results in internal errors resulting from bad syntactic trees. Another instance of this behavior has been corrected. The eventual intention is that all cases of bad programs are correctly handled using -gnatQ and none result in internal errors.

  • GNAT Pro
    Jul 31st, 2004

    Improved secondary stack handling
    For those cases where the secondary stack is still used for return of variable length values (see also D621-002), the code has been improved to reduce the number of calls to determine the current task, improving performance.

  • GNAT Pro
    Jul 29th, 2004

    Better debugging for task entries
    For tasks waiting on a task entry, the commands "info task" and "info tasks" gives now the id of the task which is accepting the rendezvous.

  • GNAT Pro
    Jul 29th, 2004

    Improved loading time in GDB for VxWorks
    The time for GDB to read a object file and load it to the target has been significantly reduced; instead of buiding its complete debug table at load time, GDB now does it on demand.

   1  2  3     Next »