DragonLace.Net
Home of the GNAT AUX and future DRACO Ada compilers.
System Arch Test Failures Snapshot Status Download GNAT AUX
DragonFly i386 None 4.9.0:2014-02-23 Perfect Available via ports
DragonFly x86_64 None 4.9.0:2014-02-23 Perfect Available via ports
FreeBSD i386 None 4.9.0:2014-02-23 Perfect Available via ports
FreeBSD x86_64 None 4.9.0:2014-04-22 Perfect Available via ports
NetBSD i386 None 4.9.0:2014-04-22 Perfect Available via pkgsrc
NetBSD x86_64 None 4.9.0:2014-04-22 Perfect Available via pkgsrc
OpenBSD i386 1 Failure 2011-01-04+ Excellent OpenBSD32 4.7 binary
OpenBSD x86_64 1 Failure 2011-03-25 Excellent OpenBSD64 4.8 binary
OmniOS x86_64/x86 None 4.9.0:2014-04-22 Perfect Available via pkgsrc
Android 4.4 ARM stack-checking 4.9.0:2014-04-06 Excellent Available via ports
Posted Sun Nov 14 13:41:39 2010

Adacore releases most of its GPL-licensed software on an annual basis, usually in May. That happened again, and as a result a number of packages have been updated to their latest releases in ports for FreeBSD and DragonFly:

  • florist 2014
  • gprbuild 2014
  • ASIS 2014
  • PolyOrb 2014
  • XML/Ada 4.5.0.0 (repo)
  • AWS and demos 3.2.0.0 (repo)
  • GNAT Programming Studio 6.1.0.0 (repo)

Additional two more ports were added:

  • GNATColl 2014 (devel/gnatcoll)
  • GTKAda3 3.8.3.1 (repo) (x11-toolkits/gtkada3)

Note that versions that equal "2014" are the exact Adacore GPL release and the ports with 4-group versions are working versions from public-facing repositories. In some cases it was necessary to use later versions, e.g. we don't want two versions of xmlada (one for GPS, one for general use) and sometimes trying to maintain a single version of the dependencies means using codebase from something newer than the release. For example, GPS was frozen 7 months ago and the release wasn't compatible with the latest versions of gtkada3 and xmlada.

In other news, ANet was updated to version 0.3.0, a release that exists mainly to clean up the code for BSD based on our patches.

Posted Sun May 25 04:00:00 2014

Despite good intentions, support for GNAT-AUX/GCC-AUX had never been added to pkgsrc. The reason is that multilib support was desired (this means x86-64 Solaris can build 32-bit executables), but all builds failed on the Ada libraries on gcc 4.7.x. It turns out that this was a reported bug and it has since been fixed.

Happily a multilib-capable x86-64 bootstrap compiler was created on OmniOS. After some tweaking, pkgsrc is now capable of building gcc 4.9.0 i386 compilers (demonstrated on Joyent's SmartOS development server) and new x86-64 compilers on OmniOS.

This has not been tested on Solaris 10 or Solaris 11 yet, but it is not expected to work as the bootstrap is dynamically linked to system libraries (static linking is no longer possible since Solaris 9). There could be symbols created by Illumos that Solaris 10/11 don't understand. If that is the case, another bootstrap compiler specifically for Solaris 10/11 will be required for those platforms.

After pkgsrc branches its next quarterly, Joyent will start producing binary packages of gcc-aux which can be used on any Illumos distribution. Otherwise any installation of pkgsrc on an Illumos platform can build it from source right now.

By the way, it passed both testsuites perfectly. It's a reliable compiler!

Posted Fri May 09 05:14:59 2014

While DragonFly and FreeBSD have been enjoying FSF GNAT 4.9 for several weeks now (first snapshots and finally the actual 22 April 2014 release) from FreeBSD's Ports Collection, NetBSD was excluded as exclusively uses the FSF GNAT 4.7 from pkgsrc.

This changed yesterday though. New bootstrap compilers were made for NetBSD i386 and x86-64, and the bootstraps from the Ports Collection were also utilized. Now pkgsrc also features the latest GNAT, which is also the only version of GCC 4.9 available in pkgsrc. This means GNAT is available on six pkgsrc platforms: i386 and x86-64 on DragonFly, FreeBSD, and NetBSD. Due to the lack of a current and conforming bootstrap compiler, the SunOS support was disabled. Potential future work is to add OpenBSD bootstraps to add GNAT for OpenBSD and MirBSD through pkgsrc, and also to restore support for SunOS (Solaris 11 / SmartOS / OmniOS).

The Ada testsuites were run on the latest NetBSD 6.1.4 releases and passed perfectly. The results on display on the front page of DragonLace.

There is one downside. The new GNAT apparently requires a version of binutils newer that what NetBSD 6.1 features (version 2.21). The GNAT Programming Studio will not link with the new GNAT when it uses the base linker, but unfortunately GNAT fails to build on NetBSD 6.1 with newer binutils from pkgsrc. NetBSD 6.99 (the precursor to NetBSD 7) features binutils 2.23 in base and thus GPS builds fine. A Problem Report has been raised, but there is no estimate of when (or if) a fix for NetBSD 6 or earlier will come.

Posted Thu May 01 06:33:32 2014

Recently added to the FreeBSD ports collection was codelabs.ch's pscs-ada (thick Ada binding to PC/SC-middleware) and the APQ Ada95 database binding with drivers for MySQL, PostgreSQL, and ODBC included as as separate ports.

A huge effort went into updating the GNATDroid ARM cross-compiler to be based on GCC 4.9. This is the only ARM compiler that supports sockets to my knowledge -- socket support is disabled on a stock gcc, but I've got it working and it passes the related testsuite.

The only thing that doesn't pass is the stack-check tests. That is because stack-checking as not yet been implemented for the ARM target on GCC. A patch to add the capability was created but never added, but hopefully it gets added soon.

Other internal improvements include getting the ACATS test to run on a remote device in 15 minutes rather than 6 hours, and to get the gnat.dg testsuite to run for the first time on a remote device. The results are publish on the main page (they look good!)

Posted Sat Apr 12 18:22:04 2014

Four new packages have been added to FreeBSD ports collection:

  • textproc/xml_ez_out
  • graphics/generic_image_decoder
  • misc/ini_files_manager
  • misc/excel-writer

Three of those are the works of Gautier de Montmollin, and they have been converted into static libraries with dedicated gpr files in the standard GNAT location.

Posted Sun Mar 23 19:27:34 2014

Ever since the Ada Framework on the FreeBSD Ports Collection was formed, the heart of it has been GNAT based on FSF GCC 4.7.x. This was starting to show limitations due to its partial Ada 2012 implementation, and this consequently limited s/w to earlier versions.

While GCC 4.9 has not been released, the Ada portion of it is pretty stable and it easily passes on tests on ACATS and GNAT.DejaGNU suites. New bootstraps were requires since GCC now requires C++ to build, so fully static (including GNAT tools) bootstrap were creates for i386 and amd64 architectures on both FreeBSD and DragonFly.

After the compiler port (lang/gcc-aux) was updated, the following ports were immediately upgraded: ASIS to version 2013, GPRBuild to version 2013, PolyOrb to version 2013, and OpenToken 5.0a was added (it requires at least FSF GNAT 4.8 to build). Except for GNATDroid which is still based on FSF GNAT 4.7 for the moment, all Ada ports on FreeBSD use the latest FSF Ada compiler.

In other news, the AdaSockets port was resurrected a couple of weeks ago and another network library, ANet, was brought in and it handles IPv6 as well as IPv4.

Posted Sat Mar 15 11:11:05 2014

The Spark/Ada-based Ironsides DNS server just arrived to FreeBSD ports. I believe it is currently unavailable on all other platforms. Ironsides has the potential to be a showcase for Ada so I'm glad to give it exposure and chance to be used on a great server platform. From it's website:

IRONSIDES is an authoritative DNS server that is provably invulnerable to many of the problems that plague other servers. It achieves this property through the use of formal methods in its design, in particular the language Ada and the SPARK formal methods tool set. Code validated in this way is provably exception-free, contains no data flow errors, and terminates only in the ways that its programmers explicitly say that it can. These are very desirable properties from a computer security perspective.

IRONSIDES is not a complete implementation of DNS. In particular, it does not support zone transfers or recursive queries. It does, however, support a sufficient number of DNS records to be useful as an authoritative DNS server for an enterprise.

Posted Mon Feb 17 06:10:56 2014

FreeBSD has PLplot, cross-platform software package for creating scientific plots, at the latest stable version 5.10.0 (as of today). What it did not have is the option to build the Ada bindings although most other languages were available as an option. Rather than update the currently unmaintained PLplot port, I created a new port at math/plplot-ada to build the Ada bindings separately.

In separate news, the Ada bindings to ncurses were completely revamped. Previously the port didn't actually build the library. Now it does and it should work as expected. The port is located at devel/adacurses.

Posted Sun Feb 16 16:05:15 2014

There was a port in FreeBSD called "devel/adabooch" which installed the 2003 version of the Ada95 Booch components. There was no building done, only the source files were installed. Ada95 Booch is actually well-maintained at SourceForge by Simon Wright and Martin Krischik. The latest version came out in March 2013.

FreeBSD now builds this version, including a full library and standard .gpr support, and should be in great shape now.

Posted Sat Feb 15 12:14:45 2014

FreeBSD ports continue to be updated. Yesterday "devel/sdl_gnat" port was added. This is the re-packaging of the thin bindings to SDL that arrived in GNAT GPL 2013, and as such they are also licensed with the full GPLv3. As a result, the port "devel/adasdl" will be removed in 6 weeks for several reasons, including that it does not build on amd64/x86-64.

A current list of Ada ports in FreeBSD is as follows (R.U. = Recently Updated):

Port Version R.U.?
archivers/zip-ada 46 yes
devel/adasdl 20010504 dying
devel/afay 041111
devel/ahven 2.4 yes
devel/florist-gpl 2013
devel/gnatpython 20140205 yes
devel/gprbuild 2012
devel/gps 5.2.1
devel/matreshka 0.6.0 yes
devel/sdl_gnat 2013 new!
lang/adacontrol 1.15r5
lang/asis 2011
lang/gcc-aux 4.7.3 (20130411)
lang/gnat-aux 4.6.4 (20130412)
lang/gnat_util 20130411
lang/gnatdroid-armv5 20130413 yes-4.7
lang/gnatdroid-armv7 20130413 yes-4.7
lang/gnatdroid-binutils 2.24 yes
lang/gnatdroid-sysroot 2.3
net/polyorb 2.9.0 (2011)
security/libsparkcrypto 0.1.1
textproc/adabrowse 4.0.3
textproc/py-sphinxcontrib-adadomain 0.1
textproc/words 1.97F
textproc/xmlada 4.4.0
www/aws 3.1.0.0 (w)
www/aws-demos 3.1.0.0 (w)
x11-toolkits/gtkada 2.24.4
x11-toolkits/qtada 3.2.0.0 (2012/07/08)

Of note:

  • GnatDroid is now based on gcc-4.7, but it still has the Android 2.3 API. It may be time to update the API to 4.4.
  • Matreshka lost the FireBird SQL driver due to code incompatible with GCC 4.7. Either a patch or upgrade in GCC will fix
  • There are additional ports but they are not marked with needing Ada to build. Frankly they may not work. Slowly these will be identified, and then fixed or removed
  • DragonFly BSD uses FreeBSD ports too, so whatever is available on FreeBSD is also available on DragonFly
Posted Sat Feb 15 03:22:46 2014
Last edited Fri May 24 16:28:01 2013
© 2010 John Marino | design elements by styleshout | artwork by Arturo Aguirre