From 3d6320bbea0b8ac7392ab6c8183d8a8965918cd6 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 30 Jan 2019 10:05:56 +0100 Subject: [PATCH] gac: preserve argument names of compiled functions Fix #3240 --- src/c_oper1.c | 34 ++++++------ src/c_type1.c | 58 ++++++++++----------- src/compiler.c | 17 +++++- src/hpc/c_oper1.c | 34 ++++++------ src/hpc/c_type1.c | 58 ++++++++++----------- tst/test-compile/basics.g.dynamic.c | 4 +- tst/test-compile/basics.g.static.c | 4 +- tst/test-compile/function_types.g.dynamic.c | 8 +-- tst/test-compile/function_types.g.static.c | 8 +-- tst/test-compile/ranges.g.dynamic.c | 4 +- tst/test-compile/ranges.g.static.c | 4 +- tst/testbugfix/2019-01-29-gac-arg-names.tst | 3 ++ tst/testinstall/varargs.tst | 4 +- 13 files changed, 129 insertions(+), 111 deletions(-) create mode 100644 tst/testbugfix/2019-01-29-gac-arg-names.tst diff --git a/src/c_oper1.c b/src/c_oper1.c index 23abf123fc..a26938b4f3 100644 --- a/src/c_oper1.c +++ b/src/c_oper1.c @@ -2724,7 +2724,7 @@ static Obj HdlrFunc7 ( SET_LEN_PLIST( t_5, 1 ); SET_ELM_PLIST( t_5, 1, l_cats ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[8], 1, 0, HdlrFunc8 ); + t_6 = NewFunction( NameFunc[8], 1, ArgStringToList("obj"), HdlrFunc8 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 671); @@ -3290,7 +3290,7 @@ static Obj HdlrFunc11 ( fi; return; end; */ - t_1 = NewFunction( NameFunc[12], 1, 0, HdlrFunc12 ); + t_1 = NewFunction( NameFunc[12], 1, ArgStringToList("key"), HdlrFunc12 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 868); @@ -3369,7 +3369,7 @@ static Obj HdlrFunc11 ( SET_LEN_PLIST( t_5, 1 ); SET_ELM_PLIST( t_5, 1, a_domreq ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[13], 1, 0, HdlrFunc13 ); + t_6 = NewFunction( NameFunc[13], 1, ArgStringToList("D"), HdlrFunc13 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 889); @@ -3431,7 +3431,7 @@ static Obj HdlrFunc11 ( CHANGED_BAG( t_5 ); SET_ELM_PLIST( t_5, 2, a_keyreq ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[14], 2, 0, HdlrFunc14 ); + t_6 = NewFunction( NameFunc[14], 2, ArgStringToList("D,key"), HdlrFunc14 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 911); @@ -3479,7 +3479,7 @@ static Obj HdlrFunc11 ( CHANGED_BAG( t_5 ); SET_ELM_PLIST( t_5, 2, a_keyreq ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[15], 2, 0, HdlrFunc15 ); + t_6 = NewFunction( NameFunc[15], 2, ArgStringToList("D,key"), HdlrFunc15 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 944); @@ -3540,7 +3540,7 @@ static Obj HdlrFunc11 ( CHECK_BOUND( t_6, "IS_OBJECT" ) SET_ELM_PLIST( t_5, 3, t_6 ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[16], 3, 0, HdlrFunc16 ); + t_6 = NewFunction( NameFunc[16], 3, ArgStringToList("D,key,obj"), HdlrFunc16 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 961); @@ -3902,7 +3902,7 @@ static Obj HdlrFunc17 ( CHECK_BOUND( l_fampred, "fampred" ) t_3 = OBJ_LVAR( 2 ); CHECK_BOUND( t_3, "reqs" ) - t_4 = NewFunction( NameFunc[18], -1, 0, HdlrFunc18 ); + t_4 = NewFunction( NameFunc[18], -1, ArgStringToList("arg"), HdlrFunc18 ); SET_ENVI_FUNC( t_4, STATE(CurrLVars) ); t_5 = NewFunctionBody(); SET_STARTLINE_BODY(t_5, 1040); @@ -3998,7 +3998,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "RunImmediateMethods" ); - t_3 = NewFunction( NameFunc[2], 2, 0, HdlrFunc2 ); + t_3 = NewFunction( NameFunc[2], 2, ArgStringToList("obj,flags"), HdlrFunc2 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 28); @@ -4108,7 +4108,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "INSTALL_METHOD_FLAGS" ); - t_3 = NewFunction( NameFunc[3], 6, 0, HdlrFunc3 ); + t_3 = NewFunction( NameFunc[3], 6, ArgStringToList("opr,info,rel,flags,baserank,method"), HdlrFunc3 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 147); @@ -4123,7 +4123,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "InstallMethod" ); - t_3 = NewFunction( NameFunc[4], -1, 0, HdlrFunc4 ); + t_3 = NewFunction( NameFunc[4], -1, ArgStringToList("arg"), HdlrFunc4 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 338); @@ -4138,7 +4138,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "InstallOtherMethod" ); - t_3 = NewFunction( NameFunc[5], -1, 0, HdlrFunc5 ); + t_3 = NewFunction( NameFunc[5], -1, ArgStringToList("arg"), HdlrFunc5 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 365); @@ -4307,7 +4307,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "INSTALL_METHOD" ); - t_3 = NewFunction( NameFunc[6], 2, 0, HdlrFunc6 ); + t_3 = NewFunction( NameFunc[6], 2, ArgStringToList("arglist,check"), HdlrFunc6 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 378); @@ -4365,7 +4365,7 @@ static Obj HdlrFunc1 ( return; end ); */ t_1 = GF_InstallAttributeFunction; - t_2 = NewFunction( NameFunc[7], 6, 0, HdlrFunc7 ); + t_2 = NewFunction( NameFunc[7], 6, ArgStringToList("name,filter,getter,setter,tester,mutflag"), HdlrFunc7 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewFunctionBody(); SET_STARTLINE_BODY(t_3, 629); @@ -4379,7 +4379,7 @@ static Obj HdlrFunc1 ( return; end ); */ t_1 = GF_InstallAttributeFunction; - t_2 = NewFunction( NameFunc[9], 6, 0, HdlrFunc9 ); + t_2 = NewFunction( NameFunc[9], 6, ArgStringToList("name,filter,getter,setter,tester,mutflag"), HdlrFunc9 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewFunctionBody(); SET_STARTLINE_BODY(t_3, 696); @@ -4407,7 +4407,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "PositionSortedOddPositions" ); - t_3 = NewFunction( NameFunc[10], 2, 0, HdlrFunc10 ); + t_3 = NewFunction( NameFunc[10], 2, ArgStringToList("list,elm"), HdlrFunc10 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 715); @@ -4491,7 +4491,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "KeyDependentOperation" ); - t_3 = NewFunction( NameFunc[11], 4, 0, HdlrFunc11 ); + t_3 = NewFunction( NameFunc[11], 4, ArgStringToList("name,domreq,keyreq,keytest"), HdlrFunc11 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 864); @@ -4542,7 +4542,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "RedispatchOnCondition" ); - t_3 = NewFunction( NameFunc[17], -1, 0, HdlrFunc17 ); + t_3 = NewFunction( NameFunc[17], -1, ArgStringToList("arg"), HdlrFunc17 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 1010); diff --git a/src/c_type1.c b/src/c_type1.c index 7e5aad37b6..f609f68933 100644 --- a/src/c_type1.c +++ b/src/c_type1.c @@ -331,7 +331,7 @@ static Obj HdlrFunc3 ( CHECK_BOUND( t_5, "IS_OBJECT" ) SET_ELM_PLIST( t_4, 2, t_5 ); CHANGED_BAG( t_4 ); - t_5 = NewFunction( NameFunc[4], 2, 0, HdlrFunc4 ); + t_5 = NewFunction( NameFunc[4], 2, ArgStringToList("obj,val"), HdlrFunc4 ); SET_ENVI_FUNC( t_5, STATE(CurrLVars) ); t_6 = NewFunctionBody(); SET_STARTLINE_BODY(t_6, 40); @@ -2648,7 +2648,7 @@ static Obj HdlrFunc1 ( return; end ); */ t_1 = GF_InstallAttributeFunction; - t_2 = NewFunction( NameFunc[2], 6, 0, HdlrFunc2 ); + t_2 = NewFunction( NameFunc[2], 6, ArgStringToList("name,filter,getter,setter,tester,mutflag"), HdlrFunc2 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewFunctionBody(); SET_STARTLINE_BODY(t_3, 20); @@ -2677,7 +2677,7 @@ static Obj HdlrFunc1 ( return; end ); */ t_1 = GF_InstallAttributeFunction; - t_2 = NewFunction( NameFunc[3], 6, 0, HdlrFunc3 ); + t_2 = NewFunction( NameFunc[3], 6, ArgStringToList("name,filter,getter,setter,tester,mutflag"), HdlrFunc3 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewFunctionBody(); SET_STARTLINE_BODY(t_3, 32); @@ -2716,7 +2716,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NEW_FAMILY" ); - t_3 = NewFunction( NameFunc[5], 4, 0, HdlrFunc5 ); + t_3 = NewFunction( NameFunc[5], 4, ArgStringToList("typeOfFamilies,name,req_filter,imp_filter"), HdlrFunc5 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 92); @@ -2730,7 +2730,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily2" ); - t_3 = NewFunction( NameFunc[6], 2, 0, HdlrFunc6 ); + t_3 = NewFunction( NameFunc[6], 2, ArgStringToList("typeOfFamilies,name"), HdlrFunc6 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 146); @@ -2744,7 +2744,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily3" ); - t_3 = NewFunction( NameFunc[7], 3, 0, HdlrFunc7 ); + t_3 = NewFunction( NameFunc[7], 3, ArgStringToList("typeOfFamilies,name,req"), HdlrFunc7 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 154); @@ -2758,7 +2758,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily4" ); - t_3 = NewFunction( NameFunc[8], 4, 0, HdlrFunc8 ); + t_3 = NewFunction( NameFunc[8], 4, ArgStringToList("typeOfFamilies,name,req,imp"), HdlrFunc8 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 162); @@ -2772,7 +2772,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily5" ); - t_3 = NewFunction( NameFunc[9], 5, 0, HdlrFunc9 ); + t_3 = NewFunction( NameFunc[9], 5, ArgStringToList("typeOfFamilies,name,req,imp,filter"), HdlrFunc9 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 171); @@ -2797,7 +2797,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily" ); - t_3 = NewFunction( NameFunc[10], -1, 0, HdlrFunc10 ); + t_3 = NewFunction( NameFunc[10], -1, ArgStringToList("arg"), HdlrFunc10 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 179); @@ -2895,7 +2895,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NEW_TYPE" ); - t_3 = NewFunction( NameFunc[11], 5, 0, HdlrFunc11 ); + t_3 = NewFunction( NameFunc[11], 5, ArgStringToList("typeOfTypes,family,flags,data,parent"), HdlrFunc11 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 230); @@ -2909,7 +2909,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewType3" ); - t_3 = NewFunction( NameFunc[12], 3, 0, HdlrFunc12 ); + t_3 = NewFunction( NameFunc[12], 3, ArgStringToList("typeOfTypes,family,filter"), HdlrFunc12 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 351); @@ -2923,7 +2923,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewType4" ); - t_3 = NewFunction( NameFunc[13], 4, 0, HdlrFunc13 ); + t_3 = NewFunction( NameFunc[13], 4, ArgStringToList("typeOfTypes,family,filter,data"), HdlrFunc13 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 361); @@ -2948,7 +2948,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewType" ); - t_3 = NewFunction( NameFunc[14], -1, 0, HdlrFunc14 ); + t_3 = NewFunction( NameFunc[14], -1, ArgStringToList("arg"), HdlrFunc14 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 371); @@ -2962,7 +2962,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "Subtype2" ); - t_3 = NewFunction( NameFunc[15], 2, 0, HdlrFunc15 ); + t_3 = NewFunction( NameFunc[15], 2, ArgStringToList("type,filter"), HdlrFunc15 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 408); @@ -2976,7 +2976,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "Subtype3" ); - t_3 = NewFunction( NameFunc[16], 3, 0, HdlrFunc16 ); + t_3 = NewFunction( NameFunc[16], 3, ArgStringToList("type,filter,data"), HdlrFunc16 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 418); @@ -3004,7 +3004,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "Subtype" ); - t_3 = NewFunction( NameFunc[17], -1, 0, HdlrFunc17 ); + t_3 = NewFunction( NameFunc[17], -1, ArgStringToList("arg"), HdlrFunc17 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 429); @@ -3018,7 +3018,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SupType2" ); - t_3 = NewFunction( NameFunc[18], 2, 0, HdlrFunc18 ); + t_3 = NewFunction( NameFunc[18], 2, ArgStringToList("type,filter"), HdlrFunc18 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 465); @@ -3032,7 +3032,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SupType3" ); - t_3 = NewFunction( NameFunc[19], 3, 0, HdlrFunc19 ); + t_3 = NewFunction( NameFunc[19], 3, ArgStringToList("type,filter,data"), HdlrFunc19 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 475); @@ -3054,7 +3054,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SupType" ); - t_3 = NewFunction( NameFunc[20], -1, 0, HdlrFunc20 ); + t_3 = NewFunction( NameFunc[20], -1, ArgStringToList("arg"), HdlrFunc20 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 485); @@ -3068,7 +3068,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "FamilyType" ); - t_3 = NewFunction( NameFunc[21], 1, 0, HdlrFunc21 ); + t_3 = NewFunction( NameFunc[21], 1, ArgStringToList("K"), HdlrFunc21 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 513); @@ -3082,7 +3082,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "FlagsType" ); - t_3 = NewFunction( NameFunc[22], 1, 0, HdlrFunc22 ); + t_3 = NewFunction( NameFunc[22], 1, ArgStringToList("K"), HdlrFunc22 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 527); @@ -3096,7 +3096,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "DataType" ); - t_3 = NewFunction( NameFunc[23], 1, 0, HdlrFunc23 ); + t_3 = NewFunction( NameFunc[23], 1, ArgStringToList("K"), HdlrFunc23 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 543); @@ -3111,7 +3111,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SetDataType" ); - t_3 = NewFunction( NameFunc[24], 2, 0, HdlrFunc24 ); + t_3 = NewFunction( NameFunc[24], 2, ArgStringToList("K,data"), HdlrFunc24 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 545); @@ -3139,7 +3139,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "FlagsObj" ); - t_3 = NewFunction( NameFunc[25], 1, 0, HdlrFunc25 ); + t_3 = NewFunction( NameFunc[25], 1, ArgStringToList("obj"), HdlrFunc25 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 650); @@ -3153,7 +3153,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "DataObj" ); - t_3 = NewFunction( NameFunc[26], 1, 0, HdlrFunc26 ); + t_3 = NewFunction( NameFunc[26], 1, ArgStringToList("obj"), HdlrFunc26 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 664); @@ -3211,7 +3211,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "Objectify" ); - t_3 = NewFunction( NameFunc[27], 2, 0, HdlrFunc27 ); + t_3 = NewFunction( NameFunc[27], 2, ArgStringToList("type,obj"), HdlrFunc27 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 685); @@ -3243,7 +3243,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SetFilterObj" ); - t_3 = NewFunction( NameFunc[28], 2, 0, HdlrFunc28 ); + t_3 = NewFunction( NameFunc[28], 2, ArgStringToList("obj,filter"), HdlrFunc28 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 742); @@ -3276,7 +3276,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "ResetFilterObj" ); - t_3 = NewFunction( NameFunc[29], 2, 0, HdlrFunc29 ); + t_3 = NewFunction( NameFunc[29], 2, ArgStringToList("obj,filter"), HdlrFunc29 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 784); @@ -3361,7 +3361,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "ObjectifyWithAttributes" ); - t_3 = NewFunction( NameFunc[30], -1, 0, HdlrFunc30 ); + t_3 = NewFunction( NameFunc[30], -1, ArgStringToList("arg"), HdlrFunc30 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 848); diff --git a/src/compiler.c b/src/compiler.c index c1dc414d5b..4123a4b94a 100644 --- a/src/compiler.c +++ b/src/compiler.c @@ -1130,7 +1130,22 @@ static CVar CompFuncExpr(Expr expr) func = CVAR_TEMP( NewTemp( "func" ) ); /* make the function (all the pieces are in global variables) */ - Emit( "%c = NewFunction( NameFunc[%d], %d, 0", func, nr, NARG_FUNC(fexp) ); + Int narg = NARG_FUNC(fexp); + Emit( "%c = NewFunction( NameFunc[%d], %d", func, nr, narg ); + if (narg != 0) { + Obj nams = NAMS_FUNC(fexp); + if (narg < 0) + narg = -narg; + Emit( ", ArgStringToList(\"" ); + Emit( "%g", ELM_PLIST(nams, 1) ); + for (Int i = 2; i <= narg; i++) { + Emit( ",%g", ELM_PLIST(nams, i) ); + } + Emit( "\")" ); + } + else { + Emit( ", 0" ); + } Emit( ", HdlrFunc%d );\n", nr ); /* this should probably be done by 'NewFunction' */ diff --git a/src/hpc/c_oper1.c b/src/hpc/c_oper1.c index d22fbe8515..b378e5d615 100644 --- a/src/hpc/c_oper1.c +++ b/src/hpc/c_oper1.c @@ -2787,7 +2787,7 @@ static Obj HdlrFunc7 ( SET_LEN_PLIST( t_5, 1 ); SET_ELM_PLIST( t_5, 1, l_cats ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[8], 1, 0, HdlrFunc8 ); + t_6 = NewFunction( NameFunc[8], 1, ArgStringToList("obj"), HdlrFunc8 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 671); @@ -3353,7 +3353,7 @@ static Obj HdlrFunc11 ( fi; return; end; */ - t_1 = NewFunction( NameFunc[12], 1, 0, HdlrFunc12 ); + t_1 = NewFunction( NameFunc[12], 1, ArgStringToList("key"), HdlrFunc12 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 868); @@ -3432,7 +3432,7 @@ static Obj HdlrFunc11 ( SET_LEN_PLIST( t_5, 1 ); SET_ELM_PLIST( t_5, 1, a_domreq ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[13], 1, 0, HdlrFunc13 ); + t_6 = NewFunction( NameFunc[13], 1, ArgStringToList("D"), HdlrFunc13 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 889); @@ -3506,7 +3506,7 @@ static Obj HdlrFunc11 ( CHANGED_BAG( t_5 ); SET_ELM_PLIST( t_5, 2, a_keyreq ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[14], 2, 0, HdlrFunc14 ); + t_6 = NewFunction( NameFunc[14], 2, ArgStringToList("D,key"), HdlrFunc14 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 911); @@ -3554,7 +3554,7 @@ static Obj HdlrFunc11 ( CHANGED_BAG( t_5 ); SET_ELM_PLIST( t_5, 2, a_keyreq ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[15], 2, 0, HdlrFunc15 ); + t_6 = NewFunction( NameFunc[15], 2, ArgStringToList("D,key"), HdlrFunc15 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 944); @@ -3615,7 +3615,7 @@ static Obj HdlrFunc11 ( CHECK_BOUND( t_6, "IS_OBJECT" ) SET_ELM_PLIST( t_5, 3, t_6 ); CHANGED_BAG( t_5 ); - t_6 = NewFunction( NameFunc[16], 3, 0, HdlrFunc16 ); + t_6 = NewFunction( NameFunc[16], 3, ArgStringToList("D,key,obj"), HdlrFunc16 ); SET_ENVI_FUNC( t_6, STATE(CurrLVars) ); t_7 = NewFunctionBody(); SET_STARTLINE_BODY(t_7, 961); @@ -3977,7 +3977,7 @@ static Obj HdlrFunc17 ( CHECK_BOUND( l_fampred, "fampred" ) t_3 = OBJ_LVAR( 2 ); CHECK_BOUND( t_3, "reqs" ) - t_4 = NewFunction( NameFunc[18], -1, 0, HdlrFunc18 ); + t_4 = NewFunction( NameFunc[18], -1, ArgStringToList("arg"), HdlrFunc18 ); SET_ENVI_FUNC( t_4, STATE(CurrLVars) ); t_5 = NewFunctionBody(); SET_STARTLINE_BODY(t_5, 1040); @@ -4073,7 +4073,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "RunImmediateMethods" ); - t_3 = NewFunction( NameFunc[2], 2, 0, HdlrFunc2 ); + t_3 = NewFunction( NameFunc[2], 2, ArgStringToList("obj,flags"), HdlrFunc2 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 28); @@ -4193,7 +4193,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "INSTALL_METHOD_FLAGS" ); - t_3 = NewFunction( NameFunc[3], 6, 0, HdlrFunc3 ); + t_3 = NewFunction( NameFunc[3], 6, ArgStringToList("opr,info,rel,flags,baserank,method"), HdlrFunc3 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 147); @@ -4208,7 +4208,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "InstallMethod" ); - t_3 = NewFunction( NameFunc[4], -1, 0, HdlrFunc4 ); + t_3 = NewFunction( NameFunc[4], -1, ArgStringToList("arg"), HdlrFunc4 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 338); @@ -4223,7 +4223,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "InstallOtherMethod" ); - t_3 = NewFunction( NameFunc[5], -1, 0, HdlrFunc5 ); + t_3 = NewFunction( NameFunc[5], -1, ArgStringToList("arg"), HdlrFunc5 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 365); @@ -4392,7 +4392,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "INSTALL_METHOD" ); - t_3 = NewFunction( NameFunc[6], 2, 0, HdlrFunc6 ); + t_3 = NewFunction( NameFunc[6], 2, ArgStringToList("arglist,check"), HdlrFunc6 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 378); @@ -4450,7 +4450,7 @@ static Obj HdlrFunc1 ( return; end ); */ t_1 = GF_InstallAttributeFunction; - t_2 = NewFunction( NameFunc[7], 6, 0, HdlrFunc7 ); + t_2 = NewFunction( NameFunc[7], 6, ArgStringToList("name,filter,getter,setter,tester,mutflag"), HdlrFunc7 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewFunctionBody(); SET_STARTLINE_BODY(t_3, 629); @@ -4464,7 +4464,7 @@ static Obj HdlrFunc1 ( return; end ); */ t_1 = GF_InstallAttributeFunction; - t_2 = NewFunction( NameFunc[9], 6, 0, HdlrFunc9 ); + t_2 = NewFunction( NameFunc[9], 6, ArgStringToList("name,filter,getter,setter,tester,mutflag"), HdlrFunc9 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewFunctionBody(); SET_STARTLINE_BODY(t_3, 696); @@ -4492,7 +4492,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "PositionSortedOddPositions" ); - t_3 = NewFunction( NameFunc[10], 2, 0, HdlrFunc10 ); + t_3 = NewFunction( NameFunc[10], 2, ArgStringToList("list,elm"), HdlrFunc10 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 715); @@ -4576,7 +4576,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "KeyDependentOperation" ); - t_3 = NewFunction( NameFunc[11], 4, 0, HdlrFunc11 ); + t_3 = NewFunction( NameFunc[11], 4, ArgStringToList("name,domreq,keyreq,keytest"), HdlrFunc11 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 864); @@ -4627,7 +4627,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "RedispatchOnCondition" ); - t_3 = NewFunction( NameFunc[17], -1, 0, HdlrFunc17 ); + t_3 = NewFunction( NameFunc[17], -1, ArgStringToList("arg"), HdlrFunc17 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 1010); diff --git a/src/hpc/c_type1.c b/src/hpc/c_type1.c index f3fa215e93..33bb09d59d 100644 --- a/src/hpc/c_type1.c +++ b/src/hpc/c_type1.c @@ -370,7 +370,7 @@ static Obj HdlrFunc3 ( CHECK_BOUND( t_5, "IS_OBJECT" ) SET_ELM_PLIST( t_4, 2, t_5 ); CHANGED_BAG( t_4 ); - t_5 = NewFunction( NameFunc[4], 2, 0, HdlrFunc4 ); + t_5 = NewFunction( NameFunc[4], 2, ArgStringToList("obj,val"), HdlrFunc4 ); SET_ENVI_FUNC( t_5, STATE(CurrLVars) ); t_6 = NewFunctionBody(); SET_STARTLINE_BODY(t_6, 40); @@ -2887,7 +2887,7 @@ static Obj HdlrFunc1 ( return; end ); */ t_1 = GF_InstallAttributeFunction; - t_2 = NewFunction( NameFunc[2], 6, 0, HdlrFunc2 ); + t_2 = NewFunction( NameFunc[2], 6, ArgStringToList("name,filter,getter,setter,tester,mutflag"), HdlrFunc2 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewFunctionBody(); SET_STARTLINE_BODY(t_3, 20); @@ -2916,7 +2916,7 @@ static Obj HdlrFunc1 ( return; end ); */ t_1 = GF_InstallAttributeFunction; - t_2 = NewFunction( NameFunc[3], 6, 0, HdlrFunc3 ); + t_2 = NewFunction( NameFunc[3], 6, ArgStringToList("name,filter,getter,setter,tester,mutflag"), HdlrFunc3 ); SET_ENVI_FUNC( t_2, STATE(CurrLVars) ); t_3 = NewFunctionBody(); SET_STARTLINE_BODY(t_3, 32); @@ -2963,7 +2963,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NEW_FAMILY" ); - t_3 = NewFunction( NameFunc[5], 4, 0, HdlrFunc5 ); + t_3 = NewFunction( NameFunc[5], 4, ArgStringToList("typeOfFamilies,name,req_filter,imp_filter"), HdlrFunc5 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 92); @@ -2977,7 +2977,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily2" ); - t_3 = NewFunction( NameFunc[6], 2, 0, HdlrFunc6 ); + t_3 = NewFunction( NameFunc[6], 2, ArgStringToList("typeOfFamilies,name"), HdlrFunc6 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 146); @@ -2991,7 +2991,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily3" ); - t_3 = NewFunction( NameFunc[7], 3, 0, HdlrFunc7 ); + t_3 = NewFunction( NameFunc[7], 3, ArgStringToList("typeOfFamilies,name,req"), HdlrFunc7 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 154); @@ -3005,7 +3005,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily4" ); - t_3 = NewFunction( NameFunc[8], 4, 0, HdlrFunc8 ); + t_3 = NewFunction( NameFunc[8], 4, ArgStringToList("typeOfFamilies,name,req,imp"), HdlrFunc8 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 162); @@ -3019,7 +3019,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily5" ); - t_3 = NewFunction( NameFunc[9], 5, 0, HdlrFunc9 ); + t_3 = NewFunction( NameFunc[9], 5, ArgStringToList("typeOfFamilies,name,req,imp,filter"), HdlrFunc9 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 171); @@ -3044,7 +3044,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewFamily" ); - t_3 = NewFunction( NameFunc[10], -1, 0, HdlrFunc10 ); + t_3 = NewFunction( NameFunc[10], -1, ArgStringToList("arg"), HdlrFunc10 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 179); @@ -3143,7 +3143,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NEW_TYPE" ); - t_3 = NewFunction( NameFunc[11], 5, 0, HdlrFunc11 ); + t_3 = NewFunction( NameFunc[11], 5, ArgStringToList("typeOfTypes,family,flags,data,parent"), HdlrFunc11 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 230); @@ -3157,7 +3157,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewType3" ); - t_3 = NewFunction( NameFunc[12], 3, 0, HdlrFunc12 ); + t_3 = NewFunction( NameFunc[12], 3, ArgStringToList("typeOfTypes,family,filter"), HdlrFunc12 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 351); @@ -3171,7 +3171,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewType4" ); - t_3 = NewFunction( NameFunc[13], 4, 0, HdlrFunc13 ); + t_3 = NewFunction( NameFunc[13], 4, ArgStringToList("typeOfTypes,family,filter,data"), HdlrFunc13 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 361); @@ -3196,7 +3196,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "NewType" ); - t_3 = NewFunction( NameFunc[14], -1, 0, HdlrFunc14 ); + t_3 = NewFunction( NameFunc[14], -1, ArgStringToList("arg"), HdlrFunc14 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 371); @@ -3210,7 +3210,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "Subtype2" ); - t_3 = NewFunction( NameFunc[15], 2, 0, HdlrFunc15 ); + t_3 = NewFunction( NameFunc[15], 2, ArgStringToList("type,filter"), HdlrFunc15 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 408); @@ -3224,7 +3224,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "Subtype3" ); - t_3 = NewFunction( NameFunc[16], 3, 0, HdlrFunc16 ); + t_3 = NewFunction( NameFunc[16], 3, ArgStringToList("type,filter,data"), HdlrFunc16 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 418); @@ -3252,7 +3252,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "Subtype" ); - t_3 = NewFunction( NameFunc[17], -1, 0, HdlrFunc17 ); + t_3 = NewFunction( NameFunc[17], -1, ArgStringToList("arg"), HdlrFunc17 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 429); @@ -3266,7 +3266,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SupType2" ); - t_3 = NewFunction( NameFunc[18], 2, 0, HdlrFunc18 ); + t_3 = NewFunction( NameFunc[18], 2, ArgStringToList("type,filter"), HdlrFunc18 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 465); @@ -3280,7 +3280,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SupType3" ); - t_3 = NewFunction( NameFunc[19], 3, 0, HdlrFunc19 ); + t_3 = NewFunction( NameFunc[19], 3, ArgStringToList("type,filter,data"), HdlrFunc19 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 475); @@ -3302,7 +3302,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SupType" ); - t_3 = NewFunction( NameFunc[20], -1, 0, HdlrFunc20 ); + t_3 = NewFunction( NameFunc[20], -1, ArgStringToList("arg"), HdlrFunc20 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 485); @@ -3316,7 +3316,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "FamilyType" ); - t_3 = NewFunction( NameFunc[21], 1, 0, HdlrFunc21 ); + t_3 = NewFunction( NameFunc[21], 1, ArgStringToList("K"), HdlrFunc21 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 513); @@ -3330,7 +3330,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "FlagsType" ); - t_3 = NewFunction( NameFunc[22], 1, 0, HdlrFunc22 ); + t_3 = NewFunction( NameFunc[22], 1, ArgStringToList("K"), HdlrFunc22 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 527); @@ -3344,7 +3344,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "DataType" ); - t_3 = NewFunction( NameFunc[23], 1, 0, HdlrFunc23 ); + t_3 = NewFunction( NameFunc[23], 1, ArgStringToList("K"), HdlrFunc23 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 543); @@ -3359,7 +3359,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SetDataType" ); - t_3 = NewFunction( NameFunc[24], 2, 0, HdlrFunc24 ); + t_3 = NewFunction( NameFunc[24], 2, ArgStringToList("K,data"), HdlrFunc24 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 545); @@ -3387,7 +3387,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "FlagsObj" ); - t_3 = NewFunction( NameFunc[25], 1, 0, HdlrFunc25 ); + t_3 = NewFunction( NameFunc[25], 1, ArgStringToList("obj"), HdlrFunc25 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 650); @@ -3401,7 +3401,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "DataObj" ); - t_3 = NewFunction( NameFunc[26], 1, 0, HdlrFunc26 ); + t_3 = NewFunction( NameFunc[26], 1, ArgStringToList("obj"), HdlrFunc26 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 664); @@ -3474,7 +3474,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "Objectify" ); - t_3 = NewFunction( NameFunc[27], 2, 0, HdlrFunc27 ); + t_3 = NewFunction( NameFunc[27], 2, ArgStringToList("type,obj"), HdlrFunc27 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 685); @@ -3506,7 +3506,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "SetFilterObj" ); - t_3 = NewFunction( NameFunc[28], 2, 0, HdlrFunc28 ); + t_3 = NewFunction( NameFunc[28], 2, ArgStringToList("obj,filter"), HdlrFunc28 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 742); @@ -3539,7 +3539,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "ResetFilterObj" ); - t_3 = NewFunction( NameFunc[29], 2, 0, HdlrFunc29 ); + t_3 = NewFunction( NameFunc[29], 2, ArgStringToList("obj,filter"), HdlrFunc29 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 784); @@ -3624,7 +3624,7 @@ static Obj HdlrFunc1 ( end ); */ t_1 = GF_BIND__GLOBAL; t_2 = MakeString( "ObjectifyWithAttributes" ); - t_3 = NewFunction( NameFunc[30], -1, 0, HdlrFunc30 ); + t_3 = NewFunction( NameFunc[30], -1, ArgStringToList("arg"), HdlrFunc30 ); SET_ENVI_FUNC( t_3, STATE(CurrLVars) ); t_4 = NewFunctionBody(); SET_STARTLINE_BODY(t_4, 848); diff --git a/tst/test-compile/basics.g.dynamic.c b/tst/test-compile/basics.g.dynamic.c index 6f5e086f33..9ec54d64f6 100644 --- a/tst/test-compile/basics.g.dynamic.c +++ b/tst/test-compile/basics.g.dynamic.c @@ -205,7 +205,7 @@ static Obj HdlrFunc3 ( /* vararg_fun := function ( args... ) return Length( args ); end; */ - t_1 = NewFunction( NameFunc[4], -1, 0, HdlrFunc4 ); + t_1 = NewFunction( NameFunc[4], -1, ArgStringToList("args"), HdlrFunc4 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 40); @@ -332,7 +332,7 @@ static Obj HdlrFunc3 ( Display( Length( args ) ); return; end; */ - t_1 = NewFunction( NameFunc[5], -1, 0, HdlrFunc5 ); + t_1 = NewFunction( NameFunc[5], -1, ArgStringToList("args"), HdlrFunc5 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 71); diff --git a/tst/test-compile/basics.g.static.c b/tst/test-compile/basics.g.static.c index 5ba18570fe..03c21e52b1 100644 --- a/tst/test-compile/basics.g.static.c +++ b/tst/test-compile/basics.g.static.c @@ -205,7 +205,7 @@ static Obj HdlrFunc3 ( /* vararg_fun := function ( args... ) return Length( args ); end; */ - t_1 = NewFunction( NameFunc[4], -1, 0, HdlrFunc4 ); + t_1 = NewFunction( NameFunc[4], -1, ArgStringToList("args"), HdlrFunc4 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 40); @@ -332,7 +332,7 @@ static Obj HdlrFunc3 ( Display( Length( args ) ); return; end; */ - t_1 = NewFunction( NameFunc[5], -1, 0, HdlrFunc5 ); + t_1 = NewFunction( NameFunc[5], -1, ArgStringToList("args"), HdlrFunc5 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 71); diff --git a/tst/test-compile/function_types.g.dynamic.c b/tst/test-compile/function_types.g.dynamic.c index 5a75bdf46f..103ce22162 100644 --- a/tst/test-compile/function_types.g.dynamic.c +++ b/tst/test-compile/function_types.g.dynamic.c @@ -371,7 +371,7 @@ static Obj HdlrFunc1 ( Print( "f1:", a, "\n" ); return; end; */ - t_1 = NewFunction( NameFunc[2], 1, 0, HdlrFunc2 ); + t_1 = NewFunction( NameFunc[2], 1, ArgStringToList("a"), HdlrFunc2 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 1); @@ -384,7 +384,7 @@ static Obj HdlrFunc1 ( Print( "f2:", a, ":", b, "\n" ); return; end; */ - t_1 = NewFunction( NameFunc[3], 2, 0, HdlrFunc3 ); + t_1 = NewFunction( NameFunc[3], 2, ArgStringToList("a,b"), HdlrFunc3 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 5); @@ -397,7 +397,7 @@ static Obj HdlrFunc1 ( Print( "f3:", a, "\n" ); return; end; */ - t_1 = NewFunction( NameFunc[4], -1, 0, HdlrFunc4 ); + t_1 = NewFunction( NameFunc[4], -1, ArgStringToList("a"), HdlrFunc4 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 9); @@ -410,7 +410,7 @@ static Obj HdlrFunc1 ( Print( "f4:", a, ":", b, "\n" ); return; end; */ - t_1 = NewFunction( NameFunc[5], -2, 0, HdlrFunc5 ); + t_1 = NewFunction( NameFunc[5], -2, ArgStringToList("a,b"), HdlrFunc5 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 13); diff --git a/tst/test-compile/function_types.g.static.c b/tst/test-compile/function_types.g.static.c index 5d6a7e3620..aa8f459f93 100644 --- a/tst/test-compile/function_types.g.static.c +++ b/tst/test-compile/function_types.g.static.c @@ -371,7 +371,7 @@ static Obj HdlrFunc1 ( Print( "f1:", a, "\n" ); return; end; */ - t_1 = NewFunction( NameFunc[2], 1, 0, HdlrFunc2 ); + t_1 = NewFunction( NameFunc[2], 1, ArgStringToList("a"), HdlrFunc2 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 1); @@ -384,7 +384,7 @@ static Obj HdlrFunc1 ( Print( "f2:", a, ":", b, "\n" ); return; end; */ - t_1 = NewFunction( NameFunc[3], 2, 0, HdlrFunc3 ); + t_1 = NewFunction( NameFunc[3], 2, ArgStringToList("a,b"), HdlrFunc3 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 5); @@ -397,7 +397,7 @@ static Obj HdlrFunc1 ( Print( "f3:", a, "\n" ); return; end; */ - t_1 = NewFunction( NameFunc[4], -1, 0, HdlrFunc4 ); + t_1 = NewFunction( NameFunc[4], -1, ArgStringToList("a"), HdlrFunc4 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 9); @@ -410,7 +410,7 @@ static Obj HdlrFunc1 ( Print( "f4:", a, ":", b, "\n" ); return; end; */ - t_1 = NewFunction( NameFunc[5], -2, 0, HdlrFunc5 ); + t_1 = NewFunction( NameFunc[5], -2, ArgStringToList("a,b"), HdlrFunc5 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 13); diff --git a/tst/test-compile/ranges.g.dynamic.c b/tst/test-compile/ranges.g.dynamic.c index 8d0e91c8f9..9f8d7c7e3f 100644 --- a/tst/test-compile/ranges.g.dynamic.c +++ b/tst/test-compile/ranges.g.dynamic.c @@ -236,7 +236,7 @@ static Obj HdlrFunc1 ( /* range2 := function ( a, b ) return [ a .. b ]; end; */ - t_1 = NewFunction( NameFunc[2], 2, 0, HdlrFunc2 ); + t_1 = NewFunction( NameFunc[2], 2, ArgStringToList("a,b"), HdlrFunc2 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 1); @@ -248,7 +248,7 @@ static Obj HdlrFunc1 ( /* range3 := function ( a, b, c ) return [ a, b .. c ]; end; */ - t_1 = NewFunction( NameFunc[3], 3, 0, HdlrFunc3 ); + t_1 = NewFunction( NameFunc[3], 3, ArgStringToList("a,b,c"), HdlrFunc3 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 2); diff --git a/tst/test-compile/ranges.g.static.c b/tst/test-compile/ranges.g.static.c index a99bf7d64d..812c62156c 100644 --- a/tst/test-compile/ranges.g.static.c +++ b/tst/test-compile/ranges.g.static.c @@ -236,7 +236,7 @@ static Obj HdlrFunc1 ( /* range2 := function ( a, b ) return [ a .. b ]; end; */ - t_1 = NewFunction( NameFunc[2], 2, 0, HdlrFunc2 ); + t_1 = NewFunction( NameFunc[2], 2, ArgStringToList("a,b"), HdlrFunc2 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 1); @@ -248,7 +248,7 @@ static Obj HdlrFunc1 ( /* range3 := function ( a, b, c ) return [ a, b .. c ]; end; */ - t_1 = NewFunction( NameFunc[3], 3, 0, HdlrFunc3 ); + t_1 = NewFunction( NameFunc[3], 3, ArgStringToList("a,b,c"), HdlrFunc3 ); SET_ENVI_FUNC( t_1, STATE(CurrLVars) ); t_2 = NewFunctionBody(); SET_STARTLINE_BODY(t_2, 2); diff --git a/tst/testbugfix/2019-01-29-gac-arg-names.tst b/tst/testbugfix/2019-01-29-gac-arg-names.tst new file mode 100644 index 0000000000..270c95427c --- /dev/null +++ b/tst/testbugfix/2019-01-29-gac-arg-names.tst @@ -0,0 +1,3 @@ +# verify that gac preserve function argument names +gap> KeyDependentOperation; +function( name, domreq, keyreq, keytest ) ... end diff --git a/tst/testinstall/varargs.tst b/tst/testinstall/varargs.tst index 47a1ccefca..2f438b727a 100644 --- a/tst/testinstall/varargs.tst +++ b/tst/testinstall/varargs.tst @@ -83,11 +83,11 @@ function ( object... ) <> from src/gap.c:RETURN_FIRST end gap> Print(INSTALL_METHOD_FLAGS,"\n"); -function ( <>, <>, <>, <>, <>, <> ) +function ( opr, info, rel, flags, baserank, method ) <> from GAPROOT/lib/oper1.g:147 end gap> Display(InstallMethod); -function ( <>... ) +function ( arg... ) <> from GAPROOT/lib/oper1.g:338 end gap> [1..2];