Alire on macOS, revisited
This note covers some of the considerations that’ll apply when running Alire on macOS.
Read more »This note covers some of the considerations that’ll apply when running Alire on macOS.
Read more »This exercise was prompted by the need for Scripted Testing to be supported by – as far as possible – code generation. The need is for the public or interfacing view of a supporting part (domain) of a system to be able to log calls made to it and to provide values on calls to it, using a scripting mechanism.
Read more »This article discusses various issues rebuilding a demonstrator intended for the BBC micro:bit (version 1.3b) after an interval of several years.
Read more »Once you’ve downloaded Alire and begun the Getting Started tutorial, how do you go about actually writing Ada?
Read more »These are notes on building GCC 12.2.0 and GNAT tools for Apple silicon.
There were two main problems:
This note is about an issue encountered creating a very thin Ada binding to libusb (1.0.26).
Read more »This exploration came about because of trying to add GNAT Math Extensions to Alire.
Read more »This note is about configuring GCC on macOS so that your built compiler can be used independently of which Software Development Kit (SDK) is installed.
Read more »This is a note about building GNAT-LLVM on macOS.
Read more »This is a note about building SPARK (i.e. gnatprove) against an FSF GCC.
Read more »This note is about some difficulties using shared libraries (.dylibs) on macOS.
Read more »People are having much trouble with GtkAda on Big Sur, so I thought "why not try building Gtk?" - as here.
Unfortunately, it's just too complicated & runs into so many problems that I give up.
Read more »This is a note about preparing a pull request (PR) for a Github repository. As much as anything, it’s to stop me having to page back through my lab notebook to find out how I did it last time …
Read more »Recently, on the Gitter Ada Programming Language lobby, there have been discussions on cross-compiling for Cortex M micro-controllers, specifically the BBC micro:bit, using the Raspberry Pi.
TL;DR: it's not going to be easy, unfortunately. Maybe later (or earlier?) Raspbian releases will help.
Read more »This post is based on the README from the corresponding Github repository.
That repository attempts to cope with expected changes in Apple’s approach to software development kits, specifically where to find the system headers (you’d expect /usr/include).
Read more »This is a rather self-satisfied document, written in the mid-1990’s, which may still have some relevance.
While it is hard to make a silk purse out of a sow’s ear (to create good code from a bad design), it is all too easy to do the reverse.
The principle that clear, readable, understandable source text eases program evolution, adaptation, and maintenance is not dependent on the programming language in which the text is written. The purpose of this document is to indicate those language-independent techniques which can help you to produce source text with these qualities.
This note is about using Segger J-Link software to help debug code on a BBC micro:bit.
Read more »After you've installed Xcode (or, my preference, the Command Line Tools via xcode-select -install) so that you can install and use GNAT, you may expect to be able to compile C code too.
Mojave may surprise you with
$ gcc casing.c -o casing casing.c:1:10: fatal error: stdio.h: No such file or directory 1 | #include <stdio.h> | ^~~~~~~~~ compilation terminated.
The reason, according to this question and its answers, is that Apple's developer tools, in particular the clang compiler, know where to find the include files under /Library/Developer; GCC doesn't (I'm sure it could be made to, but ...) and so we have to add an extra step to install them in the normal place:
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / Password: installer: Package name is macOS_SDK_headers_for_macOS_10.14 installer: Installing at base path / installer: The install was successful.You may need to repeat this after macOS or Command Line Tools (or Xcode) updates.