Skip to content
8 changes: 4 additions & 4 deletions src/calls.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ void SET_NAME_FUNC(Obj func, Obj name)
FUNC(func)->name = name;
}

Char * NAMI_FUNC(Obj func, Int i)
Obj NAMI_FUNC(Obj func, Int i)
{
return CSTR_STRING(ELM_LIST(NAMS_FUNC(func),i));
return ELM_LIST(NAMS_FUNC(func),i);
}


Expand Down Expand Up @@ -1364,7 +1364,7 @@ void PrintFunction (
}
#endif
if ( NAMS_FUNC(func) != 0 )
Pr( "%I", (Int)NAMI_FUNC( func, (Int)i ), 0L );
Pr( "%H", (Int)NAMI_FUNC( func, (Int)i ), 0L );
else
Pr( "<<arg-%d>>", (Int)i, 0L );
if(isvarg && i == narg) {
Expand All @@ -1382,7 +1382,7 @@ void PrintFunction (
Pr("%>local ",0L,0L);
for ( i = 1; i <= nloc; i++ ) {
if ( NAMS_FUNC(func) != 0 )
Pr( "%I", (Int)NAMI_FUNC( func, (Int)(narg+i) ), 0L );
Pr( "%H", (Int)NAMI_FUNC( func, (Int)(narg+i) ), 0L );
else
Pr( "<<loc-%d>>", (Int)i, 0L );
if ( i != nloc ) Pr("%<, %>",0L,0L);
Expand Down
2 changes: 1 addition & 1 deletion src/calls.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ static inline Obj NAMS_FUNC(Obj func)
return CONST_FUNC(func)->namesOfLocals;
}

extern Char * NAMI_FUNC(Obj func, Int i);
extern Obj NAMI_FUNC(Obj func, Int i);

static inline Obj PROF_FUNC(Obj func)
{
Expand Down
77 changes: 37 additions & 40 deletions src/compiler.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ static Int compilerMagic1;
**
*V compilerMagic2 . . . . . . . . . . . . . . . . . . . . . current magic2
*/
static Char * compilerMagic2;
static Obj compilerMagic2;


/****************************************************************************
Expand Down Expand Up @@ -663,7 +663,6 @@ void Emit (
CVar cvar; /* C variable argument */
Char * string; /* string argument */
const Char * p; /* loop variable */
Char * q; /* loop variable */
const Char * hex = "0123456789ABCDEF";

/* are we in pass 2? */
Expand Down Expand Up @@ -695,36 +694,34 @@ void Emit (
Pr( "%d", dint, 0L );
}

/* emit a string */
else if ( *p == 's' ) {
// emit a C string
else if ( *p == 's' || *p == 'S' || *p == 'C' ) {
const Char f[] = { '%', *p, 0 };
string = va_arg( ap, Char* );
Pr( "%s", (Int)string, 0L );
Pr( f, (Int)string, 0L );
}

/* emit a string */
else if ( *p == 'S' ) {
string = va_arg( ap, Char* );
Pr( "%S", (Int)string, 0L );
}

/* emit a string */
else if ( *p == 'C' ) {
string = va_arg( ap, Char* );
Pr( "%C", (Int)string, 0L );
// emit a GAP string
else if ( *p == 'g' || *p == 'G' ) {
const Char f[] = { '%', *p, 0 };
Obj str = va_arg( ap, Obj );
Pr( f, (Int)str, 0L );
}

/* emit a name */
else if ( *p == 'n' ) {
string = va_arg( ap, Char* );
for ( q = string; *q != '\0'; q++ ) {
if ( IsAlpha(*q) || IsDigit(*q) ) {
Pr( "%c", (Int)(*q), 0L );
Obj str = va_arg( ap, Obj );
UInt i = 0;
Char c;
while ((c = CSTR_STRING(str)[i++])) {
if ( IsAlpha(c) || IsDigit(c) ) {
Pr( "%c", (Int)c, 0L );
}
else if ( *q == '_' ) {
else if ( c == '_' ) {
Pr( "__", 0L, 0L );
}
else {
Pr("_%c%c",hex[((UInt)*q)/16],hex[((UInt)*q)%16]);
Pr("_%c%c",hex[((UInt)c)/16],hex[((UInt)c)%16]);
}
}
}
Expand Down Expand Up @@ -814,11 +811,11 @@ void Emit (
*/
void CompCheckBound (
CVar obj,
Char * name )
Obj name )
{
if ( ! HasInfoCVar( obj, W_BOUND ) ) {
if ( CompCheckTypes ) {
Emit( "CHECK_BOUND( %c, \"%s\" )\n", obj, name );
Emit( "CHECK_BOUND( %c, \"%g\" )\n", obj, name );
}
SetInfoCVar( obj, W_BOUND );
}
Expand Down Expand Up @@ -5536,19 +5533,19 @@ void CompFunc (
*F CompileFunc( <output>, <func>, <name>, <magic1>, <magic2> ) . . . compile
*/
Int CompileFunc (
Char * output,
Obj output,
Obj func,
Char * name,
Obj name,
Int magic1,
Char * magic2 )
Obj magic2 )
{
Int i; /* loop variable */
Obj n; /* temporary */
UInt col;
UInt compFunctionsNr;

/* open the output file */
if ( ! OpenOutput( output ) ) {
if ( ! OpenOutput( CSTR_STRING(output) ) ) {
return 0;
}
col = SyNrCols;
Expand Down Expand Up @@ -5617,22 +5614,22 @@ Int CompileFunc (
Emit( "\n/* global variables used in handlers */\n" );
for ( i = 1; i < SIZE_OBJ(CompInfoGVar)/sizeof(UInt); i++ ) {
if ( CompGetUseGVar( i ) ) {
Emit( "G_%n = GVarName( \"%s\" );\n",
Emit( "G_%n = GVarName( \"%g\" );\n",
NameGVar(i), NameGVar(i) );
}
}
Emit( "\n/* record names used in handlers */\n" );
for ( i = 1; i < SIZE_OBJ(CompInfoRNam)/sizeof(UInt); i++ ) {
if ( CompGetUseRNam( i ) ) {
Emit( "R_%n = RNamName( \"%s\" );\n",
Emit( "R_%n = RNamName( \"%g\" );\n",
NAME_RNAM(i), NAME_RNAM(i) );
}
}
Emit( "\n/* information for the functions */\n" );
for ( i = 1; i <= compFunctionsNr; i++ ) {
n = NAME_FUNC(ELM_PLIST(CompFunctions,i));
if ( n != 0 && IsStringConv(n) ) {
Emit( "NameFunc[%d] = MakeImmString(\"%S\");\n", i, CSTR_STRING(n) );
Emit( "NameFunc[%d] = MakeImmString(\"%G\");\n", i, n );
}
else {
Emit( "NameFunc[%d] = 0;\n", i );
Expand All @@ -5650,21 +5647,21 @@ Int CompileFunc (
Emit( "\n/* global variables used in handlers */\n" );
for ( i = 1; i < SIZE_OBJ(CompInfoGVar)/sizeof(UInt); i++ ) {
if ( CompGetUseGVar( i ) & COMP_USE_GVAR_COPY ) {
Emit( "InitCopyGVar( \"%s\", &GC_%n );\n",
Emit( "InitCopyGVar( \"%g\", &GC_%n );\n",
NameGVar(i), NameGVar(i) );
}
if ( CompGetUseGVar( i ) & COMP_USE_GVAR_FOPY ) {
Emit( "InitFopyGVar( \"%s\", &GF_%n );\n",
Emit( "InitFopyGVar( \"%g\", &GF_%n );\n",
NameGVar(i), NameGVar(i) );
}
}
Emit( "\n/* information for the functions */\n" );
Emit( "InitGlobalBag( &FileName, \"%s:FileName(\"FILE_CRC\")\" );\n",
Emit( "InitGlobalBag( &FileName, \"%g:FileName(\"FILE_CRC\")\" );\n",
magic2 );
for ( i = 1; i <= compFunctionsNr; i++ ) {
Emit( "InitHandlerFunc( HdlrFunc%d, \"%s:HdlrFunc%d(\"FILE_CRC\")\" );\n",
Emit( "InitHandlerFunc( HdlrFunc%d, \"%g:HdlrFunc%d(\"FILE_CRC\")\" );\n",
i, compilerMagic2, i );
Emit( "InitGlobalBag( &(NameFunc[%d]), \"%s:NameFunc[%d](\"FILE_CRC\")\" );\n",
Emit( "InitGlobalBag( &(NameFunc[%d]), \"%g:NameFunc[%d](\"FILE_CRC\")\" );\n",
i, magic2, i );
n = NAME_FUNC(ELM_PLIST(CompFunctions,i));
}
Expand All @@ -5680,7 +5677,7 @@ Int CompileFunc (
Emit( "Obj body1;\n" );
Emit( "\n/* Complete Copy/Fopy registration */\n" );
Emit( "UpdateCopyFopyInfo();\n" );
Emit( "FileName = MakeImmString( \"%s\" );\n", magic2 );
Emit( "FileName = MakeImmString( \"%g\" );\n", magic2 );
Emit( "PostRestore(module);\n" );
Emit( "\n/* create all the functions defined in this module */\n" );
Emit( "func1 = NewFunction(NameFunc[1],%d,0,HdlrFunc1);\n", NARG_FUNC(ELM_PLIST(CompFunctions,1)) );
Expand All @@ -5697,13 +5694,13 @@ Int CompileFunc (
/* emit the initialization code */
Emit( "\n/* <name> returns the description of this module */\n" );
Emit( "static StructInitInfo module = {\n" );
if ( ! strcmp( "Init_Dynamic", name ) ) {
if ( ! strcmp( "Init_Dynamic", CSTR_STRING(name) ) ) {
Emit( ".type = MODULE_DYNAMIC,\n" );
}
else {
Emit( ".type = MODULE_STATIC,\n" );
}
Emit( ".name = \"%C\",\n", magic2 );
Emit( ".name = \"%g\",\n", magic2 );
Emit( ".crc = %d,\n", magic1 );
Emit( ".initKernel = InitKernel,\n" );
Emit( ".initLibrary = InitLibrary,\n" );
Expand Down Expand Up @@ -5800,8 +5797,8 @@ Obj FuncCOMPILE_FUNC (

/* compile the function */
nr = CompileFunc(
CSTR_STRING(output), func, CSTR_STRING(name),
INT_INTOBJ(magic1), CSTR_STRING(magic2) );
output, func, name,
INT_INTOBJ(magic1), magic2 );


/* return the result */
Expand Down
6 changes: 3 additions & 3 deletions src/compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
*F CompileFunc(<output>,<func>,<name>,<magic1>,<magic2>) . . . . . . compile
*/
extern Int CompileFunc (
Char * output,
Obj output,
Obj func,
Char * name,
Obj name,
Int magic1,
Char * magic2 );
Obj magic2 );


/****************************************************************************
Expand Down
4 changes: 2 additions & 2 deletions src/error.c
Original file line number Diff line number Diff line change
Expand Up @@ -181,11 +181,11 @@ Obj FuncPRINT_CURRENT_STATEMENT(Obj self, Obj context)
Obj filename = GET_FILENAME_BODY(body);
if (FIRST_STAT_TNUM <= type && type <= LAST_STAT_TNUM) {
PrintStat(call);
Pr(" at %s:%d", (UInt)CSTR_STRING(filename), LINE_STAT(call));
Pr(" at %g:%d", (Int)filename, LINE_STAT(call));
}
else if (FIRST_EXPR_TNUM <= type && type <= LAST_EXPR_TNUM) {
PrintExpr(call);
Pr(" at %s:%d", (UInt)CSTR_STRING(filename), LINE_STAT(call));
Pr(" at %g:%d", (Int)filename, LINE_STAT(call));
}
SWITCH_TO_OLD_LVARS(currLVars);
return 0;
Expand Down
2 changes: 1 addition & 1 deletion src/exprs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1791,7 +1791,7 @@ void PrintRecExpr1 (
/* print an ordinary record name */
tmp = ADDR_EXPR(expr)[2*i-2];
if ( IS_INTEXPR(tmp) ) {
Pr( "%I", (Int)NAME_RNAM( INT_INTEXPR(tmp) ), 0L );
Pr( "%H", (Int)NAME_RNAM( INT_INTEXPR(tmp) ), 0L );
}

/* print an evaluating record name */
Expand Down
6 changes: 3 additions & 3 deletions src/gap.c
Original file line number Diff line number Diff line change
Expand Up @@ -438,11 +438,11 @@ int realmain( int argc, char * argv[], char * environ[] )
func = READ_AS_FUNC();
crc = SyGAPCRC(SyCompileInput);
type = CompileFunc(
SyCompileOutput,
MakeImmString(SyCompileOutput),
func,
SyCompileName,
MakeImmString(SyCompileName),
crc,
SyCompileMagic1 );
MakeImmString(SyCompileMagic1) );
if ( type == 0 )
SyExit( 1 );
SyExit( 0 );
Expand Down
Loading