From 3fef407efcd1a415c5664308cde03f1ba0b95a53 Mon Sep 17 00:00:00 2001 From: bQUARKz Date: Fri, 17 Apr 2026 17:56:37 +0100 Subject: [PATCH] implements PLN-0024 --- .../console/prometeu-hal/src/syscalls/tests.rs | 12 ++++++++++++ crates/tools/pbxgen-stress/src/lib.rs | 10 +++++----- test-cartridges/stress-console/program.pbx | Bin 942 -> 945 bytes 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/crates/console/prometeu-hal/src/syscalls/tests.rs b/crates/console/prometeu-hal/src/syscalls/tests.rs index 9594c17b..3129d813 100644 --- a/crates/console/prometeu-hal/src/syscalls/tests.rs +++ b/crates/console/prometeu-hal/src/syscalls/tests.rs @@ -63,6 +63,18 @@ fn resolver_rejects_unknown_identity() { } } +#[test] +fn resolver_rejects_removed_legacy_gfx_set_sprite_identity() { + assert!(resolve_syscall("gfx", "set_sprite", 1).is_none()); + + let requested = [SyscallIdentity { module: "gfx", name: "set_sprite", version: 1 }]; + let err = resolve_program_syscalls(&requested, caps::ALL).unwrap_err(); + assert_eq!( + err, + LoadError::UnknownSyscall { module: "gfx".into(), name: "set_sprite".into(), version: 1 } + ); +} + #[test] fn resolver_enforces_capabilities() { let requested = [SyscallIdentity { module: "gfx", name: "clear", version: 1 }]; diff --git a/crates/tools/pbxgen-stress/src/lib.rs b/crates/tools/pbxgen-stress/src/lib.rs index 79a42dfc..d8137e23 100644 --- a/crates/tools/pbxgen-stress/src/lib.rs +++ b/crates/tools/pbxgen-stress/src/lib.rs @@ -42,10 +42,10 @@ pub fn generate() -> Result<()> { ret_slots: 0, }, SyscallDecl { - module: "gfx".into(), - name: "set_sprite".into(), + module: "composer".into(), + name: "emit_sprite".into(), version: 1, - arg_slots: 10, + arg_slots: 9, ret_slots: 1, }, ]; @@ -124,9 +124,9 @@ fn heavy_load(rom: &mut Vec) { // --- clear screen --- rom.extend(asm("PUSH_I32 0\nHOSTCALL 0")); - // --- call status-first syscall path once per frame and drop status --- + // --- call composer-domain sprite emission path once per frame and drop status --- rom.extend(asm( - "PUSH_I32 0\nPUSH_I32 0\nPUSH_I32 0\nPUSH_I32 0\nPUSH_I32 0\nPUSH_I32 0\nPUSH_BOOL 0\nPUSH_BOOL 0\nPUSH_BOOL 0\nPUSH_I32 0\nHOSTCALL 4\nPOP_N 1", + "PUSH_I32 0\nPUSH_I32 0\nPUSH_I32 0\nPUSH_I32 0\nPUSH_I32 0\nPUSH_I32 0\nPUSH_BOOL 0\nPUSH_BOOL 0\nPUSH_I32 0\nHOSTCALL 4\nPOP_N 1", )); // --- draw 500 discs --- diff --git a/test-cartridges/stress-console/program.pbx b/test-cartridges/stress-console/program.pbx index 83b01e1922b659ed64b42e6d32f4ebc2b04ceb63..033fc6c94a313e9b9a947d2f48a59248a1829cba 100644 GIT binary patch delta 164 zcmZ3-zL9-`gK7>F0|PSy1A_#R5CPIGK&%5~3jk?WAhrRrODCpUGv-WOm^)dJQI9cc zvIFB;#)ioXjN+Ui9Y#R?R+IIZ;(6aOLi8~(Ffn|YJd4R&HV-J`093=kAkJU|BvpVk s2p9nMWK3pao+``1ker`ekYAiy#LbYJn^_WHTu_u*lFG=y$-u|}04Tp3^8f$< delta 158 zcmdnUzK(r@gK9n#0|PSy1A{b>5CPIGK&%gB3jk?WAhrjx^CzZSGv-fRm^+!9(U389 zvMu9T#^%YgjN+Ui9Y#R?wv)A);(0$ZLi8~(Ffn|eJe|o~wh$=d093=kAkJU|BvpVk m2p9nMWKaIjG*z6LAw8{vi=jBRB)+(yD6=G$k%5bWkpTdc+Zt^E