#19795: GAP3 does not have IsIdenticalObject
-------------------------------------+-------------------------------------
       Reporter:  vbraun             |        Owner:
           Type:  defect             |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-7.0
      Component:  packages:          |   Resolution:
  standard                           |    Merged in:
       Keywords:                     |    Reviewers:
        Authors:  Travis Scrimshaw,  |  Work issues:
  Janoš Vidali                       |       Commit:
Report Upstream:  N/A                |  8ff1fe8c5e9a3c1a3eaff48c4ef6b38333d5a82d
         Branch:                     |     Stopgaps:
  public/interfaces/fix_gap3-19795   |
   Dependencies:                     |
-------------------------------------+-------------------------------------

Comment (by aschilling):

 Replying to [comment:4 tscrim]:
 > Replying to [comment:3 jaanos]:
 > > > - a subclass of the GAP interpreter for backwards compatibility with
 GAP3 which just has the one difference in `function_call()`,
 > >
 > > There already is a separate class for GAP3 which inherits from
 `Gap_generic`.
 >
 > Good; let us use that.
 >
 > > The cleanest solution IMO would be to have a method
 `_identical_function` in `Gap_generic` (parallel to `_equality_symbol`
 etc.), say:
 > > {{{
 > > #!python
 > > def _identical_function(self):
 > >     return "IsIdenticalObj"
 > > }}}
 > > and then have it overridden in `Gap3`.
 >
 > I think it should be a class-level attribute instead of a method because
 it speed cost and a method is IMO somewhat overkill (because no work is
 done).
 >
 > Anne, can you check to see if this works?
 > ----
 > New commits:
 >
 
||[http://git.sagemath.org/sage.git/commit/?id=8ff1fe8c5e9a3c1a3eaff48c4ef6b38333d5a82d
 8ff1fe8]||{{{Adding an identical function class attribute.}}}||

 With this branch applied, I still get an error
 {{{
 sage: gap=Gap3('/Applications/gap3r4p4/bin/gap')
 sage: gap.RequirePackage('"specht"')
 ---------------------------------------------------------------------------
 RuntimeError                              Traceback (most recent call
 last)
 <ipython-input-2-c539883f0214> in <module>()
 ----> 1 gap.RequirePackage('"specht"')

 /Applications/sage/local/lib/python2.7/site-
 packages/sage/interfaces/interface.pyc in __call__(self, *args, **kwds)
     605
     606     def __call__(self, *args, **kwds):
 --> 607         return self._parent.function_call(self._name, list(args),
 kwds)
     608
     609     def _sage_doc_(self):

 /Applications/sage/local/lib/python2.7/site-
 packages/sage/interfaces/gap.pyc in function_call(self, function, args,
 kwds)
     920             self.eval(marker)
     921             res = self.eval(cmd)
 --> 922         if self.eval(self._identical_function +
 '(last,__SAGE_LAST__)') != 'true':
     923             return self.new('last2;')
     924         else:

 /Applications/sage/local/lib/python2.7/site-
 packages/sage/interfaces/gap.pyc in eval(self, x, newlines, strip,
 split_lines, **kwds)
     568             if not input_line.endswith(';'):
     569                 input_line += ';'
 --> 570         result = Expect.eval(self, input_line, **kwds)
     571         if not newlines:
     572             result = result.replace("\\\n","")

 /Applications/sage/local/lib/python2.7/site-
 packages/sage/interfaces/expect.pyc in eval(self, code, strip,
 synchronize, locals, allow_use_file, split_lines, **kwds)
    1237                 elif split_lines:
    1238                     return '\n'.join([self._eval_line(L,
 allow_use_file=allow_use_file, **kwds)
 -> 1239                                         for L in code.split('\n')
 if L != ''])
    1240                 else:
    1241                     return self._eval_line(code,
 allow_use_file=allow_use_file, **kwds)

 /Applications/sage/local/lib/python2.7/site-
 packages/sage/interfaces/gap.pyc in _eval_line(self, line, allow_use_file,
 wait_for_prompt, restart_if_needed)
     766                     return ''
     767             else:
 --> 768                 raise RuntimeError(message)
     769
     770         except KeyboardInterrupt:

 RuntimeError: Gap3 produced error output
 Error, Variable: 'IsIdenticalObj' must have a value

    executing IsIdenticalObj(last,__SAGE_LAST__);
 }}}

 I will be traveling for at least 15 hours now and won't have any internet
 on the plane ....

--
Ticket URL: <http://trac.sagemath.org/ticket/19795#comment:5>
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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to