Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions pkgs/o/openarch.lua
Original file line number Diff line number Diff line change
@@ -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",
}
31 changes: 31 additions & 0 deletions pkgs/s/std-freestanding-nolibc.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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"] = {
Expand All @@ -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"] = {
Expand All @@ -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",
},
},
},

Expand Down
Loading