2025-03-11 00:10:52 i expect it varies depending on how many pixels you're changing 2025-03-11 00:22:00 I've not seen any clear answers on that 2025-03-11 18:57:45 How can words like IF and BEGIN work in normal mode? 2025-03-11 18:57:53 Let's not get started on RECURSE :) 2025-03-11 20:06:10 user51: They would skip input, and return back to start of input, by modifying >IN 2025-03-11 20:06:16 That's how [IF] [THEN] work 2025-03-11 20:06:27 And how I write loops with [IF] [THEN] 2025-03-11 20:07:34 e.g. 10 DUP [IF] 1- . 4 >IN ! [THEN] 2025-03-11 20:08:31 However I think this is pointless because it's quite limited, inconvenient, it can be *very* slow on some systems, and it's trivial to write/forget a word for a loop 2025-03-11 20:18:57 I've been thinking about that; one idea is to compile to a temporary word and execute it when the token stack is balanced again 2025-03-11 20:20:39 not applicable to RECURSE, of course 2025-03-11 20:21:27 I don't understand why RECURSE had to be introduced though, is it really that common to use the previous definition of a word when compiling it? 2025-03-11 20:23:07 !gforth : a ." previous def;" ; : a ." new def;" a ." new again;" ; a 2025-03-11 20:23:27 gforth 2025-03-11 20:24:12 oops, I mean, gforth_eval_bot is gone, didn't notice 2025-03-11 20:26:18 to me it's just natural to use the name of the word being defined; the juppy does that 2025-03-11 21:15:47 I think it's quite common to extend existing words 2025-03-11 21:16:05 e.g. add overflow detection to a stack word 2025-03-11 21:17:33 It also works as a sort of private namespace mechanism, I suppose 2025-03-11 21:17:47 You just build up a definition by constantly redefining smaller pieces with the same name