2024-07-14 02:10:50 I use .: and .wipe to prevent that pollution. 2024-07-14 02:11:14 I code in an entirely normal way, but use .: instead of : for words I don't want long-term. Then when I'm done using them in "real" words, I call .wipe. 2024-07-14 02:12:36 I've done it two different ways - one time the temporary headers remained in the dictionary long term, but just got cut out of the linked list. The other time I actually used a temporary buffer for those headers and re-claimed that RAM when I .wipe'd. 2024-07-14 02:30:48 Lately I've mostly stopped worrying about hiding internal factors 2024-07-14 02:37:14 i couldn't do it. in fact, if i'm not writing c, i miss having header files where i get to advertise the public symbols in a nice organized way. i don't like headerless languages forcing me to look at implementation to find interfaces. 2024-07-14 02:45:16 I document the public interface separately from the actual implementation 2024-07-14 02:46:02 I do understand the appeal of headers for providing a quick reference to the public symbols & interfaces, but I've never found a comfortable way to work them into a Forth 2024-07-14 04:01:12 the nice thing about c headers is thst there is compile-time check to keep you honest (if you remember to include it in your implementation file). i guess with forth that matters less since there's no type checking anyway 2024-07-14 05:21:11 I've been thoroughly happy with the approach I described above. It feels natural to me. 2024-07-14 05:21:51 I kind of prefer the approach that recovers the temporarily used RAM, but it does kind of require you to have some kind of memory management that's not "customary" in Forth. 2024-07-14 05:22:34 And the other method, where the headers remain but are ignored, is a good bit easier to implement. 2024-07-14 10:14:34 "Pretty pictures, bootable floppy disks, and the first Canon Cat demo?" http://oldvcr.blogspot.com/2024/07/pretty-pictures-bootable-floppy-disks.html 2024-07-14 10:14:43 A long and detailed look at the Canon Cat