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-23 Perfect Available via ports
NetBSD i386 None 2011-03-25 Perfect Available via pkgsrc
NetBSD x86_64 None 2011-03-25 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
OpenIndiana i386 None 2011-06-27 Perfect bootstrap compiler
Android 4.4 ARM stack-checking 4.9.0:2014-04-06 Excellent Available via ports
Posted Sun Nov 14 13:41:39 2010

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

Once again the Ada language merited a large room at FOSDEM. On Febrary 1, a series of talks took place in the Ada Devroom, ending with a presentation about the DragonLace project and future plans.

All of presentations were video recorded, and the presentations have been uploaded to the AdaEurope-Belgium site. The DragonLace Presentation is available in PDF and ODP formats. It discusses the latest state of Ports and Pkgsrc support as well as some potential future work.

Posted Mon Feb 03 12:44:06 2014

There has been a fair amount of activity for Ada in the FreeBSD Ports collection. Two new ports have been added:

  1. libsparkcrypto - Cryptographic library implemented in SPARK security/libsparkcrypto
  2. matreshka - Ada framework for information systems development devel/matreshka

Some existing ports have been updated:

  1. xmlada was updated from version 4.2 to 4.4
  2. gtkada was updated from version 2.22 to 2.24.4
  3. Gnat Programming Studio was updated from version 5.0.1 to 5.2.1

More Ada ports will be coming soon!

Posted Tue Jul 02 17:46:34 2013

To fix Ada tasking in FreeBSD 9.0, you have to fix and rebuild the thread library.

Before you start, make sure you have the FreeBSD 9.0 source at /usr/src. If you didn't install it with FreeBSD, you can find src.txz on the install disk. Alternatively, you can download the 89MB file directly from FreeBSD Just extract it in the root directory as it starts with /usr.

  1. Obtain the patch from DragonLace
  2. Apply the patch to /usr/src/lib/libthr/thread/thr_setscheduleparam.c
  3. cd /usr/src/lib/libthr

  4. make depend

  5. make

  6. make install

Now Ada tasking should function correctly on FreeBSD 9.0. This has already been fixed for the upcoming FreeBSD 9.1.

Posted Thu Jul 26 04:32:09 2012
Last edited Fri May 24 16:28:01 2013
© 2010 John Marino | design elements by styleshout | artwork by Arturo Aguirre