diff --git a/lib/oper.g b/lib/oper.g index fbb463479f9..21907eb3851 100644 --- a/lib/oper.g +++ b/lib/oper.g @@ -554,9 +554,10 @@ end ); ## , or ## with flag equal false turns tracing off. ## (There is no facility to trace specific immediate methods.) -## TraceImmediateMethods( ); ## gap> g:= Group( (1,2,3), (1,2) );; +## #I RunImmediateMethods ## #I immediate: Size ## #I immediate: IsCyclic ## #I immediate: IsCommutative @@ -574,7 +575,7 @@ end ); ## 6 ## gap> UntraceImmediateMethods( ); ## gap> UntraceMethods( [ Size ] ); -## ]]> +## ]]> ##

## This example gives an explanation for the two calls of the ## system getter for . diff --git a/lib/oper1.g b/lib/oper1.g index abb644722d7..68cc6bca5d5 100644 --- a/lib/oper1.g +++ b/lib/oper1.g @@ -20,6 +20,7 @@ ## have been discovered recently. ## So possible consequences of other filters are not checked. ## +RUN_IMMEDIATE_METHODS_RUNS := 0; RUN_IMMEDIATE_METHODS_CHECKS := 0; RUN_IMMEDIATE_METHODS_HITS := 0; @@ -31,7 +32,9 @@ BIND_GLOBAL( "RunImmediateMethods", function ( obj, flags ) j, # loop over `flagspos' imm, # immediate methods for filter `j' i, # loop over `imm' + meth, res, # result of an immediate method + loc, newflags; # newly found filters # Avoid recursive calls from inside a setter, @@ -49,6 +52,11 @@ BIND_GLOBAL( "RunImmediateMethods", function ( obj, flags ) type := TYPE_OBJ( obj ); flags := type![2]; + RUN_IMMEDIATE_METHODS_RUNS := RUN_IMMEDIATE_METHODS_RUNS + 1; + if TRACE_IMMEDIATE_METHODS then + Print( "#I RunImmediateMethods\n"); + fi; + # Check the immediate methods for all in `flagspos'. # (Note that new information is handled via appending to that list.) for j in flagspos do @@ -71,16 +79,26 @@ BIND_GLOBAL( "RunImmediateMethods", function ( obj, flags ) then # Call the method, and store that it was used. - res := IMMEDIATE_METHODS[ imm[i+6] ]( obj ); + meth := IMMEDIATE_METHODS[ imm[i+6] ]; + res := meth( obj ); ADD_LIST( tried, imm[i+6] ); RUN_IMMEDIATE_METHODS_CHECKS := RUN_IMMEDIATE_METHODS_CHECKS+1; if TRACE_IMMEDIATE_METHODS then - if imm[i+7] = false then - Print( "#I immediate: ", NAME_FUNC( imm[i+1] ), "\n"); - else - Print( "#I immediate: ", NAME_FUNC( imm[i+1] ), ": ", imm[i+7], "\n" ); + Print( "#I immediate: ", NAME_FUNC( imm[i+1] )); + if imm[i+7] <> false then + Print( ": ", imm[i+7] ); + fi; + if IsBound(LocationFunc) then + loc := VALUE_GLOBAL("LocationFunc")( meth ); + if loc <> "" then + Print(" at ", loc); + fi; + fi; + if NAME_FUNC(meth) <> "unknown" then + Print(" via ", NAME_FUNC(meth)); fi; + Print("\n"); fi; if res <> TRY_NEXT_METHOD then diff --git a/src/c_oper1.c b/src/c_oper1.c index 43da9b4160b..864915334d3 100644 --- a/src/c_oper1.c +++ b/src/c_oper1.c @@ -1,7 +1,7 @@ #ifndef AVOID_PRECOMPILED /* C file produced by GAC */ #include -#define FILE_CRC "452946" +#define FILE_CRC "-3929700" /* global variables used in handlers */ static GVar G_REREADING; @@ -86,6 +86,8 @@ static GVar G_Print; static Obj GF_Print; static GVar G_ViewObj; static Obj GC_ViewObj; +static GVar G_RUN__IMMEDIATE__METHODS__RUNS; +static Obj GC_RUN__IMMEDIATE__METHODS__RUNS; static GVar G_RUN__IMMEDIATE__METHODS__CHECKS; static Obj GC_RUN__IMMEDIATE__METHODS__CHECKS; static GVar G_RUN__IMMEDIATE__METHODS__HITS; @@ -96,12 +98,16 @@ static GVar G_IGNORE__IMMEDIATE__METHODS; static Obj GC_IGNORE__IMMEDIATE__METHODS; static GVar G_IMM__FLAGS; static Obj GC_IMM__FLAGS; +static GVar G_TRACE__IMMEDIATE__METHODS; +static Obj GC_TRACE__IMMEDIATE__METHODS; static GVar G_IMMEDIATES; static Obj GC_IMMEDIATES; static GVar G_IMMEDIATE__METHODS; static Obj GC_IMMEDIATE__METHODS; -static GVar G_TRACE__IMMEDIATE__METHODS; -static Obj GC_TRACE__IMMEDIATE__METHODS; +static GVar G_LocationFunc; +static Obj GC_LocationFunc; +static GVar G_VALUE__GLOBAL; +static Obj GF_VALUE__GLOBAL; static GVar G_RankFilter; static Obj GF_RankFilter; static GVar G_CHECK__INSTALL__METHOD; @@ -144,8 +150,6 @@ static GVar G_IsPrimeInt; static Obj GF_IsPrimeInt; static GVar G_DeclareOperation; static Obj GF_DeclareOperation; -static GVar G_VALUE__GLOBAL; -static Obj GF_VALUE__GLOBAL; static GVar G_DeclareAttribute; static Obj GF_DeclareAttribute; static GVar G_InstallMethod; @@ -174,7 +178,9 @@ static Obj HdlrFunc2 ( Obj l_j = 0; Obj l_imm = 0; Obj l_i = 0; + Obj l_meth = 0; Obj l_res = 0; + Obj l_loc = 0; Obj l_newflags = 0; Obj t_1 = 0; Obj t_2 = 0; @@ -199,7 +205,9 @@ static Obj HdlrFunc2 ( (void)l_j; (void)l_imm; (void)l_i; + (void)l_meth; (void)l_res; + (void)l_loc; (void)l_newflags; Bag oldFrame; OLD_BRK_CURR_STAT @@ -274,6 +282,27 @@ static Obj HdlrFunc2 ( C_ELM_POSOBJ_NLE( t_1, l_type, 2 ); a_flags = t_1; + /* RUN_IMMEDIATE_METHODS_RUNS := RUN_IMMEDIATE_METHODS_RUNS + 1; */ + t_2 = GC_RUN__IMMEDIATE__METHODS__RUNS; + CHECK_BOUND( t_2, "RUN_IMMEDIATE_METHODS_RUNS" ) + C_SUM_FIA( t_1, t_2, INTOBJ_INT(1) ) + AssGVar( G_RUN__IMMEDIATE__METHODS__RUNS, t_1 ); + + /* if TRACE_IMMEDIATE_METHODS then */ + t_2 = GC_TRACE__IMMEDIATE__METHODS; + CHECK_BOUND( t_2, "TRACE_IMMEDIATE_METHODS" ) + CHECK_BOOL( t_2 ) + t_1 = (Obj)(UInt)(t_2 != False); + if ( t_1 ) { + + /* Print( "#I RunImmediateMethods\n" ); */ + t_1 = GF_Print; + t_2 = MakeString( "#I RunImmediateMethods\n" ); + CALL_1ARGS( t_1, t_2 ); + + } + /* fi */ + /* for j in flagspos do */ t_4 = l_flagspos; if ( IS_SMALL_LIST(t_4) ) { @@ -371,16 +400,19 @@ static Obj HdlrFunc2 ( } if ( t_9 ) { - /* res := IMMEDIATE_METHODS[imm[i + 6]]( obj ); */ - t_11 = GC_IMMEDIATE__METHODS; - CHECK_BOUND( t_11, "IMMEDIATE_METHODS" ) - C_SUM_FIA( t_13, l_i, INTOBJ_INT(6) ) - CHECK_INT_POS( t_13 ) - C_ELM_LIST_FPL( t_12, l_imm, t_13 ) + /* meth := IMMEDIATE_METHODS[imm[i + 6]]; */ + t_10 = GC_IMMEDIATE__METHODS; + CHECK_BOUND( t_10, "IMMEDIATE_METHODS" ) + C_SUM_FIA( t_12, l_i, INTOBJ_INT(6) ) CHECK_INT_POS( t_12 ) - C_ELM_LIST_FPL( t_10, t_11, t_12 ) - CHECK_FUNC( t_10 ) - t_9 = CALL_1ARGS( t_10, a_obj ); + C_ELM_LIST_FPL( t_11, l_imm, t_12 ) + CHECK_INT_POS( t_11 ) + C_ELM_LIST_FPL( t_9, t_10, t_11 ) + l_meth = t_9; + + /* res := meth( obj ); */ + CHECK_FUNC( l_meth ) + t_9 = CALL_1ARGS( l_meth, a_obj ); CHECK_FUNC_RESULT( t_9 ) l_res = t_9; @@ -404,50 +436,92 @@ static Obj HdlrFunc2 ( t_9 = (Obj)(UInt)(t_10 != False); if ( t_9 ) { - /* if imm[i + 7] = false then */ + /* Print( "#I immediate: ", NAME_FUNC( imm[i + 1] ) ); */ + t_9 = GF_Print; + t_10 = MakeString( "#I immediate: " ); + t_12 = GF_NAME__FUNC; + C_SUM_FIA( t_14, l_i, INTOBJ_INT(1) ) + CHECK_INT_POS( t_14 ) + C_ELM_LIST_FPL( t_13, l_imm, t_14 ) + t_11 = CALL_1ARGS( t_12, t_13 ); + CHECK_FUNC_RESULT( t_11 ) + CALL_2ARGS( t_9, t_10, t_11 ); + + /* if imm[i + 7] <> false then */ C_SUM_FIA( t_11, l_i, INTOBJ_INT(7) ) CHECK_INT_POS( t_11 ) C_ELM_LIST_FPL( t_10, l_imm, t_11 ) t_11 = False; - t_9 = (Obj)(UInt)(EQ( t_10, t_11 )); + t_9 = (Obj)(UInt)( ! EQ( t_10, t_11 )); if ( t_9 ) { - /* Print( "#I immediate: ", NAME_FUNC( imm[i + 1] ), "\n" ); */ + /* Print( ": ", imm[i + 7] ); */ t_9 = GF_Print; - t_10 = MakeString( "#I immediate: " ); - t_12 = GF_NAME__FUNC; - C_SUM_FIA( t_14, l_i, INTOBJ_INT(1) ) - CHECK_INT_POS( t_14 ) - C_ELM_LIST_FPL( t_13, l_imm, t_14 ) - t_11 = CALL_1ARGS( t_12, t_13 ); - CHECK_FUNC_RESULT( t_11 ) - t_12 = MakeString( "\n" ); - CALL_3ARGS( t_9, t_10, t_11, t_12 ); + t_10 = MakeString( ": " ); + C_SUM_FIA( t_12, l_i, INTOBJ_INT(7) ) + CHECK_INT_POS( t_12 ) + C_ELM_LIST_FPL( t_11, l_imm, t_12 ) + CALL_2ARGS( t_9, t_10, t_11 ); } + /* fi */ - /* else */ - else { + /* if IsBound( LocationFunc ) then */ + t_11 = GC_LocationFunc; + t_10 = ((t_11 != 0) ? True : False); + t_9 = (Obj)(UInt)(t_10 != False); + if ( t_9 ) { + + /* loc := VALUE_GLOBAL( "LocationFunc" )( meth ); */ + t_11 = GF_VALUE__GLOBAL; + t_12 = MakeString( "LocationFunc" ); + t_10 = CALL_1ARGS( t_11, t_12 ); + CHECK_FUNC_RESULT( t_10 ) + CHECK_FUNC( t_10 ) + t_9 = CALL_1ARGS( t_10, l_meth ); + CHECK_FUNC_RESULT( t_9 ) + l_loc = t_9; - /* Print( "#I immediate: ", NAME_FUNC( imm[i + 1] ), ": ", imm[i + 7], "\n" ); */ + /* if loc <> "" then */ + t_10 = MakeString( "" ); + t_9 = (Obj)(UInt)( ! EQ( l_loc, t_10 )); + if ( t_9 ) { + + /* Print( " at ", loc ); */ + t_9 = GF_Print; + t_10 = MakeString( " at " ); + CALL_2ARGS( t_9, t_10, l_loc ); + + } + /* fi */ + + } + /* fi */ + + /* if NAME_FUNC( meth ) <> "unknown" then */ + t_11 = GF_NAME__FUNC; + t_10 = CALL_1ARGS( t_11, l_meth ); + CHECK_FUNC_RESULT( t_10 ) + t_11 = MakeString( "unknown" ); + t_9 = (Obj)(UInt)( ! EQ( t_10, t_11 )); + if ( t_9 ) { + + /* Print( " via ", NAME_FUNC( meth ) ); */ t_9 = GF_Print; - t_10 = MakeString( "#I immediate: " ); + t_10 = MakeString( " via " ); t_12 = GF_NAME__FUNC; - C_SUM_FIA( t_14, l_i, INTOBJ_INT(1) ) - CHECK_INT_POS( t_14 ) - C_ELM_LIST_FPL( t_13, l_imm, t_14 ) - t_11 = CALL_1ARGS( t_12, t_13 ); + t_11 = CALL_1ARGS( t_12, l_meth ); CHECK_FUNC_RESULT( t_11 ) - t_12 = MakeString( ": " ); - C_SUM_FIA( t_14, l_i, INTOBJ_INT(7) ) - CHECK_INT_POS( t_14 ) - C_ELM_LIST_FPL( t_13, l_imm, t_14 ) - t_14 = MakeString( "\n" ); - CALL_5ARGS( t_9, t_10, t_11, t_12, t_13, t_14 ); + CALL_2ARGS( t_9, t_10, t_11 ); } /* fi */ + /* Print( "\n" ); */ + t_9 = GF_Print; + t_10 = MakeString( "\n" ); + CALL_1ARGS( t_9, t_10 ); + } /* fi */ @@ -2451,8 +2525,8 @@ static Obj HdlrFunc7 ( t_6 = NewFunction( NameFunc[8], 1, 0, HdlrFunc8 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_7, 622); - SET_ENDLINE_BODY(t_7, 640); + SET_STARTLINE_BODY(t_7, 640); + SET_ENDLINE_BODY(t_7, 658); SET_FILENAME_BODY(t_7, FileName); SET_BODY_FUNC(t_6, t_7); CHANGED_BAG( STATE(CurrLVars) ); @@ -3055,8 +3129,8 @@ static Obj HdlrFunc11 ( t_1 = NewFunction( NameFunc[12], 1, 0, HdlrFunc12 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_2, 819); - SET_ENDLINE_BODY(t_2, 823); + SET_STARTLINE_BODY(t_2, 837); + SET_ENDLINE_BODY(t_2, 841); SET_FILENAME_BODY(t_2, FileName); SET_BODY_FUNC(t_1, t_2); CHANGED_BAG( STATE(CurrLVars) ); @@ -3135,8 +3209,8 @@ static Obj HdlrFunc11 ( t_6 = NewFunction( NameFunc[13], 1, 0, HdlrFunc13 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_7, 840); - SET_ENDLINE_BODY(t_7, 840); + SET_STARTLINE_BODY(t_7, 858); + SET_ENDLINE_BODY(t_7, 858); SET_FILENAME_BODY(t_7, FileName); SET_BODY_FUNC(t_6, t_7); CHANGED_BAG( STATE(CurrLVars) ); @@ -3198,8 +3272,8 @@ static Obj HdlrFunc11 ( t_6 = NewFunction( NameFunc[14], 2, 0, HdlrFunc14 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_7, 862); - SET_ENDLINE_BODY(t_7, 885); + SET_STARTLINE_BODY(t_7, 880); + SET_ENDLINE_BODY(t_7, 903); SET_FILENAME_BODY(t_7, FileName); SET_BODY_FUNC(t_6, t_7); CHANGED_BAG( STATE(CurrLVars) ); @@ -3247,8 +3321,8 @@ static Obj HdlrFunc11 ( t_6 = NewFunction( NameFunc[15], 2, 0, HdlrFunc15 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_7, 895); - SET_ENDLINE_BODY(t_7, 903); + SET_STARTLINE_BODY(t_7, 913); + SET_ENDLINE_BODY(t_7, 921); SET_FILENAME_BODY(t_7, FileName); SET_BODY_FUNC(t_6, t_7); CHANGED_BAG( STATE(CurrLVars) ); @@ -3309,8 +3383,8 @@ static Obj HdlrFunc11 ( t_6 = NewFunction( NameFunc[16], 3, 0, HdlrFunc16 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_7, 912); - SET_ENDLINE_BODY(t_7, 925); + SET_STARTLINE_BODY(t_7, 930); + SET_ENDLINE_BODY(t_7, 943); SET_FILENAME_BODY(t_7, FileName); SET_BODY_FUNC(t_6, t_7); CHANGED_BAG( STATE(CurrLVars) ); @@ -3683,8 +3757,8 @@ static Obj HdlrFunc17 ( t_4 = NewFunction( NameFunc[18], -1, 0, HdlrFunc18 ); SET_ENVI_FUNC( t_4, STATE(CurrLVars) ); t_5 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_5, 991); - SET_ENDLINE_BODY(t_5, 1007); + SET_STARTLINE_BODY(t_5, 1009); + SET_ENDLINE_BODY(t_5, 1025); SET_FILENAME_BODY(t_5, FileName); SET_BODY_FUNC(t_4, t_5); CHANGED_BAG( STATE(CurrLVars) ); @@ -3719,6 +3793,9 @@ static Obj HdlrFunc1 ( REM_BRK_CURR_STAT(); SET_BRK_CURR_STAT(0); + /* RUN_IMMEDIATE_METHODS_RUNS := 0; */ + AssGVar( G_RUN__IMMEDIATE__METHODS__RUNS, INTOBJ_INT(0) ); + /* RUN_IMMEDIATE_METHODS_CHECKS := 0; */ AssGVar( G_RUN__IMMEDIATE__METHODS__CHECKS, INTOBJ_INT(0) ); @@ -3726,7 +3803,7 @@ static Obj HdlrFunc1 ( AssGVar( G_RUN__IMMEDIATE__METHODS__HITS, INTOBJ_INT(0) ); /* BIND_GLOBAL( "RunImmediateMethods", function ( obj, flags ) - local flagspos, tried, type, j, imm, i, res, newflags; + local flagspos, tried, type, j, imm, i, meth, res, loc, newflags; if IGNORE_IMMEDIATE_METHODS then return; fi; @@ -3738,20 +3815,34 @@ static Obj HdlrFunc1 ( tried := [ ]; type := TYPE_OBJ( obj ); flags := type![2]; + RUN_IMMEDIATE_METHODS_RUNS := RUN_IMMEDIATE_METHODS_RUNS + 1; + if TRACE_IMMEDIATE_METHODS then + Print( "#I RunImmediateMethods\n" ); + fi; for j in flagspos do if IsBound( IMMEDIATES[j] ) then imm := IMMEDIATES[j]; for i in [ 0, 7 .. LEN_LIST( imm ) - 7 ] do if IS_SUBSET_FLAGS( flags, imm[i + 4] ) and not IS_SUBSET_FLAGS( flags, imm[i + 3] ) and not imm[i + 6] in tried then - res := IMMEDIATE_METHODS[imm[i + 6]]( obj ); + meth := IMMEDIATE_METHODS[imm[i + 6]]; + res := meth( obj ); ADD_LIST( tried, imm[i + 6] ); RUN_IMMEDIATE_METHODS_CHECKS := RUN_IMMEDIATE_METHODS_CHECKS + 1; if TRACE_IMMEDIATE_METHODS then - if imm[i + 7] = false then - Print( "#I immediate: ", NAME_FUNC( imm[i + 1] ), "\n" ); - else - Print( "#I immediate: ", NAME_FUNC( imm[i + 1] ), ": ", imm[i + 7], "\n" ); + Print( "#I immediate: ", NAME_FUNC( imm[i + 1] ) ); + if imm[i + 7] <> false then + Print( ": ", imm[i + 7] ); + fi; + if IsBound( LocationFunc ) then + loc := VALUE_GLOBAL( "LocationFunc" )( meth ); + if loc <> "" then + Print( " at ", loc ); + fi; fi; + if NAME_FUNC( meth ) <> "unknown" then + Print( " via ", NAME_FUNC( meth ) ); + fi; + Print( "\n" ); fi; if res <> TRY_NEXT_METHOD then IGNORE_IMMEDIATE_METHODS := true; @@ -3777,8 +3868,8 @@ static Obj HdlrFunc1 ( t_3 = NewFunction( NameFunc[2], 2, 0, HdlrFunc2 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_4, 26); - SET_ENDLINE_BODY(t_4, 117); + SET_STARTLINE_BODY(t_4, 27); + SET_ENDLINE_BODY(t_4, 135); SET_FILENAME_BODY(t_4, FileName); SET_BODY_FUNC(t_3, t_4); CHANGED_BAG( STATE(CurrLVars) ); @@ -3876,8 +3967,8 @@ static Obj HdlrFunc1 ( t_3 = NewFunction( NameFunc[3], 6, 0, HdlrFunc3 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_4, 137); - SET_ENDLINE_BODY(t_4, 261); + SET_STARTLINE_BODY(t_4, 155); + SET_ENDLINE_BODY(t_4, 279); SET_FILENAME_BODY(t_4, FileName); SET_BODY_FUNC(t_3, t_4); CHANGED_BAG( STATE(CurrLVars) ); @@ -3892,8 +3983,8 @@ static Obj HdlrFunc1 ( t_3 = NewFunction( NameFunc[4], -1, 0, HdlrFunc4 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_4, 308); - SET_ENDLINE_BODY(t_4, 310); + SET_STARTLINE_BODY(t_4, 326); + SET_ENDLINE_BODY(t_4, 328); SET_FILENAME_BODY(t_4, FileName); SET_BODY_FUNC(t_3, t_4); CHANGED_BAG( STATE(CurrLVars) ); @@ -3908,8 +3999,8 @@ static Obj HdlrFunc1 ( t_3 = NewFunction( NameFunc[5], -1, 0, HdlrFunc5 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_4, 335); - SET_ENDLINE_BODY(t_4, 337); + SET_STARTLINE_BODY(t_4, 353); + SET_ENDLINE_BODY(t_4, 355); SET_FILENAME_BODY(t_4, FileName); SET_BODY_FUNC(t_3, t_4); CHANGED_BAG( STATE(CurrLVars) ); @@ -4062,8 +4153,8 @@ static Obj HdlrFunc1 ( t_3 = NewFunction( NameFunc[6], 2, 0, HdlrFunc6 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_4, 348); - SET_ENDLINE_BODY(t_4, 559); + SET_STARTLINE_BODY(t_4, 366); + SET_ENDLINE_BODY(t_4, 577); SET_FILENAME_BODY(t_4, FileName); SET_BODY_FUNC(t_3, t_4); CHANGED_BAG( STATE(CurrLVars) ); @@ -4122,8 +4213,8 @@ static Obj HdlrFunc1 ( t_2 = NewFunction( NameFunc[7], 6, 0, HdlrFunc7 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_3, 578); - SET_ENDLINE_BODY(t_3, 644); + SET_STARTLINE_BODY(t_3, 596); + SET_ENDLINE_BODY(t_3, 662); SET_FILENAME_BODY(t_3, FileName); SET_BODY_FUNC(t_2, t_3); CHANGED_BAG( STATE(CurrLVars) ); @@ -4137,8 +4228,8 @@ static Obj HdlrFunc1 ( t_2 = NewFunction( NameFunc[9], 6, 0, HdlrFunc9 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_3, 647); - SET_ENDLINE_BODY(t_3, 653); + SET_STARTLINE_BODY(t_3, 665); + SET_ENDLINE_BODY(t_3, 671); SET_FILENAME_BODY(t_3, FileName); SET_BODY_FUNC(t_2, t_3); CHANGED_BAG( STATE(CurrLVars) ); @@ -4166,8 +4257,8 @@ static Obj HdlrFunc1 ( t_3 = NewFunction( NameFunc[10], 2, 0, HdlrFunc10 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_4, 666); - SET_ENDLINE_BODY(t_4, 690); + SET_STARTLINE_BODY(t_4, 684); + SET_ENDLINE_BODY(t_4, 708); SET_FILENAME_BODY(t_4, FileName); SET_BODY_FUNC(t_3, t_4); CHANGED_BAG( STATE(CurrLVars) ); @@ -4251,8 +4342,8 @@ static Obj HdlrFunc1 ( t_3 = NewFunction( NameFunc[11], 4, 0, HdlrFunc11 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_4, 815); - SET_ENDLINE_BODY(t_4, 926); + SET_STARTLINE_BODY(t_4, 833); + SET_ENDLINE_BODY(t_4, 944); SET_FILENAME_BODY(t_4, FileName); SET_BODY_FUNC(t_3, t_4); CHANGED_BAG( STATE(CurrLVars) ); @@ -4303,8 +4394,8 @@ static Obj HdlrFunc1 ( t_3 = NewFunction( NameFunc[17], -1, 0, HdlrFunc17 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewBag( T_BODY, sizeof(BodyHeader) ); - SET_STARTLINE_BODY(t_4, 961); - SET_ENDLINE_BODY(t_4, 1008); + SET_STARTLINE_BODY(t_4, 979); + SET_ENDLINE_BODY(t_4, 1026); SET_FILENAME_BODY(t_4, FileName); SET_BODY_FUNC(t_3, t_4); CHANGED_BAG( STATE(CurrLVars) ); @@ -4383,14 +4474,17 @@ static Int PostRestore ( StructInitInfo * module ) G_CONV__STRING = GVarName( "CONV_STRING" ); G_Print = GVarName( "Print" ); G_ViewObj = GVarName( "ViewObj" ); + G_RUN__IMMEDIATE__METHODS__RUNS = GVarName( "RUN_IMMEDIATE_METHODS_RUNS" ); G_RUN__IMMEDIATE__METHODS__CHECKS = GVarName( "RUN_IMMEDIATE_METHODS_CHECKS" ); G_RUN__IMMEDIATE__METHODS__HITS = GVarName( "RUN_IMMEDIATE_METHODS_HITS" ); G_BIND__GLOBAL = GVarName( "BIND_GLOBAL" ); G_IGNORE__IMMEDIATE__METHODS = GVarName( "IGNORE_IMMEDIATE_METHODS" ); G_IMM__FLAGS = GVarName( "IMM_FLAGS" ); + G_TRACE__IMMEDIATE__METHODS = GVarName( "TRACE_IMMEDIATE_METHODS" ); G_IMMEDIATES = GVarName( "IMMEDIATES" ); G_IMMEDIATE__METHODS = GVarName( "IMMEDIATE_METHODS" ); - G_TRACE__IMMEDIATE__METHODS = GVarName( "TRACE_IMMEDIATE_METHODS" ); + G_LocationFunc = GVarName( "LocationFunc" ); + G_VALUE__GLOBAL = GVarName( "VALUE_GLOBAL" ); G_RankFilter = GVarName( "RankFilter" ); G_CHECK__INSTALL__METHOD = GVarName( "CHECK_INSTALL_METHOD" ); G_INSTALL__METHOD = GVarName( "INSTALL_METHOD" ); @@ -4412,7 +4506,6 @@ static Int PostRestore ( StructInitInfo * module ) G_Tester = GVarName( "Tester" ); G_IsPrimeInt = GVarName( "IsPrimeInt" ); G_DeclareOperation = GVarName( "DeclareOperation" ); - G_VALUE__GLOBAL = GVarName( "VALUE_GLOBAL" ); G_DeclareAttribute = GVarName( "DeclareAttribute" ); G_InstallMethod = GVarName( "InstallMethod" ); G_PositionSortedOddPositions = GVarName( "PositionSortedOddPositions" ); @@ -4493,14 +4586,17 @@ static Int InitKernel ( StructInitInfo * module ) InitFopyGVar( "CONV_STRING", &GF_CONV__STRING ); InitFopyGVar( "Print", &GF_Print ); InitCopyGVar( "ViewObj", &GC_ViewObj ); + InitCopyGVar( "RUN_IMMEDIATE_METHODS_RUNS", &GC_RUN__IMMEDIATE__METHODS__RUNS ); InitCopyGVar( "RUN_IMMEDIATE_METHODS_CHECKS", &GC_RUN__IMMEDIATE__METHODS__CHECKS ); InitCopyGVar( "RUN_IMMEDIATE_METHODS_HITS", &GC_RUN__IMMEDIATE__METHODS__HITS ); InitFopyGVar( "BIND_GLOBAL", &GF_BIND__GLOBAL ); InitCopyGVar( "IGNORE_IMMEDIATE_METHODS", &GC_IGNORE__IMMEDIATE__METHODS ); InitCopyGVar( "IMM_FLAGS", &GC_IMM__FLAGS ); + InitCopyGVar( "TRACE_IMMEDIATE_METHODS", &GC_TRACE__IMMEDIATE__METHODS ); InitCopyGVar( "IMMEDIATES", &GC_IMMEDIATES ); InitCopyGVar( "IMMEDIATE_METHODS", &GC_IMMEDIATE__METHODS ); - InitCopyGVar( "TRACE_IMMEDIATE_METHODS", &GC_TRACE__IMMEDIATE__METHODS ); + InitCopyGVar( "LocationFunc", &GC_LocationFunc ); + InitFopyGVar( "VALUE_GLOBAL", &GF_VALUE__GLOBAL ); InitFopyGVar( "RankFilter", &GF_RankFilter ); InitCopyGVar( "CHECK_INSTALL_METHOD", &GC_CHECK__INSTALL__METHOD ); InitFopyGVar( "INSTALL_METHOD", &GF_INSTALL__METHOD ); @@ -4522,7 +4618,6 @@ static Int InitKernel ( StructInitInfo * module ) InitFopyGVar( "Tester", &GF_Tester ); InitFopyGVar( "IsPrimeInt", &GF_IsPrimeInt ); InitFopyGVar( "DeclareOperation", &GF_DeclareOperation ); - InitFopyGVar( "VALUE_GLOBAL", &GF_VALUE__GLOBAL ); InitFopyGVar( "DeclareAttribute", &GF_DeclareAttribute ); InitFopyGVar( "InstallMethod", &GF_InstallMethod ); InitFopyGVar( "PositionSortedOddPositions", &GF_PositionSortedOddPositions ); @@ -4601,7 +4696,7 @@ static Int InitLibrary ( StructInitInfo * module ) static StructInitInfo module = { .type = MODULE_STATIC, .name = "GAPROOT/lib/oper1.g", - .crc = 452946, + .crc = -3929700, .initKernel = InitKernel, .initLibrary = InitLibrary, .postRestore = PostRestore,