[ANN] aDSA v1.5.2 Release

aDSA v1.5.2 — Ada’s Distributed Systems Annex over ZeroMQ: dynamic networks, IPv6, and a new home

aDSA is a Partition Communication Subsystem (PCS) for Ada’s Distributed
Systems Annex (Annex E), replacing the discontinued PolyORB/GLADE runtime.
The compiler side of the Annex lives on in FSF GNAT; aDSA supplies the
runtime the generated stubs call into (System.RPC,
System.Partition_Interface, System.Shared_Storage) plus pcs_gnatdist,
a gnatdist replacement that builds a distributed application from its
.cfg. Same-host deployments have a shared-memory sibling,
ipDSA.

New home

The project has moved to GitHub - charlie5/aDSA: ZeroMQ-backed Partition Communication Subsystem for Ada's Distributed Systems Annex (Annex E) — a runtime replacement for the deprecated PolyORB · GitHub (the old
Codeberg pages carry a moved notice). The Alire crate moved with it — the
published versions were re-verified byte-identical, and this release is the
first to use a plain git-tag origin.

What’s new in v1.5.2

Most of this release traces back to feedback from the project’s first
outside user — someone building test-equipment control over DHCP-discovered
instruments — so the theme is networks where addresses aren’t known in
advance
:

  • DSA_HOST=auto — a serving partition can derive the address it
    advertises from the machine’s route to the name server (a UDP-connect
    probe; no packet sent, works with the name server down). One unmodified
    launch script then works on any host. Opt-in; explicit DSA_HOST always
    wins; NAT/container topologies still want an explicit address.
  • IPv6DSA_IPV6=1 enables dual-stack sockets on every channel.
    Bracket literal v6 addresses in endpoints
    (DSA_NAME_SERVER=tcp://[fd00::7]:5700); set it on every process of a
    deployment.
  • The classic cross-host mistake now diagnoses itself. Forgetting
    DSA_HOST on a serving partition used to mean a silent hang on the first
    remote call. The name server now prints a WARNING at registration time,
    naming the fix.
  • DSA_HOST documentation rewritten — what the variable actually is
    (“the address at which I can be reached”), a per-process table of who
    needs it (the name server doesn’t), and troubleshooting entries keyed to
    the observable log signatures.
  • Examples reorganized — all 40 examples in category sub-folders
    (corpus, basics, racw-ras, shared-passive, robustness, concurrency,
    building, cross-host, gnat-bug), indexed by examples/README.md.

The new features are verified on Linux, FreeBSD and Windows, including true
two-machine deployments over both IPv4 and IPv6; the release gate (the
unmodified PolyORB examples/dsa corpus, both build paths) is green on
Linux x86_64, Windows 11, FreeBSD 15.1 and 32-bit ARM. The Alire index CI
additionally built this release on macOS (ARM and Intel).

Getting it

alr install adsa      # tools onto your PATH (v1.5.2, from the community index)
alr get adsa          # or: a local workspace to poke around in
git clone --branch v1.5.2 https://github.com/charlie5/aDSA   # or: plain git

Start with docs/users-guide.md; examples/ holds runnable demos of every
feature. Feedback very welcome — both waves of it so far have directly
shaped releases.