From: dxforth@gmail.com   
      
   On 3/05/2025 3:25 pm, Anton Ertl wrote:   
   > dxf writes:   
   >> Technically both end an application distinguished only by the fact   
   >> QUIT lets you examine what was on the stack.   
   >   
   > If a Forth system implements 9.6.2.0670 ABORT (the version from the   
   > optional Exception extension wordset), the application can CATCH an   
   > ABORT and then continue. There is no way for the application to catch   
   > QUIT on any standard system.   
   >   
   >> For reasons known only to ANS (and maybe   
   >> Mitch Bradley) both were assigned exception codes and thus CATCHable.   
   >   
   > It's not clear what is the intention for throw code -56; Table 9.1   
   > just says "QUIT", but there is no redefinition of the word QUIT in a   
   > way similar to 9.6.2.0670 ABORT, so every system has to imlement   
   > 6.1.2050 QUIT, which does not THROW.   
   > ...   
      
   Checking the doc it says:   
      
    9.3.5 Possible actions on an ambiguous condition   
      
    A system choosing to execute THROW when detecting one of the ambiguous   
    conditions listed in table 9.3.6 shall use the throw code listed there.   
      
   So while CATCH and THROW are compulsory (EXCEPTION wordset), there is no   
   requirement to implement any of the codes listed in the table. Only if   
   the EXCEPTION EXT wordset is implemented must the codes for ABORT and   
   ABORT" be used. Thus a system may implement the following if it wishes:   
      
    : QUIT -56 THROW ;   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|