Request GNAT Ada compiler system to house on a USB with compiler switch to use only Ada 95, with no vendor fee.
I can supply the jump drive by US Mail with return mailer. The idea is to have a compiler system that works on a USB device that is movable from my laptop to desktop as needed.
My aim is to compile code in Ada 95 on laptop or desktop, but the Windows 10 update will no longer run my Ada 95 compiler on my relatively newer but old laptop.
Would it work for you to download and use the GNAT Community Edition that AdaCore provides freely available:
I don’t remember what year AdaCore removed the “-gnat95” compiler switch, perhaps you could try with the 2017 or 2018 version of the compiler.
Recently I tried to download a stand-alone installer for Visual Studio 2019. Microsoft only provides installer for Visual Studio 2019 that downloads the needed software from the internet which means an internet connection is required to install Visual Studio 2019 nowadays. Microsoft did previously provide stand-alone installer that did not require internet connection, but has recently been removed from the Microsoft website. In comparison, AdaCore provides all Community Edition versions of the GNAT compiler since 2007. Many thanks AdaCore!
You can look for GNAT 3.15p, a good vintage at the time.
For instance you find it here (click on the first image for downloading it): https://www.ada-deutschland.de/sites/default/files/AdaTourCD/AdaTourCD2004/index_tools.html
The timestamps in the bin directory are Nov. 2002 the latest, so it is surely Ada 95.
You can try to install it on your USB drive, but the easiest and safest is to install it on both your laptop and desktop (those old versions of GNAT relied on some registry magic).
I cannot find gnatwin-3.15p.exe at the link auf Deutsch.
What is the switch to force GNAT studio to compile only in Ada 95? Maybe that is a simpler question to get 'er done.
Also, it is my understanding that AdaCore requires internet access for GNAT studio to work, implying they could be interested in whatever is being compiled. Is that the case, that internet connection is required for studio to operate correctly? If so, then that nixes a stand alone compiler product on a stick that is movable. (The registry magic stuff is nonsense, meaning the stick idea won’t work from the git-go.)
I did. There was an executable downloaded to install the product, but there was no dot exe file to invoke the compiler. gnatwin-3.15p-nt.exe is an installer only that unpacks user manuals and a debugger.
Can GNAT studio with free compiler be packaged as a portable stick?
What is the switch setting to invoke only Ada 95 compiles?
You need gnat-3.15p-nt.exe, not gnatwin-3.15p*.exe.
In the installer dialog, say you specify C:\GNAT\3.15p\ as the installation directory.
Then the GNAT executables will be in the C:\GNAT\3.15p\bin directory - list below.
If they aren’t, perhaps you have something on your system preventing writing executables.
Indeed I obtained that directory result. Now what: how to read GNAT’s mind to proceed?
The question remains the same in the subject line. Either volunteer responders do not read the subject line, the subject line is imperfectly written and unclear, or there is no forum answer which bodes ill.
For gnat-3.15p (2002), my test results for main_000.adB as the complex test harness of 82 cases are:
1.1. 30-warnings
1.2. 564K exe file size
1.3. failure to pass one test case, but wo line warning for the respective code block.
I am not paid to do QA research on a 23-year old Gov’t funded product sold by AdaCore.
Lessons learned are:
2.1. gnat-3.15p produces exe code size at 152% larger than Janus/Ada 95 (JA95).
2.2. gnat-3.15p failed to process correctly one of 82 test cases and without warning.
2.3. JA95 implemented in 80386 assembler is more reliable than gnat-3.15p implemented in C (gcc).
What follows is to find another free gnat compiler for Ada 95 without induced errors.
Any details?
Which warning did you expect?
Some GNAT warnings are enabled through options. You get the full list by typing just gnatmake on the command line.
My experiment did not use code optimization for either gnat-3.15p or for JA95 3.21a to keep conditions the same.
The particular test failed in gnat-3.15p with no warning or errors reported. I am not supplying the instant code which is proprietary but can be purchased for $497 as a onesy. The particular test is in the simple conditional form of: IF observed_str = expected_str THEN test_pass_is_true_chr ;. The same Ada code is correct with no runtime problems, and correctly passed as expected in JA95. Hence no warnings were anticipated from gnat-3.15p, assuming it was also perfect.
Maybe AdaCore should submit gnat-3.15p to Barne’s SPARK and Taft’s Whatever to find the compiler error. Was such an endeavor documented in an academic report somewhere, in other words, results for validate-the-validater-by-the-validater? For gnatmake.exe switches, I counted about 130 unique single options. That level of complexity and indirection should certainly stress test the tools, namely, the veracity of gcc and its invokers.
(As a side note, from my rendition in bivalent mathematical logic of the subsequently stated pre- and post-condition theory adopted by AdaCore, it is not a theorem but maybe nearly so. As Knuth is prone to say, “Close, but no cigar”. Moreover, AdaCore has no published bivalent proof of the same as such and available to me.)
Most likely there is an uninitialized variable in the code and the JA95-compiled program seems to work because that variable happens to have a certain value due to the local state of the memory when the variable starts to exist.
Sheer speculation, as AdaCore does not advertise that gnat-3.15 was validated as perfect by SPARK. (In fact others found that gnat-3.15 output does not match Janus/Ada95, before I independently discovered this.)
Moreover I don’t see any academic papers that AdaCore validates any of its GNAT products by SPARK. For example, SPARK cannot validate itself. This means SPARK is a purely academic pursuit which is already admitted with no mathematical logic proof for its pre- and post-condition theory.
What follows is that GNAT compilers cannot claim 100% reliability which is very sad for mission critical applications.
Prior to SPARK 2014, the original SPARK Examiner tool by Praxis High Integrity Systems was actually written in SPARK.
Regarding GNAT, while much of the compiler is not proven using SPARK, AdaCore has mentioned that they do run their static analyzers (eg GNATProve ) on the compiler and other tools. I recall reading somewhere that some of the Ada runtime libraries in GNAT have SPARK variants available.