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,306 of 117,927   
   Ron AARON to Hans Bezemer   
   Re: In C world they invented FORGET and    
   08 May 25 13:55:46   
   
   From: clf@8th-dev.com   
      
   On 08/05/2025 13:43, Hans Bezemer wrote:   
   > 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.   
      
   In fact, that's where I use 'forget' in 8th. When I "need" a library   
   file, it can have "private" words which go in a special namespace. At   
   the end of processing the library, I forget that namespace and so the   
   words are truly invisible outside of the library scope.   
      
   --- 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