Development Log in August 2008.

  • GNAT Pro | GPS | GNATbench
    Aug 28th, 2008

    VCS_Patch_Root can be specified as relative path
    It is now possible to set the package's IDE VCS_Patch_Root attribute to a relative path. This way it is easier to share a project between developers who may have different setup.

  • GNAT Pro | GPRbuild
    Aug 28th, 2008

    Support for Diab C compiler
    The Diab C compiler is now supported for powerpc-elf (using the ppc750 variant).

  • Ada
    Aug 26th, 2008

    Real-Time Concurrent Issues Drive Ada versus Java Choice

    Ben Brosgol has recently published a paper in COTS Journal that examines the real-time advantages of Ada and Java:

    "On the surface, Ada and Java offer similar features to support real-time embedded military applications. But under the hood, they differ significantly in their underlying philosophy."

    To read the full article, please click here Real-Time Concurrent Issues Drive Ada versus Java Choice or visit http://www.cotsjournalonline.com/home/article.php?id=100827

  • Ada Web Server
    Aug 21st, 2008

    Add upload control
    Upload_Size_Limit can be used to control the uploads to the server. If the received data is larger than this limit, AWS won't upload by default. It is still possible to upload the data using AWS.Server.Get_Message_Body on user's callback if necessary.

  • GNAT Pro
    Aug 19th, 2008

    Better handling of invalid values
    Previously the compiler always assumed that values were in range of their subtypes, except for the case of a use of 'Valid. This meant that in the case of invalid representations, there could be surprising behavior. The compiler now avoids such assumptions in default mode, leading to less surprising behavior. The old behavior, which may be more efficient in some cases can be restored by using the -gnatB switch or by use of the configuration pragma Assume_No_Invalid_Values (On).

  • GNAT Pro | GPS | GNATbench
    Aug 19th, 2008

    Debugger contextual menu handles expressions
    The Debug contextual menu will now take into account the full expression to display a variable. For instance, if you leave your cursor on X in "A.X", then the command sent to the debugger is "print a.x". This also works with more complex expressions like "A(5) . X" (or if there are comments in the middle of the expression).

  • GNAT Pro | GPS | GNATbench
    Aug 19th, 2008

    New menu /Build/Run/Last Launched
    This menu allows you to spawn exactly the same command that you previously spawned through the /Build/Run menu. No dialog is open to ask for arguments. This menu can conveniently be bound to a key shortcut through the /Edit/Key Shortcuts menu.

  • Ada Web Server
    Aug 18th, 2008

    Add shutdown mode parameter
    Shutdown routine in AWS.Net is now able to shutdown the read, write or both side of the socket.

  • GNAT Pro | GPS | GNATbench
    Aug 18th, 2008

    Importing predefined projects
    When you add a dependency to your project (through the Project/Dependencies contextual menu in the project view) on a predefined project (ie one installed in the system's standard directories, like all the projects installed with the GNAT addons), your project is modified so that the with statement does not use absolute paths. This allows you to for instance update the version of your compiler without modifying your projects.

  • GNAT Pro
    Aug 17th, 2008

    Better handling of maximum messages switch
    The -gnatmnn (-mnn for binder) switch now controls warnings and errors independently. If the maximum count of warnings is reached a message is output and subsequent warnings are suppressed, but the compilation is continued. If the maximum count of errors is reached, then a message is output and the compilation is abandoned.

  • GNAT Pro
    Aug 15th, 2008

    Warnings for misuse of Table_Ptr in table packages
    The declared types Big_Table_Type and Table_Ptr in packages GNAT.Tables and GNAT.Dynamic_Tables are not intended to be used by clients. Any attempt to allocate a Big_Table_Type object will typically cause a Storage_Error at run time, and now a warning is always generated at compile time if such an allocation attempt is made.

  • GNAT Pro
    Aug 14th, 2008

    New read-only project-level attribute Name
    A new read-only project-level attribute Name has been added to the Project Manager. Its value is the name of the project in lower case.

  • GNAT Pro
    Aug 14th, 2008

    Automatic initialization of sockets subsystem
    Users of GNAT.Sockets do not need to call GNAT.Sockets.Initialize nor GNAT.Sockets.Finalize explicitly. All required initialization and finalization actions are now performed automatically by the GNAT runtime library. For compatibility with existing applications, dummy no-op routines are supplied.

  • GNAT Pro
    Aug 14th, 2008

    New read-only project-level attribute Project_Dir
    A new read-only project-level attribute Project_Dir has been added to the Project Manager. Its value is the path name of the project directory.

  • GNAT Pro
    Aug 14th, 2008

    No_Streams restriction forbids stream attribute use
    The use of the No_Streams restriction now forbids the explicit use of stream attributes as well as the declaration of stream objects.

  • GNAT Pro | GPS | GNATbench
    Aug 14th, 2008

    New debugger preference: Debugger Windows
    A new preference was added, available in the Debugger tab. It lets you choose what should be done with the debugger-related windows when the debugger is terminated (call stack, data window, threads,...) You can chose to destroy them (the behavior in previous versions of GPS), keep them open, or hide them. In the last two cases, they will of course be reused the next time you start a debugger, and this therefore provides a way to preserve the location of these windows across sessions

  • GNAT Pro
    Aug 13th, 2008

    Warning on missing overriding indicators
    The compiler now warns when the declaration of an overriding operation on a type extension does not carry an overriding indicator. The new warning is enabled by the gnat style switch -gnatyO.

  • GNAT Pro
    Aug 13th, 2008

    Better placement of missing body messages
    For a subprogram with a missing body, if the spec is in the same source file, the error message is now placed on the spec, rather than on the body.

  • GNAT Pro
    Aug 13th, 2008

    Enhancements to pragma Check_Policy/Obsolescent
    The second argument of pragma Check_Policy can be given an identifier of Policy. The second and third arguments of pragma Obsolescent can be given identifiers Message and Version. Note that in accordance with RM 2.8(4), the use of these new identifiers is mandatory if the first argument has an identifier. The compiler did not always catch violations of 2.8(4) (see known problems entry for H813-005), so it may be necessary to change some existing uses of pragma Obsolescent.

  • GNAT Pro
    Aug 13th, 2008

    Improvements to pragma Obsolescent
    The implementation of pragma Obsolescent now allows the entity parameter to be present or absent (that is, the old version without the entity is considered fully supported and not obsolete). It is no longer required to use the "Entity =>" identifier for the first parameter when the entity is present. Instead this is now like any other pragmas, you can choose whether or not to use argument identifiers.

  • GNAT Pro | GPS | GNATbench
    Aug 13th, 2008

    Fixing “multiple blank lines” error message
    The style error "multiple blank lines" is now automatically fixable in GPS, extra blank lines get removed when the fix is applied.

  • GNAT Pro | GPS | GNATbench
    Aug 12th, 2008

    Call graphs now uses dispatching information
    When a subprogram A has a dispatching call to subprogram B (or one of its overriding procedures B'), then both B and B' are now displayed in the callgraph. This also applies when looking for the callers of a subprogram, and helps locate all places where a subprogram might potentially be called.

  • GNAT Pro | GPS | GNATbench
    Aug 12th, 2008

    Refactoring read-only files
    When renaming an entity, GPS now has the capability to make files writable before doing the change. The default is still to ignore read-only files

  • GNAT Pro | GPS | GNATbench
    Aug 12th, 2008

    Renaming parameters in overriding subprograms
    When using the refactoring capabilities of GPS to rename a subprogram parameter, you can now optionally also rename parameters with the same name in overriding or overridden subprograms.

  • PolyORB
    Aug 11th, 2008

    Fast path CDR marshalling
    The CDR module now takes advantage of the fact that some common aggregate types (arrays and sequences of characters, octets and integers) have a memory representation that is identical to the CDR representation to transmit and decode them efficiently. This new feature is enabled by default but can be turned off by setting enable_fast_path to FALSE in the [cdr] section of the PolyORB configuration.

  • GNAT Pro | GPRbuild
    Aug 11th, 2008

    Specifying executable name in gprconfig
    The --config switch parameter to gprconfig can now be used to specify the base name of the executable you want to use. This can be used to easily select a type of compiler over another type, no matter whether it appears first in the path or not.

  • GNAT Pro
    Aug 9th, 2008

    Support for pragma Thread_Local_Storage
    A new pragma Thread_Local_Storage ([Entity =>]library_LOCAL_NAME) is now implemented. This can be used to mark package variables as being treated as thread local storage (TLS). On systems where this is supported (Solaris, GNU/Linux, VxWorks 6), this means that each thread (each task in the Ada sense) will see a distinct version of this variable.

  • GNAT Pro | GPS | GNATbench
    Aug 8th, 2008

    Gnatdist configuration language support
    Add syntax highlighting and support for showing the entities in the project explorer for the Gnatdist configuration language. Add also Gnatdist compiler tool with switches.

  • GNAT Pro | GPS | GNATbench
    Aug 7th, 2008

    Support delimiters highlighting within comments
    Highlighting of matching brackets/parenthesis now works within a same comment block.

  • GNAT Pro | GPS | GNATbench
    Aug 7th, 2008

    New attribute in Language / Category node
    In language category definition, the new attribute End_Index allows to select parenthesis-pair of the regular expression after which the next search will begin, instead of continuing after the end of the pattern.

  • GNAT Pro
    Aug 5th, 2008

    Warn on empty main file name in project
    The Project Manager issues a warning when one of the mains in attribute Main has an empty name.

  • GNAT Pro
    Aug 1st, 2008

    Text_Translation Form parameter for Text_IO
    A new Form parameter may be passed to Text_IO.Create and Text_IO.Open: Text_Translation=Yes is the default, and it means to translate LF to/from CR/LF on Windows systems. Text_Translation=No disables this translation; i.e. it uses binary mode. For output files, Text_Translation=No may be used to create Unix-style files on Windows. Text_Translation is implemented only on Windows systems. It has no effect on any other version of GNAT Pro. Note: The default behavior has not changed; the behavior with Text_Translation=Yes is identical to the behavior before implementation of this feature.