Janus/Ada 3.1.2 Released
April 15, 2016
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
- 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.Text_IO.Text_Streams & Ada.Text_IO.Wide_Text_Streams
- 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
- 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.
- Bind 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
- The Janus/Ada user manual is provided electronically, in both HTML (with
links) and PDF forms.