From bce4c998e339bdb050a0cfca7cd81522e1dfa45c Mon Sep 17 00:00:00 2001 From: sunrisepeak Date: Fri, 4 Sep 2026 13:47:52 +0800 Subject: [PATCH] =?UTF-8?q?openarch=200.8.1=20=E2=80=94=20the=20backend=20?= =?UTF-8?q?existed=20and=20the=20one-line=20usage=20could=20not=20reach=20?= =?UTF-8?q?it?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0.8.0 shipped `openarch-cortex-m`, declared its capabilities, and exercised it from an example that names it by PATH. The documented one-line usage is `openarch = ""`, which goes through the `backend-auto` feature — a table in the root manifest that was never extended. Measured from a fresh project against the published 0.8.0: error: no package provides capability 'openarch-backend' required by 'openarch' The package was in the tarball and unreachable through the only door a consumer is told about. ⭐ A new capability has more readers than the site that introduced it, and the file that BINDS it is not the file that DECLARES it. The example could not have caught this: it uses the path, which is exactly the door a consumer lacks. 0.8.1 binds all five M-profile arch spellings — `cfg(arch = ...)` compares exactly and there is no glob — and adds `backend-cortex-m` beside the other named features. CI builds five fresh projects, one per spelling, whose whole manifest is the dependency line, and requires each to compile the backend. A/B on the tree: 0 backend compile lines before, 14 after, on every one of the five. 0.8.0 stays listed because a published version is one someone may have pinned; the descriptor now says why nobody should pin it on Cortex-M. Tarball sha256 verified against the bytes and re-fetched from the CN mirror, byte-identical. Index lints pass. --- pkgs/o/openarch.lua | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/pkgs/o/openarch.lua b/pkgs/o/openarch.lua index f83f315..84e9cea 100644 --- a/pkgs/o/openarch.lua +++ b/pkgs/o/openarch.lua @@ -18,6 +18,14 @@ -- mechanism that is a table of 256 gates. One probe source runs on all three -- and prints byte-identical output. -- +-- ⚠️⚠️ 0.8.0 IS LISTED AND SHOULD NOT BE USED ON Cortex-M. It shipped the +-- backend, declared its capabilities, and never bound it to `backend-auto` — +-- the table that turns `openarch = ""` into a backend. A consumer on a +-- thumb target got `no package provides capability 'openarch-backend'`. 0.8.1 +-- binds all five M-profile arch spellings. The older version stays listed +-- because a version that has been published is a version someone may have +-- pinned; the note is here so nobody pins it on purpose. +-- -- ⭐⭐ 0.8.0 ADDS A FOURTH MACHINE AND THE FIRST *PARTIAL* BACKEND. -- -- ARM Cortex-M has no memory management unit and no per-CPU register, so @@ -48,6 +56,13 @@ package = { xpm = { linux = { + ["0.8.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openarch/archive/refs/tags/0.8.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/openarch/releases/download/0.8.1/openarch-0.8.1.tar.gz", + }, + sha256 = "d53e74f2ac9fbfa714db7496de91e45a85da54ccc7645449943eb34e55067a89", + }, ["0.8.0"] = { url = { GLOBAL = "https://github.com/mcpplibs/openarch/archive/refs/tags/0.8.0.tar.gz", @@ -113,6 +128,13 @@ package = { }, }, macosx = { + ["0.8.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openarch/archive/refs/tags/0.8.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/openarch/releases/download/0.8.1/openarch-0.8.1.tar.gz", + }, + sha256 = "d53e74f2ac9fbfa714db7496de91e45a85da54ccc7645449943eb34e55067a89", + }, ["0.8.0"] = { url = { GLOBAL = "https://github.com/mcpplibs/openarch/archive/refs/tags/0.8.0.tar.gz", @@ -178,6 +200,13 @@ package = { }, }, windows = { + ["0.8.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openarch/archive/refs/tags/0.8.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/openarch/releases/download/0.8.1/openarch-0.8.1.tar.gz", + }, + sha256 = "d53e74f2ac9fbfa714db7496de91e45a85da54ccc7645449943eb34e55067a89", + }, ["0.8.0"] = { url = { GLOBAL = "https://github.com/mcpplibs/openarch/archive/refs/tags/0.8.0.tar.gz",