diff --git a/pkgs/o/openarch.lua b/pkgs/o/openarch.lua new file mode 100644 index 0000000..fea031a --- /dev/null +++ b/pkgs/o/openarch.lua @@ -0,0 +1,56 @@ +-- openarch — the architecture-mechanism layer. +-- +-- Form A because mcpp looks for a package manifest at the package ROOT, and +-- Form B would leave it one level down inside the tarball's wrap directory. +-- +-- ⚠️ NO `deps`. This package needs nothing installed: it is C++ modules plus +-- per-architecture assembly, and which assembly is compiled follows the +-- resolved target through the manifest's own `cfg(arch = ...)` sections. +-- +-- ⚠️ 0.1.0 IS A PROBE, NOT A LAYER. One architecture and one of the two +-- primitives that decide whether the layer can exist. The gate — that a single +-- interface survives a second, genuinely different machine — has not been +-- passed and cannot be passed by one architecture. Listed so that the probe can +-- be consumed and reproduced, not because the layer is ready to be built upon. +package = { + spec = "1", + namespace = "mcpplibs", + name = "openarch", + description = "openarch: the architecture-mechanism layer — execution contexts, traps and address spaces, as one interface over several instruction sets", + licenses = {"Apache-2.0"}, + repo = "https://github.com/mcpplibs/openarch", + type = "package", + + xpm = { + linux = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openarch/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openarch/releases/download/0.1.0/openarch-0.1.0.tar.gz", + }, + sha256 = "9f1799c66eb5b96fe1cfe09c6d534d26b61fed14c985e9fa4ce788cd0ecb0e65", + }, + }, + macosx = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openarch/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openarch/releases/download/0.1.0/openarch-0.1.0.tar.gz", + }, + sha256 = "9f1799c66eb5b96fe1cfe09c6d534d26b61fed14c985e9fa4ce788cd0ecb0e65", + }, + }, + windows = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openarch/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openarch/releases/download/0.1.0/openarch-0.1.0.tar.gz", + }, + sha256 = "9f1799c66eb5b96fe1cfe09c6d534d26b61fed14c985e9fa4ce788cd0ecb0e65", + }, + }, + }, + + -- The package's own manifest, inside the tarball's wrap directory. + mcpp = "*/mcpp.toml", +} diff --git a/pkgs/s/std-freestanding-nolibc.lua b/pkgs/s/std-freestanding-nolibc.lua index c42c214..32efb08 100644 --- a/pkgs/s/std-freestanding-nolibc.lua +++ b/pkgs/s/std-freestanding-nolibc.lua @@ -9,6 +9,16 @@ -- Four of the five are an obligation rather than a convenience: a freestanding -- implementation provides memcpy, memmove, memset and memcmp because the -- compiler lowers structure assignment and array initialisation onto them. +-- +-- ⚠️ 0.1.1 corrects a claim, not code. 0.1.0 predicted that using this package +-- alongside a C library would fail with a duplicate definition. Measured: it +-- does not. A C library is an ARCHIVE, and an archive member is pulled only +-- while the symbol is still undefined, so this package's object files define +-- `memcpy` first and the C library's member is never pulled. The build +-- succeeds, silently substituting byte-at-a-time implementations for the C +-- library's optimised ones — which is worse than the error that was predicted. +-- 0.1.0 stays listed because a published version is one somebody may have +-- pinned. package = { spec = "1", namespace = "mcpplibs", @@ -27,6 +37,13 @@ package = { }, sha256 = "280ffe0180e0bd19ef94d4655c564507c4799e5c72ac7624d58722cb8aac363a", }, + ["0.1.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-nolibc/archive/refs/tags/0.1.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-nolibc/releases/download/0.1.1/std-freestanding-nolibc-0.1.1.tar.gz", + }, + sha256 = "8999ec9db31699569e14a9c5f0fa24f4736961b1d8aec143c4d0cc7e5a978ec0", + }, }, macosx = { ["0.1.0"] = { @@ -36,6 +53,13 @@ package = { }, sha256 = "280ffe0180e0bd19ef94d4655c564507c4799e5c72ac7624d58722cb8aac363a", }, + ["0.1.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-nolibc/archive/refs/tags/0.1.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-nolibc/releases/download/0.1.1/std-freestanding-nolibc-0.1.1.tar.gz", + }, + sha256 = "8999ec9db31699569e14a9c5f0fa24f4736961b1d8aec143c4d0cc7e5a978ec0", + }, }, windows = { ["0.1.0"] = { @@ -45,6 +69,13 @@ package = { }, sha256 = "280ffe0180e0bd19ef94d4655c564507c4799e5c72ac7624d58722cb8aac363a", }, + ["0.1.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-nolibc/archive/refs/tags/0.1.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-nolibc/releases/download/0.1.1/std-freestanding-nolibc-0.1.1.tar.gz", + }, + sha256 = "8999ec9db31699569e14a9c5f0fa24f4736961b1d8aec143c4d0cc7e5a978ec0", + }, }, },