#10295: Upgrading pexpect
-------------------------------------+-------------------------------------
       Reporter:  SimonKing          |        Owner:  was
           Type:  enhancement        |       Status:  new
       Priority:  major              |    Milestone:  sage-6.7
      Component:  interfaces         |   Resolution:
       Keywords:  pexpect upgrade    |    Merged in:
        Authors:                     |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/fbissey/pexpect3.3               |  a24eab3ce985874ab8445ed5e362bbeead76fd40
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by leif):

 Replying to [comment:44 fbissey]:
 > Replying to [comment:43 leif]:
 > > Of course continually polling without delay isn't nice either; it will
 significantly increase the CPU load.
 >
 > Will it?

 [http://en.wikipedia.org/wiki/Busy_waiting].

 I'll have to look closer at the code.  Haven't tested yet, but I guess
 it'll get worse the longer the net computation in the subprocess takes;
 the examples above only do short toy computations and don't take the
 overall CPU time into account.  (It may lead to effectively doubling
 `SAGE_NUM_THREADS` in ptestlong.)

 > After all unless there are quite a number of other changes, it is the
 current situation with 2.0, isn't it? Upgrading without patching would
 decrease the CPU load if I am not mistaken.

 Probably.  In fact, for me ptestlong with 3.3 (unpatched) went faster than
 with 2.0, although only slightly, under the same conditions (constant low
 load).  (But in both cases I had some process apparently still waiting for
 Singular after all other tests had already finished, so the wall time got
 messed up a bit.)

 But I'm ok with first upgrading here and removing the `sleep`, then
 checking what else we could tweak on another ticket.

 > Anyway, I like Jeroen's idea but we will need to upgrade pexpect in any
 case. I am all in favour of upgrading now with a patch and working on some
 cythonized elements for pexpect in a follow up ticket. We could remove the
 patch when we have something satisfactory in place.

 Subclassing, probably with individual changes for different interfaces or
 dynamically changing parameters is the way to go I think.

 While we could perhaps do some parts in Cython, leaving Python of course
 puts more burden of portablility on us, depending on what exactly we do.

--
Ticket URL: <http://trac.sagemath.org/ticket/10295#comment:45>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to