Changes between Initial Version and Version 1 of Ticket #13447, comment 64


Ignore:
Timestamp:
09/19/12 20:34:00 (7 years ago)
Author:
nbruin
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #13447, comment 64

    initial v1  
    2222
    2323As you indicate, currRingHdl can be NULLed again by rKill. We need to correct that if we need currRingHdl later.
     24
     25In fact, without extra infrastructure to clean up after it, it seems that `rKill` leaks ringhandles. Is it the case that ring handles are registered in some global data structure that allows them to be deleted? This loop might be the candidate:
     26{{{
     27    while (r->idroot!=NULL)
     28    {
     29      killhdl2(r->idroot,&(r->idroot),r);
     30    }
     31}}}
     32that might do this. In any case, rKill just does a straight `currRingHdl=NULL` if `(r==currRing)`, so `currRingHdl` is definitely gone.
     33
     34Is it really necessary to use `rKill`? It seems it is more part of the interpreter layer and that the libsingular interface itself is largely one level lower. Have we initialized enough of the interpreter to let `rKill` function as advertised?
     35
     36It is by now clear that up to now, the Sage-libsingular interface was largely based on empirically verified guesses. Now that Simon has good contact with Hans, perhaps we can ensure the interface follows official protocol?