GtkAda contributions v2.9

Dmitry Kazakov has released version 2.9 of his and Maxim Reznik’s GtkAda Contributions. As the name implies, this is a contribution to GtkAda. The packages deal with:

  • Tasking support
  • Capturing resources of a widget
  • Embeddable images
  • Simplified means to create lists of strings
  • Capturing asynchronous process standard I/O by Ada tasks and by text buffers

And much more. This latest release fix the following issues:

  • Progress indication added to Gtk_Abstract_Directory_Record
  • Style_Get added to Gtk.Widget.Styles returning GValue by name
  • RGB convenience function was added to Gtk.Missed
  • Gtk.Generic_Enum_Combo_Box provides combo box widget created from an enumeration type (contributed by Oliver Kellogg)
  • The documentation links to the AdaCore on-line GtkAda Reference Manual were fixed because the old reference manual is no longer available

You can read the full release announcement here.

Ada_XSLT – XSL Transformation With Ada

From the hands of Reznik Maxim we get a nice little binding to libxslt and Sablotron, that enables us to do XSL transformations with Ada.


I’ve tried it, and it worked out of the box. No complicated ‘make’ files, no weird setup. Simply:

gnatmake test_xslt.adb

There are a lot of small examples in the package, so if you’ve been thinking about doing some XSL in Ada, this just might be what the doctor ordered.

This was spotted on the increasingly popular Ada subreddit.

AdaGOOP – Ada Generator of Object-Oriented Parsers

You gotta love that name: AdaGOOP.

AdaGOOP 2005 is an Ada 2005 automatic parser generator built on top of the SCATC versions of aflex and ayacc. As SableCC does, AdaGOOP automatically generates code to build a parse tree, and a traversal of the parse tree using the visitor pattern.

From looking at the examples on the website, it seems to be fairly “easy” to use, though I must admit there are some parts of the code that I simply cannot decipher. I need to upgrade my Ada-foo.

This little Ada gem came to my attention via the Ada sub-reddit.

New GLOBE_3D release


It turns out that this release is _not_ new. But it’s still a cool piece of software, so go check it out anyway.


Or as Gautier calls it:

…the most portable 3D engine in the universe.

Globe_3D is a free, open-source, real-time 3D Engine written in Ada, based on OpenGL. It features:

  • unconditionally portable sources (one set of sources for all platforms)
  • real-time rendering; fast with a 3D hardware-accelerated graphics card
  • collision detection
  • screenshots (.bmp) and video captures (.avi)
  • vectorized geometry support
  • ..and more

Globe_3D is available for all major platforms.

Ada 2005 Math Extensions 20101223

I’m a bit slow these days, but I did spot that Simon J. Wright announced a new release of his Math Extensions package, bringing it up to version 20101223.

The Ada 2005 standard defines real and complex matrix and vector operations. Not every possible operation is supported, so for example only symmetric or hermitian matrices can be solved. This project provides extensions to the Standard for GNAT.

Changes in this release include:

  • The package is renamed to Ada_Numerics.Generic_Arrays.
  • An additional overloaded procedure Eigensystem returns the generalized eigenvalues and eigenvectors of a pair of non-symmetric real matrices. NB, this is only supported for unconstrained Float and Long_Float at this time.

You can read the full release announcement here.

Ada Memcached client

Yesterday R. Tyler Croy released an early version of his Ada powered Memcached client.

It’s not yet feature complete, but it is getting there.

In Croy’s own words:

Right now it has basic functionality of being able to “get” a key, “set” a value, “delete” a value and increment/decrement values. There’s still a few functions unimplemented, but I think it’s in a usable state right now.

Memcached is a free and open source, high-performance, distributed memory object caching system.

You can read the full release announcement here.

Ada Bindings for ØMQ 2.1.0

Today Per Sandberg updated his ØMQ (zeromq) binding to reflect the 2.1.0 specs.

In case you don’t know what ØMQ is, here’s an explanation in hundred words:

ØMQ (ZeroMQ, 0MQ, zmq) looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry whole messages across various transports like in-process, inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fanout, pubsub, task distribution, and request-reply. It’s fast enough to be the fabric for clustered products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous message-processing tasks. It has a score of language APIs and runs on most operating systems. ØMQ is from iMatix and is LGPL open source.

You can read Per’s brief release announcement here.