#8380: Implement an interface to GAP3
------------------------------+---------------------------------------------
   Reporter:  saliola         |       Owner:  Franco Saliola                    
      
       Type:  enhancement     |      Status:  needs_review                      
      
   Priority:  major           |   Milestone:  sage-4.4.2                        
      
  Component:  interfaces      |    Keywords:  gap3, chevie, specht, gap, 
sage-combinat
     Author:  Franco Saliola  |    Upstream:  N/A                               
      
   Reviewer:  Burcin Erocal   |      Merged:                                    
      
Work_issues:                  |  
------------------------------+---------------------------------------------
Changes (by saliola):

  * status:  needs_work => needs_review


Comment:

 I've uploaded my changes in a separate patch to ease the review. Apply the
 patches in this order:

  * attachment:gap3_interface_v4.3.3.patch
  * attachment:gap3_interface_patch2.patch


 Replying to [comment:11 burcin]:

 > Here is my review for the patch:
 >  * There is no doctest for the change in `sage/interfaces/expect.py`

 The problem here was that a variable name could be overwritten; before the
 patch:
 {{{
 sage: x = gap(3)
 sage: gap.clear(x.name())
 sage: gap.clear(x.name())
 sage: x = gap(3); x
 3
 sage: y = gap(4); y
 4
 sage: x # this should be 3!
 4
 }}}
 This is now corrected, and I added the above as a doctest.

 >  * The method `load_package()` in `sage/interfaces/gap.py` doesn't have
 a doctest. I understand that this is copied as is from the old version,
 but if there is any package that is included by default in the GAP4
 distribution (or one which we include in our package), we should add a
 test.

 Neither Sage nor Gap seem to distribute any packages (see the
 {{{$SAGE_ROOT/local/lib/gap-4.4.12/pkg}}} directory). I did, however,
 add a test that at least tests that it raises an appropriate exception.

 >  * In `sage/interfaces/gap3.py`
 >   * Is the bug in the pexpect interface mentioned around line 42
 reported on trac? Can you mention the ticket number in that comment. Is
 this specific to the GAP interface?

 Yes, it is #8471. I added the ticket number to the comment, and
 cross-referenced that ticket to this one.

 It is not specific to the GAP interface. It is an issue with any
 {{{Expect}}} instance. See #8471 for details.

 >   * does the GAP3 banner depend on the specific package installed?

 It shouldn't since the software is so old. Note that when the banners are
 printed in the documentation, it is only for illustration purposes. Those
 commands are not tested because each spawns a console (which would require
 user input to quit).

 >   * There are some doctests that depend on chevie,
 (`RequirePackage('"chevie"')` and `load_package("chevie")`), these should
 be optional.

 I've marked them as {{{#optional - gap3chevie}}} instead of just
 {{{#optional - gap3}}}.

 >   * The docstring for `GAP3Record.__getattr__` ends with " :: " then an
 empty line. There are many places where there is an empty line at the end
 of the docstring, or right after.

 Corrected.

 > The optional package for gap3 in comment:9 looks good in general. Maybe
 the fact that it's binary only can be made more obvious, for example by
 adding a `bin` to the package name.

 The discussion surrounding spkgs should be moved to #8906, which proposes
 a source gap3 spkg instead.

 > BTW, it's not possible to install the version of GAP3 downloaded from
 the main web site (http://www.gap-system.org/Gap3/Download3/download.html)
 easily. I suggest moving the link to Frank Luebeck's distribution to the
 first place, and putting this option last.

 Done. I listed ticket #8906 as the first option (it should be changed when
 that ticket is resolved).

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8380#comment:15>
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