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 116,887 of 117,927   
   sjack to All   
   Toad User abort with cut: ... -cut   
   17 Oct 24 15:55:17   
   
   From: sjack@dontemail.me   
      
   Toad doesn't have CATCH/THROW but FigForth provides user abort (ABORT) .   
   Have BacForth type words in RTC vocabulary. Using BACK...TREK and   
   CUT: ... -CUT made SNAPSHOT error handler to show stacks and return   
   to cleanup code marked by CUT: . Not nearly as capable and slick as   
   CATCH/THROW but adequate for my light-weight applications.   
      
   Have CATCH/THROW in Frog but Toad is all about making full use of   
   FigForth facilities (use of abundant vocabularies has been very   
   entertaining, ain't KISS.)   
      
                              User abort with cut: ... -cut   
      
      
      
   Some code   
      
   -- SNAPSHOT   
   -- User abort action   
   -- dump data stack and top of return stack   
   -- (return stack top holds the address of the word where the   
   -- fault was detected. )   
   -- Process each cut: cleanup location   
   : SNAPSHOT   
     RTC   
     BEGIN   
     -CUT   
     cr ." --- (!) User abort: "   
     cr ." Data stack: " s? xx   
     cr ." Return    : " r .   
     cr ." --."   
     cr   
     LDEPTH 0= UNTIL   
     cr ;   
      
   -- YO   
   -- Display some items of interest   
   : YO   
   rtc   
   cr ." L-stack depth: " ldepth .   
   cr ." LP           : " lp@ . tab lp@ @ .   
   +voc   
   cr ." (ABORT)      : "   ' (ABORT) @ CELL+ NFA ID.   
   cr ." UABORT       : " dfa' uabort @ CELL+ NFA ID.   
   cr ." FDIID        : " fdiid .   \ file id, zero after cleanup   
   cr   
      
      
      
   Success example   
      
   "pad/txt" svdir sv!             \ assign input path prefix   
   ' snapshot is uabort            \ assign user abort   
   -uabort                         \ enable user abort   
   -pause                          \ allow pausing   
   fviews -p rubyatXLIX rubyatLI;  \ view two files with pause option   
      
   pad/txt/rubyatLI:   
      
    LI.   
    The Moving Finger writes; and, having writ,   
    Moves on: nor all thy Piety nor Wit   
    Shall lure it back to cancel half a Line,   
    Nor all thy Tears wash out a Word of it.   
      
   -more-   
      
   pad/txt/rubyatXLIX:   
      
    XLIX.   
    Tis all a Chequer-board of Nights and Days,   
    Where Destiny with Men for Pieces plays:   
    Hither and thither moves, and mates, and slays,   
    And one by one back in the Closet lays.   
   +uabort                         \ disable user abort   
   yo                              \ look at items of interest   
   L-stack depth: 0   
   LP           : 134566380 	-1   
   (ABORT)      : ABORT   
   UABORT       : SNAPSHOT   
   FDIID        : 0   
      
   ..CURRENT and CONTEXT are WRK    BASE: 10   Latest: YO   
      
      
   Fail example   
      
   -uabort   
   fviews rubyatXLIX foo rubyatLI;  \ foo doesn't exit, should fail   
      
   pad/txt/rubyatLI:   
      
    LI.   
    The Moving Finger writes; and, having writ,   
    Moves on: nor all thy Piety nor Wit   
    Shall lure it back to cancel half a Line,   
    Nor all thy Tears wash out a Word of it.   
      
      
   pad/txt/foo:   
      
   --- (!) User abort:   
   Data stack: 134583709 10 134582004 -2 666   
   Return    : 134581372   
   --.   
      
   --- (!) User abort:   
   Data stack: empty   
   Return    : 134582140   
   --.   
      
   --- (!) FVIEWS abandon   
   +uabort   
   yo   
   L-stack depth: 0   
   LP           : 134566380 	-1   
   (ABORT)      : ABORT   
   UABORT       : SNAPSHOT   
   FDIID        : 0   
      
   ..CURRENT and CONTEXT are WRK    BASE: 10   Latest: YO   
      
      
   -fin-   
    OK   
      
   --   
   me   
      
   --- 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