home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.forth      Forth programmers eat a lot of Bratwurst      117,927 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 117,305 of 117,927   
   Hans Bezemer to dxf   
   Re: In C world they invented FORGET and    
   08 May 25 12:43:32   
   
   From: the.beez.speaks@gmail.com   
      
   On 08-05-2025 11:30, dxf wrote:   
   > On 8/05/2025 6:39 pm, LIT wrote:   
   >>> Aimless fiddlers should just switch to Forth.   
   >>   
   >> In next 20 years they'll figure out how to FORGET   
   >> a function.   
   >   
   > I can't remember the last time I forgot something.   
   Actually - I use it daily. Note that 4tH has no word sets and no   
   namespaces. Coming from C - I never felt I needed them. What I *did*   
   have was "static" - which allowed me to hide those functions which   
   weren't important for the API of that module.   
      
   So I added HIDE to 4tH, to clean up modules for that very purpose.   
   Usually, all non-public words are named like (NAME) - according to the   
   rules set in "Thinking Forth". Which already helps to avoid any   
   collisions, since even *if* they were previously used, they would be   
   hidden by now.   
      
   So its' not uncommon to see some - or even rather large - lists of HIDEs   
   at the end of a module. Note I don't have to do them by hand, this one   
   does it for me:   
   https://sourceforge.net/p/forth-4th/code/HEAD/tree/trunk/4th.src/makehide.4th   
      
   Other Forths had HIDE, so I borrowed it. There is no UNHIDE or   
   equivalent because 4tH can't. The thing is thrown out of the symbol   
   table completely on HIDE.   
      
   Also, the size of the symbol table is determined by (amongst others)   
   HIDE. Defining words expand the size of the symbol table, HIDE reduces   
   it. That's why you can't make HIDE act conditionally by [IF] and [THEN]   
   - since at that stage, the system is unable to evaluate such expressions.   
      
   Hans Bezemer   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca