diff --git a/pkgs/r/riscv-virt-rt.lua b/pkgs/r/riscv-virt-rt.lua index d339d82..5442dab 100644 --- a/pkgs/r/riscv-virt-rt.lua +++ b/pkgs/r/riscv-virt-rt.lua @@ -52,6 +52,13 @@ package = { }, sha256 = "71fc43daa4903d4f3037c204bd2b3be9aea56371b123a4529cc8c0c8c9b7f525", }, + ["0.4.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/riscv-virt-rt/archive/refs/tags/0.4.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/riscv-virt-rt/releases/download/0.4.0/riscv-virt-rt-0.4.0.tar.gz", + }, + sha256 = "2eef43aefb00905236a72d49924129c379e9d085fafdc4dd5c868e8a52b0414e", + }, }, macosx = { deps = { "xim:qemu-riscv@9.2.4-1" }, @@ -76,6 +83,13 @@ package = { }, sha256 = "71fc43daa4903d4f3037c204bd2b3be9aea56371b123a4529cc8c0c8c9b7f525", }, + ["0.4.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/riscv-virt-rt/archive/refs/tags/0.4.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/riscv-virt-rt/releases/download/0.4.0/riscv-virt-rt-0.4.0.tar.gz", + }, + sha256 = "2eef43aefb00905236a72d49924129c379e9d085fafdc4dd5c868e8a52b0414e", + }, }, windows = { deps = { "xim:qemu-riscv@9.2.4-1" }, @@ -100,6 +114,13 @@ package = { }, sha256 = "71fc43daa4903d4f3037c204bd2b3be9aea56371b123a4529cc8c0c8c9b7f525", }, + ["0.4.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/riscv-virt-rt/archive/refs/tags/0.4.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/riscv-virt-rt/releases/download/0.4.0/riscv-virt-rt-0.4.0.tar.gz", + }, + sha256 = "2eef43aefb00905236a72d49924129c379e9d085fafdc4dd5c868e8a52b0414e", + }, }, }, diff --git a/pkgs/s/std-freestanding-alloc-kal.lua b/pkgs/s/std-freestanding-alloc-kal.lua new file mode 100644 index 0000000..bccf5d0 --- /dev/null +++ b/pkgs/s/std-freestanding-alloc-kal.lua @@ -0,0 +1,55 @@ +-- std-freestanding-alloc-kal — one of the allocator implementations the +-- freestanding subset can bind. +-- +-- 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`. The package depends on `openkal` for the C declarations it is +-- written against, and that is an mcpp dependency declared in its own +-- manifest — not an xim payload. Nothing here needs installing. +-- +-- The consumer does not name this package. `std-freestanding`'s `alloc-kal` +-- feature pulls it, because the feature both states the requirement and brings +-- an implementation; see that package's `[feature-deps]`. +package = { + spec = "1", + namespace = "mcpplibs", + name = "std-freestanding-alloc-kal", + description = "The replaceable allocation functions for the freestanding subset, forwarded to openkal", + licenses = {"Apache-2.0"}, + repo = "https://github.com/mcpplibs/std-freestanding-alloc-kal", + type = "package", + + xpm = { + linux = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-alloc-kal/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-alloc-kal/releases/download/0.1.0/std-freestanding-alloc-kal-0.1.0.tar.gz", + }, + sha256 = "6d3c746e5013655464fd47de54868e06c81a3563046d6bff58c9cb28e689e899", + }, + }, + macosx = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-alloc-kal/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-alloc-kal/releases/download/0.1.0/std-freestanding-alloc-kal-0.1.0.tar.gz", + }, + sha256 = "6d3c746e5013655464fd47de54868e06c81a3563046d6bff58c9cb28e689e899", + }, + }, + windows = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-alloc-kal/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-alloc-kal/releases/download/0.1.0/std-freestanding-alloc-kal-0.1.0.tar.gz", + }, + sha256 = "6d3c746e5013655464fd47de54868e06c81a3563046d6bff58c9cb28e689e899", + }, + }, + }, + + -- The package's own manifest, inside the tarball's wrap directory. + mcpp = "*/mcpp.toml", +} diff --git a/pkgs/s/std-freestanding-alloc-libc.lua b/pkgs/s/std-freestanding-alloc-libc.lua new file mode 100644 index 0000000..aead352 --- /dev/null +++ b/pkgs/s/std-freestanding-alloc-libc.lua @@ -0,0 +1,50 @@ +-- std-freestanding-alloc-libc — the sibling of std-freestanding-alloc-kal, +-- forwarding to the target's C library instead of to openkal. +-- +-- ⚠️ Exactly one of the two may be in a graph. Both provide the +-- `freestanding-allocator` capability, and `operator new` is a whole-program +-- singleton: the resolver reports two providers by name, which is the reason +-- the choice is made through a capability rather than by whichever definition +-- the linker happened to see first. +package = { + spec = "1", + namespace = "mcpplibs", + name = "std-freestanding-alloc-libc", + description = "The replaceable allocation functions for the freestanding subset, forwarded to the target's C library", + licenses = {"Apache-2.0"}, + repo = "https://github.com/mcpplibs/std-freestanding-alloc-libc", + type = "package", + + xpm = { + linux = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-alloc-libc/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-alloc-libc/releases/download/0.1.0/std-freestanding-alloc-libc-0.1.0.tar.gz", + }, + sha256 = "019d13c2363a0a3487f9e2664ef3f533724edb46deb9badf2ea21298e932505c", + }, + }, + macosx = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-alloc-libc/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-alloc-libc/releases/download/0.1.0/std-freestanding-alloc-libc-0.1.0.tar.gz", + }, + sha256 = "019d13c2363a0a3487f9e2664ef3f533724edb46deb9badf2ea21298e932505c", + }, + }, + windows = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-alloc-libc/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-alloc-libc/releases/download/0.1.0/std-freestanding-alloc-libc-0.1.0.tar.gz", + }, + sha256 = "019d13c2363a0a3487f9e2664ef3f533724edb46deb9badf2ea21298e932505c", + }, + }, + }, + + -- 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 new file mode 100644 index 0000000..c42c214 --- /dev/null +++ b/pkgs/s/std-freestanding-nolibc.lua @@ -0,0 +1,53 @@ +-- std-freestanding-nolibc — the five C functions a freestanding C++ +-- translation unit still reaches for, for targets that have declined one. +-- +-- ⚠️ FOR THE ZERO-LIBC TIER ONLY. mcpp contributes a dependency package's +-- object files to the consumer's link unconditionally, so a project whose +-- board package links `-lc` would get two definitions of `memcpy`. The +-- intended consumer sets `[target.].sysroot = ""`. +-- +-- 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. +package = { + spec = "1", + namespace = "mcpplibs", + name = "std-freestanding-nolibc", + description = "memcpy, memmove, memset, memcmp and strlen for targets with no C library", + licenses = {"Apache-2.0"}, + repo = "https://github.com/mcpplibs/std-freestanding-nolibc", + type = "package", + + xpm = { + linux = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-nolibc/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-nolibc/releases/download/0.1.0/std-freestanding-nolibc-0.1.0.tar.gz", + }, + sha256 = "280ffe0180e0bd19ef94d4655c564507c4799e5c72ac7624d58722cb8aac363a", + }, + }, + macosx = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-nolibc/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-nolibc/releases/download/0.1.0/std-freestanding-nolibc-0.1.0.tar.gz", + }, + sha256 = "280ffe0180e0bd19ef94d4655c564507c4799e5c72ac7624d58722cb8aac363a", + }, + }, + windows = { + ["0.1.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding-nolibc/archive/refs/tags/0.1.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding-nolibc/releases/download/0.1.0/std-freestanding-nolibc-0.1.0.tar.gz", + }, + sha256 = "280ffe0180e0bd19ef94d4655c564507c4799e5c72ac7624d58722cb8aac363a", + }, + }, + }, + + -- The package's own manifest, inside the tarball's wrap directory. + mcpp = "*/mcpp.toml", +} diff --git a/pkgs/s/std-freestanding.lua b/pkgs/s/std-freestanding.lua index dc96c0d..5c7adc6 100644 --- a/pkgs/s/std-freestanding.lua +++ b/pkgs/s/std-freestanding.lua @@ -30,6 +30,13 @@ package = { }, sha256 = "c0026e6aa85d207b3dd00c3f2fe2674174c2e25d86a162f64fe70742420efb00", }, + ["0.3.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding/archive/refs/tags/0.3.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding/releases/download/0.3.0/std-freestanding-0.3.0.tar.gz", + }, + sha256 = "04c02fc42d1fb608a831ff6a1c780a4c12901d8d1d680bd602cb4ff439eedf9a", + }, }, macosx = { ["0.2.0"] = { @@ -39,6 +46,13 @@ package = { }, sha256 = "c0026e6aa85d207b3dd00c3f2fe2674174c2e25d86a162f64fe70742420efb00", }, + ["0.3.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding/archive/refs/tags/0.3.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding/releases/download/0.3.0/std-freestanding-0.3.0.tar.gz", + }, + sha256 = "04c02fc42d1fb608a831ff6a1c780a4c12901d8d1d680bd602cb4ff439eedf9a", + }, }, windows = { ["0.2.0"] = { @@ -48,6 +62,13 @@ package = { }, sha256 = "c0026e6aa85d207b3dd00c3f2fe2674174c2e25d86a162f64fe70742420efb00", }, + ["0.3.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/std-freestanding/archive/refs/tags/0.3.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/std-freestanding/releases/download/0.3.0/std-freestanding-0.3.0.tar.gz", + }, + sha256 = "04c02fc42d1fb608a831ff6a1c780a4c12901d8d1d680bd602cb4ff439eedf9a", + }, }, },