summaryrefslogtreecommitdiffstats
path: root/Cargo.lock
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-08-01 23:44:41 +0200
committersalmonik <salmonik@tuta.io>2026-08-01 23:44:41 +0200
commitfffec0f04dfcc63bef39eb0441cfad7b584da484 (patch)
tree394dc1897e04d0aac400061494023d1d16a89dd2 /Cargo.lock
parentrsnix v0.5.2: fault diagnostics + real-hardware scroll-crash hardening (diff)
downloadrs-dos-fffec0f04dfcc63bef39eb0441cfad7b584da484.tar.gz
rs-dos-fffec0f04dfcc63bef39eb0441cfad7b584da484.zip
rsnix v0.5.3: fix real-hardware scroll wedge — per-word display push
The real-hardware crash (2 lines of white + freeze, no CPU exception even with the 0.5.2 fault dumps) pointed away from a fault and at a stall: the scroll's full-frame push used one 1.92 MB rep-movsb to the framebuffer. On QEMU the framebuffer is RAM, so it flies; on a real GPU the framebuffer is uncached MMIO and the CPU's fast-string burst path can stall forever — the shell wedges mid-instruction, the cursor task's own writes wedge too, no exception fires (MMIO writes don't fault), and the screen shows the torn partial push (the white bands). The boot-time clear() always worked on the same hardware and uses per-word volatile stores, so the scroll push now uses the identical pattern: shadow reads (cached RAM, cheap) + individually-posted display stores. Interruptible between stores, never a bulk burst, and functionally identical on QEMU (all 5 suites re-pass). Also converts the no-shadow fallback shift to the same per-word pattern. CONTEXT.md updated (scroll-cost note + versioning).
Diffstat (limited to 'Cargo.lock')
-rw-r--r--Cargo.lock6
1 files changed, 3 insertions, 3 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 942456c..65166d4 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4,7 +4,7 @@ version = 4
4 4
5[[package]] 5[[package]]
6name = "rsdos" 6name = "rsdos"
7version = "0.5.2" 7version = "0.5.3"
8dependencies = [ 8dependencies = [
9 "rsnix", 9 "rsnix",
10 "shell", 10 "shell",
@@ -19,11 +19,11 @@ dependencies = [
19 19
20[[package]] 20[[package]]
21name = "rsnix" 21name = "rsnix"
22version = "0.5.2" 22version = "0.5.3"
23 23
24[[package]] 24[[package]]
25name = "shell" 25name = "shell"
26version = "0.5.2" 26version = "0.5.3"
27dependencies = [ 27dependencies = [
28 "rsdosedit", 28 "rsdosedit",
29 "rsnix", 29 "rsnix",