GNAT 6 experience report (very short)

John Marino has packaged GNAT 6 from FSF for FreeBSD and DragonFly.

I’ve installed FreeBSD with GNAT 6, and tried to see if there were any obvious differences to the older versions (I use GNAT 4.9 and 5 on Debian).

So far the result is that it is more picky about anonymous access types. (Maybe even too picky. I’m trying to figure that out.)

Here is an example:

GNAT 6.0.0 20151129 (snapshot) -=> GNAT AUX [FreeBSD64]
Copyright 1992-2015, Free Software Foundation, Inc.

Compiling: /usr/home/sparre/org.opentoken-6.0b/opentoken-production-parser-lalr-parser_lists.adb
Source file time stamp: 2015-12-10 10:32:39
Compiled at: 2015-12-24 13:56:17

   487.       return (Element => Position.Item'Access);
                                 |
        >>> access discriminant in return aggregate would be a dangling reference

 746 lines: 1 error
gnatmake: "/usr/home/sparre/org.opentoken-6.0b/opentoken-production-parser-lalr-parser_lists.adb" compilation error

The subroutine which causes the problem is:

   480     function Constant_Reference
   481       (Container : aliased in List'Class;
   482        Position  : in Parser_Node_Access)
   483       return Constant_Reference_Type
   484     is
   485        pragma Unreferenced (Container);
   486     begin
   487        return (Element => Position.Item'Access);
   488     end Constant_Reference;

Switching to 'Unrestricted_Access makes the compiler accept the function, but is it safe?

(Debian/experimental also has GNAT-6.)

Two New AVR-Ada Projects From Tero Koskinen

A while ago I reported on Tero’s Arduino Blog, and today I’m glad to say that Tero has put up two new AVR-Ada posts:

The Blinking LED example is geared towards complete beginners, and he actually makes it seem so easy that I’m even considering trying my hands at some Arduino+Ada fun.

Personally I think Tero deserves ÜBER geek points for soldering on his dad’s Thinkpad and ultimately making it work again. In my book that’s just pure wizardry!

GNAT GPL 2012 is here!

I’ve been waiting anxiously for the 2012 edition of the GNAT GPL compiler and the accompanying GNAT Programming Studio update, and now the wait is finally over:

Get the GNAT GPL 2012 package

Coinciding with the GNAT GPL 2012 release, we also get a bunch of updates to all the other great libre.adacore.com tools, such as:

And a whole slew more. I’ve personally installed GNAT GPL 2012, the new GPS, AWS 2012, GNATColl 2012, Florist 2012 and XML/Ada 2012 on my Slackware64 boxes, and everything went without a hitch. It just worked. Next up: Getting familiar with some of new Ada 2012 features. Should be fun.

Building GCC with Ada on Solaris x86

In a long thread on comp.lang.ada titled Companies Only Offering Ada-95 Compilers Simon Wright decided to post a short notice about him having build GCC 4.7.0 for Solaris 11 i386/amd64 and uploaded the result to sourceforge:

Building GCC with Ada on Solaris x86

I tip my hat to Simon and his ability to fight his way through what appeared to me to be a rather dense jungle of weird little issues. Awesome work Simon!

You can grab the resulting package here.

Ada on Slackware64

At Z’s space (the blog of Zhu Qun-Ying) you can find a post about building an Ada environment on Slackware64. It comes complete with a bunch of slackbuild scripts and some precompiled Slackware packages. Awesome!

I haven’t tried the packages myself, since I just download the stuff I need straight from libre.adacore.com, but there are obvious advantages to having the software packaged as a standard Slackware packages, so I might give ’em a whirl in the future.

If you’re interested in seeing how the default libre.adacore.com packages are installed on a Slackware64 box, then feel free to take a look at the 5 videos I did on the subject a while ago: Ada on Slackware.

No matter which path you choose, it’s great to know that Ada programming on Slackware is as easy as it gets. A big “Thank you Zhu Qun-Ying!” for making it even simpler.

GNAT AUX Synced With GCC 4.6.3

The DragonLace project is still going strong, and a little over a week ago they synced the GNAT AUX compiler with GCC 4.6.3:

GCC 4.6.3 was released on 1 March 2012. Due to recent work on the gnat-aux package, it was relatively easy to update the pkgsrc version of gnat-aux to version 20120301 which syncs with GCC Release 4.6.3. It has already been tested and committed to the pkgsrc CVS trunk.

It wasn’t all sunshine and happy bananas though, as there was some trouble getting it to work properly with FreeBSD 9.x. The DragonLace people are on it though, and if things pan out as they usually do, they will have everything solved soon ™.

You can read the full post about the update here

AdaCore Releases GNAT Pro 7.0

I’m fairly sure I’ll never be able to afford GNAT Pro, but that wont stop me from being very excited about the release of GNAT Pro 7.0:

AdaCore today announced the availability of GNAT Pro 7.0, a major new version of the company’s flagship development environment product. This latest annual release completely implements the upcoming Ada 2012 language revision, offers a range of improvements (many based on user suggestions), supports several new platforms, includes an important new testing tool (GNATtest), and enhances several existing tools. As with all AdaCore products, GNAT Pro is Freely-Licensed Open Source Software (FLOSS)

Having full Ada 2012 support in an Ada compiler is pretty damn awesome. Kudos to AdaCore for making it happen so fast. The only downside is that us poor people will have to wait for GNAT GPL for what will now feel like an eternity. GNAT GPL is still stuck at version 2011 on the libre.adacore.com website. But hey, time flies when you’re having fun, so I guess we best get cracking on some fun projects ASAP.

FSF GNAT 4.3.4 binaries for OpenBSD/amd64 5.0

This is just a quick one to let you know that Tero Koskinen has done a couple of packages for OpenBSD/amd64 5.0 to help alleviate some of the pain of bootstrapping GNAT:

GNAT is somewhat painful to bootstrap on new platforms and existing binaries for OpenBSD/amd64 are for older releases, so I made fresh ones for OpenBSD 5.0 release on amd64 (x86_64 for Linux people) platform.
Tasking and most other “common” features should be supported, although I suspect that GNAT-AUX 4.6.x from http://www.dragonlace.net/ passes more ACATS tests. But once you have 4.3.4 installed, you can use it to bootstrap GNAT-AUX 4.6.x.

You can get the packages from http://koti.kapsi.fi/tkoskine/openbsd/5.0-amd64-packages/ and then it’s just a simple matter of using pkg_add to install them.

You can read the full release announcement from Tero here.

Solaris GNAT Packages

If you’ve been craving for some Ada loving on Solaris, then now is perhaps the time to rejoice. Yesterday Maciej Bliziński contacted me and asked for help finding people who were willing to put in a bit of time and effort in testing his new Ada frontend for GCC 4.6.x on Solaris.

You can read his request at the dragonlace.net mail list.

If you’re both a Solaris user and an Ada programmer, then this should be grand news to you. Please get in touch with Maciej, if you’re interested in helping him test these new packages.

JVM-GNAT GPL 2011 binaries for Mac OS X available

You’re in luck if you need JVM-GNAT GPL 2011 binaries for Mac OS X.

I can’t exactly say I that I know a whole lot about these binaries, but I’m guessing that if you need something like this, you already know the value of having it available.

There’s a comp.lang.ada post about these binaries here.

Enjoy!