Dear sage-devel,

can you please point me to the place in the gap interface code where
errors are caught?

Namely, it seems to me that it is forgotten to quit GAP's break loop
before continuing.

Example:
  sage: def bugtrigger(n):
  ....:     a = gap(1)
  ....:     for i in range(n):
  ....:         try:
  ....:             b = gap.eval('Name(%s)'%a.name())
  ....:             a += 1
  ....:         except Exception, msg:
  ....:             if 'recursion depth' in str(msg):
  ....:                 return i,msg
  ....:
  sage: bugtrigger(10000)
  (4998,
   RuntimeError('Gap produced error output\nrecursion depth trap
(5000)\n\n\n   executing Name($sage1);',))

Explanation:
"Name" is not defined for a, so, an error occurs, that we catch and
continue. If this is done 4998 times then we have 4998 break loops
inside the main loop, and then call "Name(%s)"%a.name()  -- this is a
total of 5000 nested loops (main loop, 4998 break loops, function
call).

Probably I will be able to find the place in the code myself, but it
might simplify the bug hunt if you can give me a pointer.

The problem is tracked at http://trac.sagemath.org/sage_trac/ticket/7001

Cheers,
Simon

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to