#10296: Singular interface wasting time by waiting for the prompt too often
-----------------------------------------------------------------------+----
    Reporter:  SimonKing                                               |        
 Owner:  was            
        Type:  enhancement                                             |        
Status:  needs_work     
    Priority:  major                                                   |     
Milestone:  sage-4.7.1     
   Component:  interfaces                                              |    
Resolution:                 
    Keywords:  Singular, _eval_line, synchronization, synchronisation  |   
Work_issues:                 
    Upstream:  N/A                                                     |      
Reviewer:  Martin Albrecht
      Author:  Simon King                                              |        
Merged:                 
Dependencies:                                                          |  
-----------------------------------------------------------------------+----

Comment(by fbissey):

 Replying to [comment:43 SimonKing]:
 > Replying to [comment:42 fbissey]:
 > > On OS X 10.5.8 with 4.7.1.alpha1 I get the following after applying
 the patch
 > > {{{
 > > sage -t -long "devel/sage/sage/interfaces/gap.py"
 > > **********************************************************************
 > > File
 "/Users/frb15/Desktop/sage-4.7.1.alpha1/devel/sage/sage/interfaces/gap.py",
 line 514:
 > >     sage: gap.interrupt(timeout=1)
 > > Expected:
 > >     True
 > > Got:
 > >     False
 > > **********************************************************************
 > > }}}
 >
 > That test is really annoying. I tried to make it more reliable by adding
 the timeout parameter, but apparently it does not work like that.
 >
 > However, the main point is that without the patch, we had
 > {{{
 > sage: cutoff = gap._eval_using_file_cutoff
 > sage: gap._eval_using_file_cutoff = 4
 > sage: gap._eval_line('while(1=1) do i:=1;; od;', wait_for_prompt=False)
 > <Runs forever>
 > }}}
 > In other words, we would not even come to the line `gap.interrupt()`.
 >
 > I would not mind if the new test simply made sure that no error is
 raised. It does not matter, IMHO, whether we have the return value `True`
 or `False`. So, perhaps change it into
 > {{{
 > sage: gap.interrupt(timeout=1) is not None
 > True
 > }}}
 > or
 > {{{
 > sage: gap.interrupt(timeout=1)
 > ...
 > }}}
 >
 > ?
 The later one would imply that the output is random, but we would miss it
 if an error was raised so I guess the former would be better.
 {{{
 gap.interrupt(timeout=1) is not None
 }}}
 has my vote.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10296#comment:44>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to