| Author | 
         | 
          
      
        
         
         jeffw_00 Super User 
          
 
  Joined: June 30 2007
 Online Status: Offline Posts: 935
          | 
        
         
          
           | Posted: June 01 2020 at 15:56 | IP Logged
		     | 
                    
            		  
           | 
           
          
           
  | 
           
          
Hi - So I discovered that it's possible to create a Jump command 
 that 
 looks like  
 
 if ({FOO}=1,3,0)
 
 Powerhome doesn't like the idea of Jump 0 - It blocks the queue 
 forever.  I learned my lesson, but perhaps for the benefit of future 
 dumb programmers -  in the next release you might want to add a 
 check that calls it out as some sort of syntax error?   :-)
 
 I suggest only because it feels like a very small change.  Just a 
 thought.
 /j
  Edited by jeffw_00 - June 01 2020 at 15:57
         | 
        
       
        | Back to Top | 
         
          
         | 
        
       
       
        |   | 
       
        
         
         gg102 Senior Member 
          
 
  Joined: January 29 2013 Location: United States
 Online Status: Offline Posts: 246
          | 
        
         
          
           | Posted: June 01 2020 at 23:54 | IP Logged
		     | 
                    
            		  
           | 
           
          
           
  | 
           
          
Hi,
 
 While I understand the problem with a jump 0, I would like to offer a word of caution.
 
 Sadly, I admit, I have written a couple of macros where I have used negative jumps.  
 for example: if (something <> something_else, 2, -10)
 
 I hate this type of programming, but I have run into a situation where for expediency, it was just easier.  
 
 My word of caution for Dave is that if doing a test for jump 0, or a jump -1 (depending on the internal 
 program counter), please don't change negative jumps greater than 1. 
 
 
 I'm probably wrong on this, but I thought that PH had some type of internal iteration counter, and if you 
 ended up in a tight loop, PH would jump out of the macro by itself. 
 
 
 
 
 
         | 
        
       
        | Back to Top | 
         
          
         | 
        
       
       
        |   | 
       
        
         
         dhoward Admin Group 
          
  
  Joined: June 29 2001 Location: United States
 Online Status: Offline Posts: 4447
          | 
        
         
          
           | Posted: June 02 2020 at 20:34 | IP Logged
		     | 
                    
            		  
           | 
           
          
           
  | 
           
          
Unfortunately, I don't really have a way where I could prevent infinite loops as the internal formula processing is handled by a built 
 in datawindow expression evaluator. I could attempt to analyze code before it is passed to the evaluator but there are so many ways to 
 create an infinite loop it would be impossible for me to catch them all.
 
 However, what has already been implemented is a "Macro Jump Limit" option in the PowerHome Explorer under PowerHome->Setup->Script. The 
 default is 0 (infinite) but you can set this value to something that is reasonable for you (be sure and restart or reinit PowerHome for 
 the change to take effect as this is in the "Setup" section of the Explorer). I tested with 200 and it timed out almost immediately and 
 would basically limit your macro to processing a maximum of 200 jumps or Goto Label statements.
 
 Another option you have at hand is if you do encounter an infinite loop situation, you can kill it by going to the File menu and 
 selecting "Clear EXE Queue" so you don't have to completely kill PowerHome to get out of the loop.
 
 Hope this helps,
 
 Dave.
 
         | 
        
       
        | Back to Top | 
         
          
          
         | 
        
       
       
        |   | 
       
        
         
         jeffw_00 Super User 
          
 
  Joined: June 30 2007
 Online Status: Offline Posts: 935
          | 
        
         
          
           | Posted: June 02 2020 at 20:56 | IP Logged
		     | 
                    
            		  
           | 
           
          
           
  | 
           
          
Hi Dave -  Good to hear from you!  "Macro Jump Limit' is just what I 
 need (as a "safety"), Thanks!
 
 I figured that, as usual, you had already provisioned for this!
 
 Powerhome RULES!
 
 /j
         | 
        
       
        | Back to Top | 
         
          
         | 
        
       
       
        |   |       
      | 
    
   
  |