Development Log in 2006.

  • GNAT Pro
    Dec 30th, 2006

    Warning for convention C for discriminated record
    The use of pragma Convention to set a convention other than Ada for a record with discriminants is dubious, since other languages do not have types that exactly correspond to the Ada variant record. A warning is now generated for this usage. The warning is suppressed in the Unchecked_Union case, since the whole point of unchecked unions is to aid in foreign language interfacing.

  • GNAT Pro
    Dec 29th, 2006

    Checking for IN mode parameters in -gnatg mode
    GNAT source style mode does not permit the use of IN mode (this is the default, and it need not, and in GNAT source code must not, be explicitly specified). This is now automatically checked if -gnatg is specified.

  • GNAT Pro
    Dec 29th, 2006

    Suppression of reference warnings
    Reference warnings (for example, never read or never written) for variables are now suppressed if the type or base type of the variable has warnings suppressed with pragma Warnings (Off, typ).

  • GNAT Pro
    Dec 28th, 2006

    Convention C for enumeration object size warning
    If an object of an enumeration type has Convention C, and the size is less than the size of int, then this is a bit suspicious, since normally C would use int for enumeration types. A warning is now given in this case for non- character enumeration types for which no explicit size is given.

  • GNAT Pro
    Dec 27th, 2006

    More efficient code for Initialize_Scalars
    In the case where an array is explicitly initialized with an aggregate, it is not necessary for Initialize_Scalars to cause a separate initialization. Previously such arrays were initialized twice.

  • GNAT Pro
    Dec 27th, 2006

    New GNAT style check option
    The style check flag -gnatyg enforces exactly the same set of style checks that are used by the GNAT source code itself. This may be useful when you are developing code for eventual inclusion in GNAT. Note that this is not the same as -gnatg, which also allows such non-standard language constructs as recompiling children of Ada. It only enforces style checks.

  • GNAT Pro
    Dec 27th, 2006

    Optimization option -Os is documented
    The users guide now mentions optimization option -Os (optimize for space) making this an officially supported gcc flag. A VMS equivalent has been added (/OPTIMIZE=SPACE). This option has worked fine on previous versions of GNAT, but was not officially documented in the users guide.

  • GNAT Pro
    Dec 27th, 2006

    Clearer warnings from -gnatwl in static mode
    The warnings for possible access before elaboration are now specialized according to the current elaboration model. In static mode, we now avoid suggesting adding pragma Elaborate or Elaborate_All (which would be wrong) and instead just note that implicit pragmas are being generated.

  • GNAT Pro
    Dec 25th, 2006

    GNAT.Heap_Sort_G and Bubble_Sort_G are now pure
    Changes in the Ada 2005 rules have made it possible to make the generic sorting packages (GNAT.Heap_Sort_G and GNAT.Bubble_Sort_G) Pure, so that they can be used from Pure units in both Ada 95 mode and Ada 2005 mode.

  • GNAT Pro
    Dec 20th, 2006

    Project-wide checks and metrics
    The GNAT Driver has been enhanced so that it can be use to call gnatcheck or gnatmetric on all the units of a project, all the units of a set of projects or all the units needed to build a main program.

  • GNAT Pro
    Dec 20th, 2006

    New pragma Universal_Aliasing
    This new pragma inhibits strict type-based aliasing optimization for the type it is applied to, i.e. the effect is as though access types designating this type were automatically subject to pragma No_Strict_Aliasing.

  • GNAT Pro | GPS
    Dec 19th, 2006

    Remote programming in the Embedded Technology Journal
    The latest edition of the Embedded Technology Journal includes an interesting article on IDE considerations for remote programming. You can find more information on the use of this technology with GNAT and GPS by clicking here, or by contacting sales@adacore.com.

    To view the article please click here.

    .

  • GNAT Pro
    Dec 19th, 2006

    Remove restriction on interface types and Ada.Tags
    Previous versions of the compiler had a restriction on the use of subprograms Expanded_Name, Wide_Expanded_Name, Wide_Wide_Expanded_Name, and External_Tag with the tag of class-wide interface objects. This restriction has been removed.

  • GNAT Pro
    Dec 17th, 2006

    Improved selection of float stream routines
    Long_Float and Long_Long_Float have the same representation on many machines, e.g. SPARC. On such machines, the Long_Float routines were selected for use with long_long_float data being streamed. This is changed so that the type appropriate routines are now used. This has no effect in the standard run time, since the representations are identical, but it can be useful in cases where specialized versions of the Stream_Attributes package are created.

  • GNAT Pro
    Dec 13th, 2006

    Task-safe network database operations
    The network database operations in package GNAT.Sockets: Get_Host_By_Name, Get_Host_By_Address, Get_Service_By_Name, and Get_Service_By_Port now take advantage of task safe library functions provided by the underlying operating environment, on platforms where such functions are available, to avoid having to use GNAT.Task_Lock to guarantee correct operations in partitions with tasking. This improves concurrency on these targets.

  • GNAT Pro
    Dec 8th, 2006

    Control encoding of gnatpp out files
    A new option -We ('e' has the same values with the same meaning as for the GNAT '-gnatWe' option) is added to gnatpp. This option sets the wide character encoding method used for gnatpp out files.

  • GNAT Pro
    Dec 5th, 2006

    gnatpp can process Ada 2005 sources
    The gnatpp tool fully supports Ada 2005.

  • GNAT Pro
    Dec 4th, 2006

    New switches -R and -Z for gnatbind
    Two new switches are added to gnatbind: -R to output the list of sources that are in the closure of a main, but not in the runtime, and -Z to suppress formatting of auxiliary outputs produced by switches -e, -l, -K and -R.

  • GNAT Pro | Ada Compiler
    Nov 30th, 2006

    GNAT Pro Insider Nov 2006 issue available
    The November 2006 issue of the GNAT Pro Insider newsletter is available for download. Contents:

    • GNAT Pro and Ada 2005 Coming to .NET
    • GNATstack Tool Available
    • New GCC Technology
    • What’s Coming in GNAT Pro 6.0.1
    • New Version of gprmake
    • New Version of GNAT Tracker
    • Spotlighting a GAP Member
    • AdaCore at Conferences
    • Interview with Bob Duff
    • Public Courses at AdaCore New York
    • New Target Platforms for GNAT Pro
    • More Ada 2005 Features Available in GNAT Pro
    To download the newsletter please click here

  • GNAT Pro
    Nov 30th, 2006

    By-descriptor mechanism for exported subprograms
    Support for parameter passing using the VMS by-descriptor mechanism has been implemented for exported subprograms, with the same restrictions as those of the implementation for imported subprograms.

  • GNAT Pro
    Nov 30th, 2006

    GNAT LIST now recognizes switch -U
    Switch -U (VMS qualifier /ALL_PROJECTS) is now recognized by GNAT LIST (gnat ls). When used with a project file, gnatls is called for all the sources of all the projects in the project tree.

  • GNAT Pro
    Nov 29th, 2006

    Locally_Removed_Files allowed in all projects
    The attribute Locally_Removed_Files may now be used in non-extending projects provided the listed removed files would be sources if the attribute was not specified. This allows to declare, for example, that sources are all *.ads/*.adb, except a short list.

  • GNAT Pro
    Nov 28th, 2006

    WITH TYPE clauses not supported
    Support for this GNAT-specific language extension has been removed from the compiler. This feature introduced several years ago, was an early ARG proposal to solve the problem of mutually recursive type definitions in different compilation units. The WITH TYPE clause has been made obsolete by the LIMITED WITH clause of Ada 2005.

  • PolyORB
    Nov 28th, 2006

    Reduced code footprint of sequences
    The code footprint and compile time for instances of Sequences.Bounded and Sequences.Unbounded has been significantly thanks to a complete redesign that allowed significant code sharing across instances. Note that subprogram Element_Of has been removed. It was a non-standard renaming of the Get_Element function specified by the Ada language mapping. Get_Element should be used instead.

  • Ada
    Nov 22nd, 2006

    AdaCore’s Ben Brosgol receives SIGAda’s Outstanding Ada Community Contribution Award

    Ben Brosgol, a senior member of AdaCore's technical staff, received an Outstanding Ada Community Contribution Award at the ACM SIGAda 2006 Conference in Albuquerque, New Mexico (US), on 15 November. This annual award is bestowed on individuals "for broad, lasting contributions to Ada technology and usage", and past recipients from AdaCore are Robert Dewar (1995), Ed Schonberg (1997), Bob Duff (2002), and Matthew Heaney (2005).

    In honoring Ben, SIGAda noted his numerous and significant contributions to the Ada effort, starting from the earliest days and continuing to the present. He worked on the "Red" language (the runner-up in the original Ada language design competition) and served as a Distinguished Reviewer for Ada 83 and as a member of the language revision team for Ada 95. He has been conducting Ada courses for over 20 years, has presented papers and tutorials at many Ada-Europe and SIGAda conferences, and is currently the President of the Ada Resource Association.

    In 1998 Ben received SIGAda's other annual award, for distinguished service to SIGAda itself; he is one of only three individuals to have received both awards.

  • GNAT Pro | GPS
    Nov 22nd, 2006

    PyGTK: A testing solution for GPS

    The GNAT Programming Studio, AdaCore's IDE, has been enhanced to allow python scripts that use PyGTK's interface to the GTK+ toolkit to interact with it.

    GPS architecture allows the user to interact with the GUI by means of scripts written in either the simple GPS script language or in python. Current versions of GPS offer the possibility, for example, to open a new source editor and move the cursor to the end of the buffer by writing:

    • ed = GPS.EditorBuffer.get (GPS.File ("src.adb"))
    • ed.current_view().goto (ed.end_of_buffer())

    What PyGTK brings is the ability to simulate user-level actions such as mouse clicks or key strokes, to manipulate complex widgets such as GTK's TextView and TreeView, to activate contexual menus, etc.

    This is a revolution as far as GPS testing is concerned because it allows most actions that previously required human interaction to be completely automated. For example, let's assume an action opens a dialog containing an OK button. Simulating a mouse click on it is as simple writing:

    • ok_button.clicked()

    PyGTK allows automatic testing of everything including the most complex GUI aspects such as focus issues, signal handling, etc.

  • GNAT Pro | Ada Compiler
    Nov 17th, 2006

    New stage in the transition to GNAT Pro based on gcc 4.1 backend

    We are in the process of transitioning the GNAT Pro technology to a new compiler back-end based on GCC 4.1 which we expect to bring significant performance improvements to user applications. Our goal is to have several of our supported configurations on this back-end for the next major GNAT Pro release scheduled early 2007. We have been able to make significant progress in the areas of general stability and in the support for numerous platforms thanks to invaluable input provided by our customers. This latest beta version includes support for most of the new Ada 2005 features and is our most advanced Ada 2005 technology.

    Please do not hesitate to contact us if you have any questions concerning this program.

  • GNAT Pro
    Nov 12th, 2006

    System.Restrictions only included if needed
    Previously, the unit System.Restrictions was unconditionally included in every program, and the binder file always initialized the restriction data. Now this only happens if this unit is explicitly used, saving time and space. This is particularly important in the context of the configurable run time, where this unit may not be present.

  • GNAT Pro
    Nov 12th, 2006

    System.Restrictions only included if needed
    Previously, the unit System.Restrictions was unconditionally included in every program, and the binder file always initialized the restriction data. Now this only happens if this unit is explicitly used, saving time and space. This is particularly important in the context of the configurable run time, where this unit may not be present.

  • GNAT Pro | Ada Compiler
    Nov 10th, 2006

    New Version Numbering for GNAT Pro

    In 2007 AdaCore will be moving to a new numbering scheme for product releases. Instead of two-part version numbers such as 3.15a or 5.04a1, we will be using the more common convention of three numbers separated by dots. The first number, as at present, will identify a major release and will thus indicate the introduction of significant new functionality. The second number will correspond to the digits after the dot in the current scheme. And the third number will replace the suffix (such as "a" or "a1") used at present. "0" as the third number will be used for a beta version, "1" for an initial release, and higher numbers for subsequent releases.

    In order to acknowledge the full support for the new Ada 2005 features, the GNAT Pro major version number is moving to the 6 series. More specifically, the version scheduled for Q1 2007 will be 6.0.1, and the follow-up release scheduled for later in the year will be 6.0.2. The planned releases in 2008, incorporating enhancements to be made during 2007, will then be 6.1.1 and 6.1.2.

    Customers can find more information in the "Our support policy" on GNAT Tracker.

  • GNAT Pro
    Nov 7th, 2006

    Partial support for Ada 2005 features in gnatpp
    A new -gnat05 option is added to gnatpp. When called with this option, gnatpp can process Ada sources containing some Ada 2005 features:

      - overriding indicators
      - null subprograms
      - interface types
      - generalized anonymous access types
      - null exclusion
      - tagged incomplete types
      - limited aggregates ('<>' in component associations)
      - subprogram calls given in Object.Operation notation
      - limited and private with clauses
      - raise with string message
      - formal abstract subprograms
      - partial parameter lists for formal packages
    
    A future gnatpp version will fully support Ada 2005.

  • GNAT Pro
    Nov 1st, 2006

    Warning for component with no component clause
    A new warning switch (-gnatw.c to turn on, -gnatw.C to turn off, off by default) causes warnings to be generated for a record representation clause in which the majority, but not all, of the components have component clauses. A warning is generated for each component for which no clause is present.

  • GNAT Pro
    Nov 1st, 2006

    Warning for component with no component clause
    A new warning switch (-gnatw.c to turn on, -gnatw.C to turn off, off by default) causes warnings to be generated for a record representation clause in which the majority, but not all, of the components have component clauses. A warning is generated for each component for which no clause is present.

  • GNAT Pro | Ada Compiler
    Oct 31st, 2006

    AdaCore Quality Process
    The Nov 2006 online issue of CrossTalk sees an interesting article on AdaCore's quality assurance processes and tools:

    "A software product is rarely a static artifact resulting from a one-time effort; it needs to evolve via periodic updates, to correct defects or meet new requirements, and it may need to be ported to multiple machines and/or operating systems. The development team might be distributed geographically, requiring careful coordination. A software producer must have well-defined processes for dealing with these issues, to ensure that its products successfully meet users’ needs."

    The full article is available here.

  • GNAT Pro | Ada Compiler
    Oct 31st, 2006

    GNATstack - software analysis tool
    AdaCore today launched GNATstack, a software analysis tool that enables software development teams to accurately predict the maximum size of the memory stack required to host an embedded software application. GNATstack is an important component of AdaCore’s High-Integrity solution (GNAT Pro HIE), which is an enhanced Ada development environment used for building safety-critical, embedded software applications that require certification. The tool is targeted at system designers creating high integrity and high reliability embedded applications. For more information please click here or contact sales@adacore.com.

  • GNAT Pro
    Oct 26th, 2006

    Better error message for use of IN with ACCESS
    It is not permissible to use IN and ACCESS together. Previously this mistake resulted in an obscure error message. This error is now clearly diagnosed.

  • GNAT Pro
    Oct 26th, 2006

    Better error message for use of IN with ACCESS
    It is not permissible to use IN and ACCESS together. Previously this mistake resulted in an obscure error message. This error is now clearly diagnosed.

  • GNAT Pro
    Oct 18th, 2006

    Reduced verbosity when building libraries
    In default mode (not quiet, not verbose) the output when building libraries has been reduced: the lists of object files and ALI files are not displayed and only the first object files is displayed in the link command. Output has not been changed in verbose mode.

  • GNAT Pro
    Oct 18th, 2006

    Reduced verbosity when building libraries
    In default mode (not quiet, not verbose) the output when building libraries has been reduced: the lists of object files and ALI files are not displayed and only the first object files is displayed in the link command. Output has not been changed in verbose mode.

  • GNAT Pro
    Oct 17th, 2006

    More flexibility in record layout in -gnaty mode
    When TYPE and RECORD are on different lines in a record declaration, GNAT now allows the END RECORD to line up under either line in -gnaty or -gnatyr modes. This makes the compiler consistent with the format chosen by GPS by default in this case.

  • GNAT Pro
    Oct 17th, 2006

    More flexibility in record layout in -gnaty mode
    When TYPE and RECORD are on different lines in a record declaration, GNAT now allows the END RECORD to line up under either line in -gnaty or -gnatyr modes. This makes the compiler consistent with the format chosen by GPS by default in this case.

  • GNAT Pro | GPS
    Oct 11th, 2006

    Remote Programming update
    A new section of the corporate site has been created to highlight GPS's new Remote Programming facility. Remote Programming provides a secure, efficient, and flexible way for software development teams to reduce costs by taking full advantage of their desktop computers and networks. To learn more, click here »

  • GNAT Pro
    Oct 9th, 2006

    Warnings on unused assignment to OUT formals
    A new warning switch (-gnatw.o) causes modifications to variables via OUT parameters to be treated as assignments from the point of view of warning generation (warning when the assigned value is unreferenced or clobbered by another assignment). This warning is not included in -gnatwa because it seems common to have ignored out parameters, so if you want this warning activated, it must be done explicitly (e.g. using -gnatwa.o).

  • GNAT Pro
    Oct 4th, 2006

    New pragma Compile_Time_Error
    A new pragma Compile_Time_Error can be used to issue error messages based on compile time checks. This pragma is exactly like the previously existing pragma Compile_Time_Warning, except that an error message is issued instead of a warning message.

  • GNAT Pro
    Oct 4th, 2006

    New pragma Compile_Time_Error
    A new pragma Compile_Time_Error can be used to issue error messages based on compile time checks. This pragma is exactly like the previously existing pragma Compile_Time_Warning, except that an error message is issued instead of a warning message.

  • GNAT Pro
    Sep 27th, 2006

    New function GNAT.OS_Lib.Current_Time
    A new function GNAT.OS_Lib.Current_Time providing access to the current system time as an OS_Time value is now available.

  • GNAT Pro
    Sep 27th, 2006

    New function GNAT.OS_Lib.Current_Time
    A new function GNAT.OS_Lib.Current_Time providing access to the current system time as an OS_Time value is now available.

  • Ada
    Sep 25th, 2006

    Ada 2005 for High-Integrity Real Time Systems (Video)

    An indepth presentation by AdaCore senior software engineer, Jose F Ruiz, on Ada for embedded high-integrity real-time systems.

    The talk covers:

    • The Ravenscar tasking profile
    • Flexible real-time scheduling algorithms
    • CPU clocks and timers
    • Timing events
    • Flexible object-oriented features

    View the video »

  • GNAT Pro
    Sep 20th, 2006

    Bind_Socket allows binding to a specific address
    GNAT.Sockets.Bind_Socket now honors the Addr parameter, allowing the user to bind to a specific address, instead of the wildcard address (previously it would always bind to the wildcard address, and ignore the Addr component of the Address argument). Note that applications that relied on the previous behaviour should now explicitly use Any_Inet_Addr to bind a socket with an unspecified address (and thus accept connections on all interfaces).

  • Ada
    Sep 18th, 2006

    Internationalization in Ada 2005
    There are three aspects to making a language truly usable internationally.

    First, which almost goes without saying, is that there should be an international standard for the language that has been carefully reviewed by the international community. This is most certainly true of Ada, and specifically the draft standard for Ada 2005 has been approved by a vote of ISO member countries and is well on its way to getting the final stamp of approval. That vote was the critical one, it's all smooth sailing from here and we may even have a formal standard before the end of the year. We were not sure if this would happen in 2006 or 2007 (which is one of the reasons we chose 2005 for the name). Of course once the standard is issued, the name of the language becomes simply Ada, since this name always refers to the current standard. It is notable that Java lacks such a standard, and has as a result been almost entirely a US-driven design.

    Second, you want to be able to write programs that will handle foreign languages in a comprehensive manner. The standardization of international character sets has taken a huge stride forward in the last few years with the approval of the new ISO 10646 standard that is unified with Unicode. This is a 32-bit standard which covers all languages in the world, as well as specialized character sets for such applications as music notation. Smooth integration of this standard is not trivial in a language design. It is certainly not sufficient to just include a 32-bit character type. You need as well full integration of library functions that deal with characters and strings. Given the participation of the international community in the Ada 2005 design, it is no surprise that Ada 2005 accommodates this new standard fully and cleanly. The new types Wide_Wide_Character and Wide_Wide_String are first-class citizens in Ada 2005, and fully supported in the library and the language design. Ada-2005 compilers, notably GNAT Pro, fully support this language feature, and support not only the standard UTF encoding of such characters, but also locally used encodings such as Shift-JIS, which is still used in Japan.

    Third, you would like to be able to write programs with comments and identifiers in non-Roman scripts. A very important part of the Ada design is dedicated to making highly readable source programs. Choosing good identifier names is a critical element of readability, so for non-English speaking programmers, it can be extremely valuable to support a full range of character sets for this purpose. It's not by any means trivial to design such a feature. For example, exactly how should case equivalence be handled in a locale-independent manner? Again, the Ada 2005 design (and GNAT Pro) fully support the use of foreign languages for identifiers and in comments. The implementation of this was by no means a trivial task, but it is now complete in the current versions of GNAT Pro.

    In short, once again Ada leads the way in language design, and fully addresses the difficult issues of smoothly integrating all written languages of the world, allowing for truly international use of Ada.

   1  2  3     Next »