commit 54bad5ff45ecd33fe462358ffae2956f13446b37
parent dfc32f0965c98d745b710f4df2a9d21c1a8e34d7
Author: Virgil Dupras <hsoft@hardcoded.net>
Date: Sat, 13 Aug 2022 09:14:34 -0400
Fix broken "words" word
Diffstat:
3 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/fs/lib/btrace.fs b/fs/lib/btrace.fs
@@ -1,5 +1,5 @@
?f<< lib/nfmt.fs
-: raddr>entry ( a -- w ) current begin 2dup < while preventry repeat nip ;
+: raddr>entry ( a -- w ) sysdict begin 2dup < while llnext repeat nip e>w ;
: .raddr ( a -- ) dup .x raddr>entry ?dup if spc> .word then ;
: _abort ( 'oldabort -- ) nl> begin rcnt while r> .raddr nl> repeat execute ;
: btrace$ chain abort _abort ;
diff --git a/fs/tests/kernel.fs b/fs/tests/kernel.fs
@@ -72,11 +72,6 @@ current .x
6 foo 209 #eq
20 foo 220 #eq
-\ preventry
-: bar ;
-: baz ;
-' baz preventry e>w ' bar #eq
-
\ linked lists
0 value ll
4 &+@ myfield
diff --git a/fs/xcomp/bootlo.fs b/fs/xcomp/bootlo.fs
@@ -137,14 +137,14 @@ alias noop [then]
: llcnt ( ll -- count ) A>r 0 >A begin ?dup while A+ llnext repeat A> r>A ;
\ Dictionary
--5 &+@ preventry
-9 &+@ emeta
-9 &+ 'emeta
: wordlen ( w -- len ) 1- c@ $3f and ;
: wordname[] ( w -- sa sl )
dup wordlen swap 9 - over - ( sl sa ) swap ;
: .word ( w -- ) wordname[] rtype ;
-: words ( -- ) current begin dup while dup .word spc> preventry repeat drop ;
+: words ( -- )
+ sysdict begin dup while dup e>w .word spc> llnext repeat drop ;
\ Entry metadata
4 &+@ emetatype