#12103: Use MeatAxe as an optional back end for dense matrices over `GF(p^n)`, p
odd, n>1, `p^n<255`
-------------------------------------+-------------------------------------
       Reporter:  SimonKing          |        Owner:  jason, was
           Type:  defect             |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-6.4
      Component:  packages:          |   Resolution:
  experimental                       |    Merged in:
       Keywords:  linear algebra,    |    Reviewers:
  MeatAxe                            |  Work issues:
        Authors:  Simon King         |       Commit:
Report Upstream:  None of the above  |  191477e697d5fb02c0e6bf7f8b80850e1092d4f6
  - read trac for reasoning.         |     Stopgaps:
         Branch:                     |
  u/SimonKing/meataxe                |
   Dependencies:  #19240             |
-------------------------------------+-------------------------------------

Comment (by SimonKing):

 Replying to [comment:121 jdemeyer]:
 > Replying to [comment:120 SimonKing]:
 > > Wouldn't we prevent meataxe from these clean-up operations (causing a
 memory leak on error) if we would raise sig_error()?
 > Yes.

 The question is if we care. But perhaps we should, since catching errors
 and coping with it is typical for Python, and that has caused problems in
 the past (I recall some problem with the Gap interface, because a tight
 loop occasionally catching errors eventually exceeded the allowed number
 of errors in Gap).

 Does meataxe care itself? That's unclear. I have seen instances of the
 cleaning-up-on-error, but I have seen other cases in which it does not
 clean up.

 > But since I don't know the specifics of the meataxe error handling
 system, I cannot comment further.

 I am not sure if one can call it a "system". Anyway. There is a function
 that defines the error handler to-be-used. The function `MtxError` creates
 an error record (containing information on file name and line number and
 error code) and calls the error handler with it.

 In sage.libs.gap.util, the error handler sets an exception and signals
 sig_error(). An alternative approach would be an error handler that just
 sets an exception. If the meataxe functions are wrapped with an error
 value (such as `cdef Matrix_t *MatInverse(Matrix_t M) except NULL`) then
 this error would be raised, wouldn't it?

 To me, it seems like a cleaner approach, as it allows meataxe to cope with
 the exception. Plus, we would see if meataxe really respects its own error
 values (otherwise we would see crashes in the wrapper) and could fix that.
 Meanwhile I have THREE patches that should be send upstream, and I
 wouldn't mind a fourth patch.

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