| Did you know ... | Search Documentation: | 
| Packs (add-ons) for SWI-Prolog | 
| Title: | Each Call Redo Setup and Cleanup | 
|---|---|
| Rating: | Not rated. Create the first rating! | 
| Latest version: | 1.1.118 | 
| SHA1 sum: | fc61071b76343a40a750cb51f86e8c26c55054af | 
| Author: | Douglas R. Miles <logicmoo@gmail.com> | 
| Maintainer: | TeamSPoon https://github.com/TeamSPoon/ | 
| Packager: | TeamSPoon/LogicMoo https://github.com/TeamSPoon/ | 
| Home page: | https://github.com/TeamSPoon/each_call_cleanup | 
| Download URL: | https://github.com/TeamSPoon/each_call_cleanup/releases/*.zip | 
No reviews. Create the first review!.
Installation using SWI-Prolog 7.1 or later:
?- pack_install('https://github.com/TeamSPoon/each_call_cleanup.git').
Source code available and pull requests accepted at http://github.com/TeamSPoon/each_call_cleanup
Example usages:
 
 with_prolog_flag(Flag,Value,Goal):-
    current_prolog_flag(Flag,Was),
     each_call_cleanup(
         set_prolog_flag(Flag,Value),
          Goal,
           set_prolog_flag(Flag,Was)).
 
 
 % notrace/1 that is not like once/1
 quietly(Goal):-
    tracing ->
      each_call_cleanup(notrace,Goal,trace);
      Goal.
    
            
 
 % Trace non interactively
 rtrace(Goal):-
    ( tracing-> Undo=trace ; Undo = notrace ),
    '$leash'(OldL, OldL), '$visible'(OldV, OldV),
    each_call_cleanup(
         (notrace,visible(+all),leash(-all),leash(+exception),trace),
         Goal,
         (notrace,'$leash'(_, OldL),'$visible'(_, OldV),Undo)).
Document this pack!
Write tests
Untangle the 'pack' install deps (Moving predicates over here from logicmoo_base)
Dislike having tons of forks that are several commits behind the main git repo?
Be old school - Please ask to be added to TeamSPoon and Contribute directly !
Still, we wont stop you from doing it the Fork+PullRequest method
Copyright (c) 2017, TeamSPoon and Douglas Miles <logicmoo@gmail.com> All rights reserved.
Pack contains 5 files holding a total of 21.3K bytes.