Janus/Ada 3.1.2 Released

R.R. Software, Inc. is happy to announce the full release of Janus/Ada 3.1.2. The next evolution of our longstanding Ada technology, Janus/Ada 3.1.2 brings selected Ada 2007 features to Janus/Ada. It also brings a modernized installer, which simplifies the installation process, and allows us to offer electronic delivery of software. Janus/Ada 3.1.2 is available now for Microsoft Windows 2000 and newer, including Microsoft Windows 7 and Microsoft Windows 10. New features in version 3.1.2: Ada 2007 syntax (and semantics where implemented) is the default. Use the /Y5 option to set Ada 95 mode. (Ada 95 mode disallows new Ada 2007 features, and, unlike /YX for Ada 83 mode, also adjusts the legality rules and in a few cases, the generated code.)

Checking optimizations have been improved and are compatible with Ada 95 rules.

New transformation optimizations are supported. These are controlled by the /Z9 option, and also are included in the /Z, /ZS, and /ZT bundles. These optimizations can greatly improve the performance of loops and repetitive code.

The following Ada 95 features are supported in version 3.1.2: user-defined stream attributes. default stream attributes for elementary types. calls to stream attributes (but not of stream attributes for generic formal types).

The following Ada 95 predefined packages are supported: Ada.Streams.Stream_IO Ada.Streams Ada.Text_IO.Text_Streams & Ada.Text_IO.Wide_Text_Streams Interfaces.C.Pointers Ada.Task_Attributes

The following Ada 2007 features are supported in version 3.1.2: pragma Unsuppress (inside of a unit only). <> in aggregates. Limited aggregates in declarations and allocators (including constants). However, limited multidimensional array aggregates and limited named array aggregates are not yet supported. Anonymous access-to-constant types. Anonymous access types in object declarations and components (notes: object declarations use the original Ada 2007 accessibility and not the changed accessibility found in Ada 2012. This will change in future versions of Janus/Ada, even in Ada 2007 mode (the change is considered a "correction"). Also, the special equality for anonymous access types is not implemented.]). Raise with a message string.

If a file with the Janus/Ada conventions is not found, Corder automatically will try replacing any '#' with '-'. This effectively lets Corder directly use GNAT source files if the /l'ads'/n'adb'/l255 options are used to allow the GNAT extensions and unlimited length file names.

Runtime heap use is now tuned to the platform that the program is running on (this should provide better memory use on Windows NT/2000/XP/Vista/7/8/10 systems). MemAvail and MaxAvail should now provide accurate answers on Windows NT/2000/XP/Vista/7/8/10 systems, but they're also quite a bit slower than in the past.

JDebug is now smarter about the identification of source file names. It is only necessary to give a fragment of the source file name; if this fragment is unique (there are no other files with the same fragment) then this is sufficient to identify the file. This generally means that the path is not required for a source file name, easing use. In addition, it should now handle source files with multiple units.

JBind has many new and changed options.

JBind will attempt to check that the linker options match the runtime being linked. This check hopefully will reduce the confusion that occurs when a mismatch happens: a clear JBind message is better than a mysterious Link failure. However, the check will not work if the JAWSII environment variable is not set (the installation program should setup the environment variable properly, but it can be overwritten by other programs or hand-generated setups).

The Janus/Ada user manual is provided electronically, in both HTML (with links) and PDF forms.