RUN_IN_GGMBI is an undocumented global variable that is used for avoiding infinite recursions.
Such flags can cause problems in interactive sessions when one enters a break loop, leaves it with quit, and the flag keeps its non-default value.
(An example where this happened for another global flag is described in #6412. Here the solution was to remove that flag -- problem solved.)
One way to improve the behaviour of GAP would be to explicitly reset RUN_IN_GGMBI in OnQuit, that is, when one returns from an error to the GAP prompt.
Alternatively, would it make sense to turn RUN_IN_GGMBI into a global option? In this case, OnQuit would automatically reset the value when the whole options stack gets reset.
(Challenge: Which other global flags do we have, which would need to be reset in OnQuit?)
RUN_IN_GGMBIis an undocumented global variable that is used for avoiding infinite recursions.Such flags can cause problems in interactive sessions when one enters a break loop, leaves it with
quit, and the flag keeps its non-default value.(An example where this happened for another global flag is described in #6412. Here the solution was to remove that flag -- problem solved.)
One way to improve the behaviour of GAP would be to explicitly reset
RUN_IN_GGMBIinOnQuit, that is, when one returns from an error to the GAP prompt.Alternatively, would it make sense to turn
RUN_IN_GGMBIinto a global option? In this case,OnQuitwould automatically reset the value when the whole options stack gets reset.(Challenge: Which other global flags do we have, which would need to be reset in
OnQuit?)