Changes between Version 203 and Version 206 of Ticket #22626


Ignore:
Timestamp:
11/14/18 13:26:26 (3 years ago)
Author:
embray
Comment:

I was slightly barking up the wrong tree with the PostRestoreFuncs. Turns out it's hanging right after that in the function called SESSION. That's where it invokes that problematic SHELL() call:

 36 BIND_GLOBAL("SESSION",
 37     function()
 38     local   prompt;
 39
 40     if GAPInfo.CommandLineOptions.q then
 41         prompt := "";
 42     else
 43         prompt := "gap> ";
 44     fi;
 45
 46     SHELL( GetBottomLVars(), # in global context
 47         false, # no return
 48         false, # no return  obj
 49         3,     # set last, last2 and last3 each command
 50         true,  # set time after each command
 51         prompt,
 52         function()
 53             if IsBound(OnGAPPromptHook) and IsFunction(OnGAPPromptHook) then
 54                 OnGAPPromptHook();
 55             else
 56                 return;
 57             fi;
 58         end,
 59         "*stdin*",
 60         "*stdout*",
 61         true);
 62
 63     BreakOnError := false;
 64 end);

I'm still no exactly sure what this is for or why it causes libgap to hang in Sage. But it seems we can avoid it by using the --norepl option. What's strange is that --nointeract should imply --norepl but that doesn't appear to be working. That would have been the case with the off-by-one error in argc that Dima pointed out. But I fixed that and it didn't seem to help :/

Perhaps this is simple...

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #22626 – Description

    v203 v206  
    1616- Update a few doctests w.r.t. changes of output of some GAP functions
    1717
    18 - **Possibly controversial:** The new libgap currently 'does not come' with symbol rewriting (`foobar` -> `libGAP_foobar`). This avoids messing around with GAP's sources; in particular opening the door for using a stock GAP from the OS distribution. However there always is a risk of name conflicts. And indeed, GAP's enums `T_INT`, `T_FLOAT`, ... conflict with Python's constants defined in `structmember.h`. This is hopefully not actually a problem in practice due to the way how Cython orders includes.
     18- **Possibly controversial:** The new libgap currently *does not come*
     19  with symbol rewriting (`foobar` -> `libGAP_foobar`). This avoids messing
     20  around with GAP's sources; in particular opening the door for using
     21  a stock GAP from the OS distribution. However there always is a risk
     22  of name conflict. And indeed, GAP's constants (actually cpp macros)
     23  T_INT, T_FLOAT, ... conflict with Python's constants. This is
     24  currently worked around by forcing the inclusion of Python's
     25  `structmember.h` before the gap headers.
    1926
    2027  Something similar was started by Volker at #19915.