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,951 messages   

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

   Message 116,944 of 117,951   
   Ruvim to Anton Ertl   
   Re: bye with exit status   
   08 Nov 24 16:48:21   
   
   From: ruvim.pinka@gmail.com   
      
   On 2024-11-08 12:29, Anton Ertl wrote:   
   > mhx@iae.nl (mhx) writes:   
   >> Same as remarked by minforth: there is a exit-handler chain in   
   >> which the user can plug arbitrary routines.   
   >   
   > In Gforth BYE is a deferred word, with the intention that it can be   
   > extended with cleanup actions.   
   >   
   > The disadvantage of this approach in connection with the non-0 exit is   
   > that we probably also want to do the same cleanup in those cases.  The   
   > best way to deal with that is probably the "EXIT-CODE !" approach.   
      
   I think, this variable, if it is required, should be internal.   
      
   For example:   
      
      variable _system-exit-status  0 _system-exit-status !   
      
      : kernel-bye ( -- never )   
        ... \ other actions   
        _system-exit-status @ (bye)   
      ;   
      
      defer bye  ' kernel-bye is bye   
      
      : bye-with-status ( n -- never )   
        _system-exit-status ! bye   
      ;   
      
   Thus, the old interface is not changed. And `bye-with-status` also does   
   the same cleanup sequence (if any).   
      
      
      
   > Concerning the usual discussion about the name: I find that the system   
   > is left in the error case with an uncaught THROW in script-execution   
   > mode; in that case an exit code of 1 is returned by Gforth, so it's   
   > not sufficient for communicating more than a binary result to the   
   > calling script.  But I have not used non-binary exit codes for   
   > non-Forth programs, either, and I do quite a bit of shell scripting.   
      
   Does it mean that "bye" and "bye-failure" is enough?   
      
      
   >   
   > In any case, while we have (BYE), I don't use it in application   
   > programs.   
      
      
   As an example, when a script is used in Make, it is important to return   
   nonzero exit status on error.   
      
   Sometimes people ask about that, for example:   
      
      
      
   --   
   Ruvim   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

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


(c) 1994,  bbs@darkrealms.ca