AdaCore announced the embedded Ada programming competition “Make with Ada” earlier this week. I hope to see many interesting entries (and plan to do something myself as well).
The online registration for the annual Ada-Europe conference on reliable software technologies is open now.
The programme includes a tutorial on Ada 2012 contracts by Ada in Denmark member Jacob Sparre Andersen.
Note that there is a reduced rate if you sign up no later than Tuesday 17 May.
After a short discussion with Thomas Løcke about the subject, I think I’m in favour of having an Ada specific tool/repository because:
- Using the platform specific package manager is typically restricted to the system administrator.
- I fear that platform specific package managers have a too simplified view of dependencies, compared to what software developers attempt to put up with.
- There is some benefit in being able to use the same command to install an Ada source library, no matter which platform you are working on today.
The major challenges I see (which maybe aren’t all that big), are related to documenting and validating which libraries work with which other libraries.
Direct conflicts can be identified through conflicting compilation unit names.
Dependencies can be validated through building a library and running its internal regression test on each of the targeted development platforms. If the internal regression test passes, one can reasonable assume that the library works with (exactly) the selected versions of the libraries it depends on. Passing on one development platform should be enough to release, but all the development platforms the combination has passed on should be documented.
Please join the project, and do your bit to move it forward.
Basically the pattern is (in my version):
subtype Parent is Parent_Type_Package.Instance; type Instance is new Parent with private; subtype Class is Instance'Class; type Reference is access all Class; -- Optional, only if you really need access types
What do you think of it?
And do you prefer Emmanuel’s naming style or mine?
The schedule for the Ada Developers’ Room at FOSDEM has been published on the FOSDEM website. There will talks about programming drones in SPARK, parallel computing (in Ada of course), controlling a train model from a Raspberry Pi, etc.
The submission deadline for the Ada-Europe 2016 International Conference on Reliable Software Technologies has been extended to Sunday 24 January.
Please consider if you have some Ada experiences, which the rest of the Ada community could learn from or be inspired by. Experience report submissions don’t have to be more than a long (less than one page) abstract.
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;
'Unrestricted_Access makes the compiler accept the function, but is it safe?
(Debian/experimental also has GNAT-6.)
FOSDEM 2016 will host an Ada Developers Room. Make sure to arrange to come to Brussels in the last week of January 2016, if you want to meet up with other members of the European Open Source Ada community.
Traditionally the Ada DevRoom provides both introductory talks about Ada, highly technical presentations, and a chance to experience the Beaujolais effect.
The programme for the Ada DevRoom will be published on on the FOSDEM website once it is ready.