safety commit
This commit is contained in:
+12
-14
@@ -1,5 +1,5 @@
|
||||
# Capsule Block Manifest — Auto-generated
|
||||
<!-- Generated by mkcapsule --manifest 2026-10-16T18:51:39Z -->
|
||||
<!-- Generated by mkcapsule --manifest 2026-10-17T02:58:45Z -->
|
||||
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
||||
<!-- Hand-written justifications and immutability notes live -->
|
||||
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
||||
@@ -29,9 +29,9 @@
|
||||
| `sdk.4th` | 5109, 5110, 5111, 5112, 5113, 5114, 5115 | `0x008fdbbb62c94a3a` | n/a |
|
||||
| `turtle.4th` | 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108 | `0x4d470418ca543365` | n/a |
|
||||
| `user-font-demo.4th` | 4200, 4201, 4202 | `0xce1fd7d1b581a56d` | n/a |
|
||||
| `v4:centre.4th` | 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108 | `0x7b60682500afa138` | n/a |
|
||||
| `v4:centre.4th` | 8100, 8101, 8102, 8104, 8105, 8106, 8107 | `0xccd1b28a101c78b2` | n/a |
|
||||
| `v4:forth79.4th` | 6000, 6001, 6002 | `0x4055641ee17d176b` | n/a |
|
||||
| `v4:hera.4th` | 8000, 8001 | `0xee06b95cae3e3bb4` | n/a |
|
||||
| `v4:hera.4th` | 8000, 8001 | `0x85300ad4e6e8b86b` | n/a |
|
||||
| `v4:starshipos.4th` | 7000, 7001 | `0xb74bfa51f8d4719a` | n/a |
|
||||
| `workload-0.4th` | 2200, 2201 | `0x93f86f60aeba8feb` | n/a |
|
||||
| `workload-1-lite.4th` | 5058, 5059 | `0x44a7a7e3176dcc8d` | n/a |
|
||||
@@ -370,17 +370,15 @@
|
||||
| 6002 | `v4:forth79.4th` | `0x4055641ee17d176b` | ok |
|
||||
| 7000 | `v4:starshipos.4th` | `0xb74bfa51f8d4719a` | ok |
|
||||
| 7001 | `v4:starshipos.4th` | `0xb74bfa51f8d4719a` | ok |
|
||||
| 8000 | `v4:hera.4th` | `0xee06b95cae3e3bb4` | ok |
|
||||
| 8001 | `v4:hera.4th` | `0xee06b95cae3e3bb4` | ok |
|
||||
| 8100 | `v4:centre.4th` | `0x7b60682500afa138` | ok |
|
||||
| 8101 | `v4:centre.4th` | `0x7b60682500afa138` | ok |
|
||||
| 8102 | `v4:centre.4th` | `0x7b60682500afa138` | ok |
|
||||
| 8103 | `v4:centre.4th` | `0x7b60682500afa138` | ok |
|
||||
| 8104 | `v4:centre.4th` | `0x7b60682500afa138` | ok |
|
||||
| 8105 | `v4:centre.4th` | `0x7b60682500afa138` | ok |
|
||||
| 8106 | `v4:centre.4th` | `0x7b60682500afa138` | ok |
|
||||
| 8107 | `v4:centre.4th` | `0x7b60682500afa138` | ok |
|
||||
| 8108 | `v4:centre.4th` | `0x7b60682500afa138` | ok |
|
||||
| 8000 | `v4:hera.4th` | `0x85300ad4e6e8b86b` | ok |
|
||||
| 8001 | `v4:hera.4th` | `0x85300ad4e6e8b86b` | ok |
|
||||
| 8100 | `v4:centre.4th` | `0xccd1b28a101c78b2` | ok |
|
||||
| 8101 | `v4:centre.4th` | `0xccd1b28a101c78b2` | ok |
|
||||
| 8102 | `v4:centre.4th` | `0xccd1b28a101c78b2` | ok |
|
||||
| 8104 | `v4:centre.4th` | `0xccd1b28a101c78b2` | ok |
|
||||
| 8105 | `v4:centre.4th` | `0xccd1b28a101c78b2` | ok |
|
||||
| 8106 | `v4:centre.4th` | `0xccd1b28a101c78b2` | ok |
|
||||
| 8107 | `v4:centre.4th` | `0xccd1b28a101c78b2` | ok |
|
||||
|
||||
## Conflicts
|
||||
|
||||
|
||||
@@ -36,22 +36,6 @@ Block 8102
|
||||
: (LINES) ( baddr u -- ) CAPSULE-OPEN 0= IF (FAIL) THEN
|
||||
BEGIN PAD CAPSULE-LINE DUP 0< 0= WHILE PAD SWAP (TELL) REPEAT
|
||||
DROP ;
|
||||
Block 8103
|
||||
( The nodes this one has had born: for each its number and )
|
||||
( the port of this node it is on. Sixteen at most. )
|
||||
CREATE (KIDS) 32 ALLOT VARIABLE (KIDS#) 0 (KIDS#) !
|
||||
: (KID@) ( i -- addr ) 2 * (KIDS) + ;
|
||||
: (NOTE) ( number port -- )
|
||||
(KIDS#) @ 16 < IF
|
||||
(KIDS#) @ (KID@) SWAP OVER 1+ ! ! 1 (KIDS#) +!
|
||||
ELSE DROP DROP THEN ;
|
||||
: (WHICH) ( number -- i | -1 )
|
||||
-1 SWAP (KIDS#) @ DUP IF 0 DO
|
||||
DUP I (KID@) @ = IF SWAP DROP I SWAP THEN
|
||||
LOOP ELSE DROP THEN DROP ;
|
||||
: (UNLIST) ( i -- )
|
||||
(KIDS#) @ 1- DUP (KIDS#) ! (KID@) DUP @ SWAP 1+ @
|
||||
ROT (KID@) SWAP OVER 1+ ! ! ;
|
||||
Block 8104
|
||||
( Who it is, where its printing goes, which of its ports )
|
||||
( leads to everything it is not told of, and who is there. )
|
||||
@@ -75,7 +59,6 @@ Block 8105
|
||||
(PERS#) @ IF (PERS) @ (PERS#) @ (LINES) THEN
|
||||
S" (SEAL)" (TELL)
|
||||
(KID) @ (KID#) @ NODE-PARITY
|
||||
(KID#) @ (KIDP) @ (NOTE)
|
||||
(KID) @ ;
|
||||
Block 8106
|
||||
( number port childport -- place a node with no capsule )
|
||||
@@ -105,13 +88,3 @@ VARIABLE (P1) VARIABLE (P2) VARIABLE (P3) VARIABLE (P4)
|
||||
(P2) @ 2 (N) (X) (P4) @ 4 (N) (Y) (JOIN)
|
||||
(P4) @ 4 (N) (X) (P3) @ 3 (N) (Y) (JOIN)
|
||||
(P3) @ 3 (N) (X) (P1) @ 1 (N) (Y) (JOIN) ;
|
||||
Block 8108
|
||||
( n -- NODE n IS GONE: every node this one birthed is told, )
|
||||
( as from this one, and n leaves the list if it was there. )
|
||||
( The system calls this when it believes a GONE, through )
|
||||
( GONE-HOOK in quit.f18; Hera calls it from KILL. )
|
||||
: GONE-DOWN ( n -- )
|
||||
DUP (WHICH) DUP 0< IF DROP ELSE (UNLIST) THEN
|
||||
(KIDS#) @ DUP IF 0 DO DUP I (KID@) @ GONE LOOP
|
||||
ELSE DROP THEN DROP ;
|
||||
' GONE-DOWN (GONE-HOOK) !
|
||||
|
||||
@@ -9,11 +9,11 @@ Block 8000
|
||||
( n -- n flag a node there is, and not Hera herself )
|
||||
: (THERE?) DUP (ME) @ = 0= OVER NODE-PLACE 0< 0= AND ;
|
||||
: (NO-NODE) ( n -- ) DROP ." no such node" CR -1 NODE-ERROR ! ;
|
||||
( n -- KILL: node n is removed, whatever it was doing; this )
|
||||
( node forgets the way to it, and GONE goes down the graph. )
|
||||
( n -- KILL: node n is removed, whatever it was doing; the )
|
||||
( kernel tells every node it is gone, and Hera forgets it. )
|
||||
: KILL ( n -- )
|
||||
(THERE?) 0= IF ." KILL: " (NO-NODE) THEN
|
||||
DUP NODE-KILL DUP NO-ROUTE GONE-DOWN ;
|
||||
DUP NODE-KILL NO-ROUTE ;
|
||||
Block 8001
|
||||
: PAUSE ( n -- )
|
||||
(THERE?) 0= IF ." PAUSE: " (NO-NODE) THEN NODE-SLEEP ;
|
||||
|
||||
Reference in New Issue
Block a user