Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_FS_1_19910112 - c/kcc/csi.diffs
There are no other files named csi.diffs in the archive.
29-Nov-89 15:20:44-PST,1456;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Wed, 29 Nov 89 15:20:23 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891102)
	id AA00546; Wed, 29 Nov 89 18:19:37 -0500
Date: 29 Nov 89 16:39:26 EST
From: <[email protected]>
To: <[email protected]>
Subject: cc.dif
Message-Id: <"CSI 5676-18315"@CompuServe.COM>

44a\
#ifdef SYS_CSI				/* BLISS Profiler Stuff!   */\
int profiling = 0;			/* flag for BLISS profiler */\
\	\	\	\	\	/* added 09/15/89 by MVS   */\
int debug_ddt = 0;		/* flag to link DDT, sent to maktflink() */\
#endif

283a\
#ifdef SYS_CSI\
\ \ \ \ case 'g':			/* -g   Debugging:  link ddt.rel */\
\	\ \ \ \ debug_ddt = 1;		/* added 09/15/89 by MVS */\
\	\ \ \ \ break;\
#endif\


356a\
#ifdef SYS_CSI\
\ \ \ \ case 'p':			/* -p   Turn on Bliss Profiler (link locals)*/\
\	\ \ \ \ profiling = 1;		/* added 09/15/89 by MVS */\
\	\ \ \ \ break;\
#endif\


388,389c\
\	\ \ \ \ switch (s[1]) {\
\	\ \ \ \ case '0':   s++; nowarn = 0; break;\
\	\ \ \ \ case '1':	s++; nowarn = 1; break;\
\	\ \ \ \ case '2':	s++; nowarn = 2; break;\
\	\ \ \ \ case '3':	\
\	\ \ \ \ case '4':\
\	\ \ \ \ case '5':\
\	\ \ \ \ case '6':\
\	\ \ \ \ case '7':\
\	\ \ \ \ case '8':\
\	\ \ \ \ case '9':   s++;\
\	\ \ \ \ default :	     nowarn = 3; break;\
\	\ \ \ \ }\
\	\ \ \ \ break;

971c\
\	\	\ \ \ \ tline, secs, (int)((tline*60)/secs));


29-Nov-89 16:00:20-PST,832;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Wed, 29 Nov 89 16:00:09 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891102)
	id AA00582; Wed, 29 Nov 89 18:19:52 -0500
Date: 29 Nov 89 16:38:54 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccerr.dif
Message-Id: <"CSI 5676-18312"@CompuServe.COM>

44,45c\
\ \ \ \ if (nowarn < 1)\
\	context("[Note] ", fmt, ap);

51,52c\
\ \ \ \ if (nowarn < 2)\
\	context("[Advisory] ", fmt, ap);

58,59c\
\ \ \ \ if (nowarn < 3)\
\	context("[Warning] ", fmt, ap);

83c\
\ \ \ \ fprintf(stderr, "? KCC - %s\\n", errmak(fmt, ap));

87c\
\ \ \ \ fprintf(stderr, "? KCC - %s\\n", errmak(fmt, ap));

100c\
\ \ \ \ fprintf(stderr, "? KCC - Fatal error: %s\\n", errmak(fmt, ap));


29-Nov-89 16:04:13-PST,1432;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Wed, 29 Nov 89 16:03:55 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891102)
	id AA00513; Wed, 29 Nov 89 18:19:25 -0500
Date: 29 Nov 89 16:40:03 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccasmb.dif
Message-Id: <"CSI 5676-18317"@CompuServe.COM>

61a\
#ifdef SYS_CSI\
/* profiling flag,defined and  set in CC.C; added 09/15/89 by MVS */\
extern int profiling;\
/* flag to request linking of DDT.REL, set in CC.C, added by MVS */\
extern int debug_ddt;\
#endif\


579a\
#ifdef SYS_CSI\
\ \ \ \ if( profiling )				/* BLISS profiler stuff  */\
\	t = estrcpy(t, "/symseg:high\\n");	/* MVS, 09/15/89 */\
\
\ \ \ \ if( debug_ddt )				/* shall I link in DDT?  */\
\	t = estrcpy(t, "/test:DDT\\n");		/* added 09/15/89 by MVS */\
#endif\


616a\
\
#ifdef  SYS_CSI\
\	if (profiling)				/* for BLISS profiler */\
\	\ \ \ \ t = estrcpy(t, "/locals");		/* added 09/15/89 by MVS */\
#endif

619a\
#ifndef SYS_CSI		/* for now, let .REQUEST in macro code take\
\	\	\	** care of this: that helps EXECUT out.\
\	\	\	*/

621a\
#endif			/* COMMENT */

625,626c\
\ \ \ \ t = estrcpy(estrcpy(estrcpy(t, "\\n"), ofilename),\
#ifdef SYS_CSI\
\	\	\	\	\	\	\ \ \ \ \ \ "/SSAVE");\
#else\
\	\	\	\	\	\	\ \ \ \ \ \ "/SAVE");\
#endif	/* CSI */\
#endif	/* WTS */\



30-Nov-89 06:19:36-PST,1567;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Thu, 30 Nov 89 06:19:20 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891102)
	id AA08349; Thu, 30 Nov 89 09:19:17 -0500
Date: 30 Nov 89 08:56:06 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccout.dif
Message-Id: <"CSI 5678-910"@CompuServe.COM>

18a\
#ifdef SYS_CSI\
extern void flushcode();	/* CCCODE */\
extern int  profiling;		/* CC     */\
\ \ \ \ /* Profiling flag, set by CC.C; added 09/15/89 by MVS */\
#endif

31c\
#ifdef SYS_CSI\
void outprolog(), outepilog();  /* profiler functions: 9/15/89 by MVS */\
#endif

589a\
#ifdef SYS_CSI\
\ \ \ \ if (profiling)			/* profiling switch for CSI */\
\	cp = estrcpy(cp, "\\t.REQUIRE BLI:PROFIL.REL\\n");\
#endif			/* inserted for BLISS profiler, 9/29/89 MVS */\


623a\
#ifdef SYS_CSI				    /* PROF. for profiling */\
\ \ \ \ if (profiling)			    /* added 09/15/89 by MVS */\
\	cp = estrcpy(cp, "\\tOPDEF PROF. [37B8]\\n");\
#endif\


2093a\
\
#ifdef SYS_CSI\
/* OUTPROLOG - Output Profiler call from Function Prolog\
**	       added 09/15/89 by MVS\
*/\
\
void\
outprolog(s)\
SYMBOL *s;\
{\
\ \ \ \ fputs("\\tPROF.\\t0,", out);\
\ \ \ \ outmiref(s);\
}\
\
/* OUTEPILOG - Output Profiler call from Function Epilog\
**	       added 09/15/89 by MVS\
*/\
\
void\
outepilog(s)\
SYMBOL *s;\
{\
\ \ \ \ flushcode();\
\ \ \ \ fputs("\\tPROF.\\t1,", out);\
\ \ \ \ outmiref(s);\
\ \ \ \ putc('\\n', out);\
}\
#endif


 1-Dec-89 10:57:54-PST,5356;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Fri, 1 Dec 89 10:48:45 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891115)
	id AA24985; Fri, 1 Dec 89 13:45:16 -0500
Date: 01 Dec 89 12:09:35 EST
From: <[email protected]>
To: <[email protected]>
Subject: help with fortran linkage
Message-Id: <"CSI 5679-2881"@CompuServe.COM>

Ken,
    I better ask your help on this.  My fortran linkage apparently doesn't
work with your new register allocation scheme, and rather than try to figure
out why, I hope you can tell me how I should have done it in the first place.
This SED script applies to your new file, CCGEN2.C; it shows how I generate
a function call to  a fortran function.  The short description is, first
I push a dummy word onto the stack, then push the arguments in reverse 
order, then backpatch the argument into the dummy word, and finally point
Register 16 at the arg count word before doing the PUSHJ.  The awkward part
is specifying that I want Register 16 in particular...
					Michael
Cut here for SED script CCGEN2.SED:
______________________________________________________________________
33a\
#ifdef SYS_CSI\\\
extern SYMBOL *This_Fn;		/* for profiling, from CCGEN */\\\
extern int	profiling;	/* - added 09/20/89 by MVS - */\\\
extern void outepilog();	/* outepilog: see CCOUT.C    */\\\
#endif\\

52a\
#ifdef SYS_CSI\
static void emit_blissargs();\
static char *itoa();\
#endif

1670a\
/* ----------------------- */\
/*	function calls     */\
/* ----------------------- */\
\
#ifdef SYS_CSI\
/*\
\ * void emit_blissargs(NODE *)\
\ *\
\ * This little recursive function traverses a NODE tree\
\ * and generates calles to gfnarg() such as to emit pushes\
\ * for a function's arguments in the reverse of the usual order.\
\ */\
\
static void			/* emit fn args in reverse order */\
emit_blissargs(NODE *l)\
{ if( l )\
\ \ \ \ if( l->Nop == N_EXPRLIST ) {\
\ \ \ \ \ \ emit_blissargs(l->Nleft);\
\ \ \ \ \ \ gfnarg(l->Nright);\
\ \ \ \ } else\
\ \ \ \ \ \ gfnarg(l);\
}\
\
/*\
\ * char * itoa ( int i, int b )\
\ *\
\ * Returns a string representation of int 'in' represented in base 'b';\
\ * String is generated in static char array 'a', and overwritten on\
\ * subsequent calls.  Works for b <= 10.\
\ */\
\
static char *\
itoa(in, b)			/* return stringified int */\
{   static char a[38];    /* no int string will be longer than this */\
\ \ \ \ static int  j = 0;			/* array index */\
\ \ \ \ int left, rootcall = (j == 0);\
\ \ \
\ \ \ \ if( rootcall )\
\	if( in < 0 )\
\	{   a[j++] = '-';\
\	\ \ \ \ in    =  -in;\
\	} else\
\	\ \ \ \ a[j++] = ' ';\
\ \ \
\ \ \ \ if( (left = in / b) > 0 )\
\	itoa(left, b);\
\
\ \ \ \ a[j++] = (in % b) + '0';\
\ \ \ \ if( rootcall )\
\ \ \ \ {   a[j] = '\\0';\
\	j = 0;\
\ \ \ \ }\
\ \ \ \ return(&a);\
}\
#endif\


1721c\
\
#ifdef  SYS_CSI\
\ \ \ \ /* NOTE: profiling precludes tail recursion: MVS 09/20/89 */\
\ \ \ \ if (!profiling)			/* for BLISS profiler */\
#endif\
\ \ \ \ \ \ if (narg == 0 && (n->Nflag & NF_RETEXPR)) {

1723a\
\
#ifdef  SYS_CSI\
\	if (profiling)			/* for BLISS profiler */\
\	\ \ \ \ outepilog(This_Fn);		/* added by MVS, 09/20/89 */\
#endif

1733c\
\
#ifdef SYS_CSI\
\ \ \ \ /*\
\ \ \ \ \ * Choose BLISS, FORTRAN or C function argument linkage!\
\ \ \ \ \ */\
\ \ \ \ if( n->Nleft->Nid->Sflags & TF_BLISS )	   /* this is a BLISS fn */\
\ \ \ \ \ \ emit_blissargs(l);\
\ \ \ \ else if( n->Nleft->Nid->Sflags & TF_FORTRAN )  /* ...or a FORTRAN fn */\
\ \ \ \ {\
\ \ \ \ \ \ code5(P_PUSH, R_SP);		/* make room for one extra arg */\
\ \ \ \ \ \ stackoffset++;\
\ \ \ \ \ \ emit_blissargs(l);		/* now push args in BLISS order */\
\ \ \ \ }\
\ \ \ \ else				/* ...No, it's a C fn */\
#endif	\
\ \ \ \ \ \ while (l != NULL) {

1741c\
\ \ \ \ \ \ }

1749a\
#ifdef SYS_CSI\
\ \ \ \ if( n->Nleft->Nid->Sflags & TF_FORTRAN )  /* for a FORTRAN fn */    \
\ \ \ \ { static char *copyn  = "\\tHRLZI\\t16, ";\
\ \ \ \ \ \ static char *moven  = "\\tMOVEM\\t16, ";\
\ \ \ \ \ \ static char *movep  = "\\tMOVEI\\t16, ";\
\ \ \ \ \ \ char        *argn   = itoa(narg+1, 8);\
\ \ \ \ \ \ \
\ \ \ \ \ \ codestr(copyn, strlen(copyn));	/* save stack arg word count */\
\ \ \ \ \ \ codestr(argn,  strlen(argn));	/* in extra stack position   */\
\ \ \ \ \ \ codestr("\\n", 1);			/* just below regular args   */\
\ \ \ \ \ \ codestr(moven, strlen(moven));\
\ \ \ \ \ \ codestr(argn,  strlen(argn));\
\ \ \ \ \ \ codestr("(17)\\n", 5);\
\ \ \ \ \ \ argn = itoa(narg+2, 8);\
\ \ \ \ \ \ codestr(movep, strlen(movep));\
\ \ \ \ \ \ codestr(argn,  strlen(argn));\
\ \ \ \ \ \ codestr("(17)\\n", 5);\
\ \ \ \ }\
#endif

1767a\
#ifdef SYS_CSI\
\ \ \ \ if( n->Nleft->Nid->Sflags & TF_FORTRAN )  /* for a FORTRAN fn */    \
\ \ \ \ { char *mov1 = "\\tMOVE\\t2, 1\\n";\
\ \ \ \ \ \ char *mov2 = "\\tMOVE\\t1, 0\\n";\
\ \ \ \ \ \ char *set0 = "\\tSETZ\\t0,  \\n";\
\ \ \ \ \ \ \
\ \ \ \ \ \ if( siz == 2 )			/* FORTRAN functions will return */\
\ \ \ \ \ \ \ \ \ \ codestr(mov1, strlen(mov1));	/* values in registers 0(1)	 */\
\ \ \ \ \ \ codestr(mov2, strlen(mov2));	/* instead of in registers 1(2)  */\
\ \ \ \ \ \ codestr(set0, strlen(set0));\
\ \ \ \ }\
#endif


 4-Dec-89 10:50:18-PST,4590;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 10:40:38 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA15218; Mon, 4 Dec 89 13:12:33 -0500
Date: 04 Dec 89 11:03:42 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccgen2.dif (resend)
Message-Id: <"CSI 5679-10931"@CompuServe.COM>

14a\
#include <string.h>

33a\
\
#ifdef SYS_CSI\
extern SYMBOL *This_Fn;		/* for profiling, from CCGEN */\
extern int	profiling;	/* - added 09/20/89 by MVS - */\
extern void outepilog();	/* outepilog: see CCOUT.C    */\
#endif\


52a\
#ifdef SYS_CSI\
static void emit_blissargs();\
static char *itoa();\
#endif

1670a\
/* ----------------------- */\
/*	function calls     */\
/* ----------------------- */\
\
#ifdef SYS_CSI\
/*\
\ * void emit_blissargs(NODE *)\
\ *\
\ * This little recursive function traverses a NODE tree\
\ * and generates calles to gfnarg() such as to emit pushes\
\ * for a function's arguments in the reverse of the usual order.\
\ */\
\
static void			/* emit fn args in reverse order */\
emit_blissargs(NODE *l)\
{ if( l )\
\ \ \ \ if( l->Nop == N_EXPRLIST ) {\
\ \ \ \ \ \ emit_blissargs(l->Nleft);\
\ \ \ \ \ \ gfnarg(l->Nright);\
\ \ \ \ } else\
\ \ \ \ \ \ gfnarg(l);\
}\
\
/*\
\ * char * itoa ( int i, int b )\
\ *\
\ * Returns a string representation of int 'in' represented in base 'b';\
\ * String is generated in static char array 'a', and overwritten on\
\ * subsequent calls.  Works for b <= 10.\
\ */\
\
static char *\
itoa(in, b)			/* return stringified int */\
{   static char a[38];    /* no int string will be longer than this */\
\ \ \ \ static int  j = 0;			/* array index */\
\ \ \ \ int left, rootcall = (j == 0);\
\ \ \
\ \ \ \ if( rootcall )\
\	if( in < 0 )\
\	{   a[j++] = '-';\
\	\ \ \ \ in    =  -in;\
\	} else\
\	\ \ \ \ a[j++] = ' ';\
\ \ \
\ \ \ \ if( (left = in / b) > 0 )\
\	itoa(left, b);\
\
\ \ \ \ a[j++] = (in % b) + '0';\
\ \ \ \ if( rootcall )\
\ \ \ \ {   a[j] = '\\0';\
\	j = 0;\
\ \ \ \ }\
\ \ \ \ return((char *) a);\
}\
#endif\


1721c\
\
#ifdef  SYS_CSI\
\ \ \ \ /* NOTE: profiling precludes tail recursion: MVS 09/20/89 */\
\ \ \ \ if (!profiling)			/* for BLISS profiler */\
#endif\
\ \ \ \ \ \ if (narg == 0 && (n->Nflag & NF_RETEXPR)) {

1723a\
\
#ifdef  SYS_CSI\
\	if (profiling)			/* for BLISS profiler */\
\	\ \ \ \ outepilog(This_Fn);		/* added by MVS, 09/20/89 */\
#endif

1733c\
\
#ifdef SYS_CSI\
\ \ \ \ /*\
\ \ \ \ \ * Choose BLISS, FORTRAN or C function argument linkage!\
\ \ \ \ \ */\
\ \ \ \ if( n->Nleft->Nid->Sflags & TF_BLISS )	   /* this is a BLISS fn */\
\ \ \ \ \ \ emit_blissargs(l);\
\ \ \ \ else if( n->Nleft->Nid->Sflags & TF_FORTRAN )  /* ...or a FORTRAN fn */\
\ \ \ \ {\
\ \ \ \ \ \ code5(P_PUSH, R_SP);		/* make room for one extra arg */\
\ \ \ \ \ \ stackoffset++;\
\ \ \ \ \ \ emit_blissargs(l);		/* now push args in BLISS order */\
\ \ \ \ }\
\ \ \ \ else				/* ...No, it's a C fn */\
#endif	\
\ \ \ \ \ \ while (l != NULL) {

1741c\
\ \ \ \ \ \ }

1749a\
#ifdef SYS_CSI\
\ \ \ \ if( n->Nleft->Nid->Sflags & TF_FORTRAN )  /* for a FORTRAN fn */    \
\ \ \ \ { static char *copyn  = "\\tHRLZI\\t16, ";\
\ \ \ \ \ \ static char *moven  = "\\tMOVEM\\t16, ";\
\ \ \ \ \ \ static char *movep  = "\\tMOVEI\\t16, ";\
\ \ \ \ \ \ char        *argn   = itoa(narg+1, 8);\
\ \ \ \ \ \ \
\ \ \ \ \ \ codestr(copyn, strlen(copyn));	/* save stack arg word count */\
\ \ \ \ \ \ codestr(argn,  strlen(argn));	/* in extra stack position   */\
\ \ \ \ \ \ codestr("\\n", 1);			/* just below regular args   */\
\ \ \ \ \ \ codestr(moven, strlen(moven));\
\ \ \ \ \ \ codestr(argn,  strlen(argn));\
\ \ \ \ \ \ codestr("(17)\\n", 5);\
\ \ \ \ \ \ argn = itoa(narg+2, 8);\
\ \ \ \ \ \ codestr(movep, strlen(movep));\
\ \ \ \ \ \ codestr(argn,  strlen(argn));\
\ \ \ \ \ \ codestr("(17)\\n", 5);\
\ \ \ \ }\
#endif

1767a\
#ifdef SYS_CSI\
\ \ \ \ if( n->Nleft->Nid->Sflags & TF_FORTRAN )  /* for a FORTRAN fn */    \
\ \ \ \ { char *mov1 = "\\tMOVE\\t2, 1\\n";\
\ \ \ \ \ \ char *mov2 = "\\tMOVE\\t1, 0\\n";\
\ \ \ \ \ \ char *set0 = "\\tSETZ\\t0,  \\n";\
\ \ \ \ \ \ \
\ \ \ \ \ \ if( siz == 2 )			/* FORTRAN functions will return */\
\ \ \ \ \ \ \ \ \ \ codestr(mov1, strlen(mov1));	/* values in registers 0(1)	 */\
\ \ \ \ \ \ codestr(mov2, strlen(mov2));	/* instead of in registers 1(2)  */\
\ \ \ \ \ \ codestr(set0, strlen(set0));\
\ \ \ \ }\
#endif


 4-Dec-89 11:48:32-PST,813;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu ([128.146.8.98]) by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 11:47:50 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA14716; Mon, 4 Dec 89 13:07:07 -0500
Date: 04 Dec 89 11:00:51 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccgen1.dif
Message-Id: <"CSI 5679-10884"@CompuServe.COM>

28a\
#ifdef SYS_CSI			/* added for profiling, 09/15/89 by MVS */\
extern void outepilog();	/* CCOUT */\
extern int profiling;		/* Profiling flag, defined in CC.C */\
extern SYMBOL *This_Fn;		/* pointer to function name: from CCGEN */\
#endif

549a\
\
#ifdef SYS_CSI\
\ \ \ \ if (profiling)				/* for BLISS profiler */\
\	outepilog(This_Fn);			/* added 09/15/89 by MVS */\
#endif\



 4-Dec-89 12:17:10-PST,737;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 12:02:59 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA15070; Mon, 4 Dec 89 13:10:20 -0500
Date: 04 Dec 89 11:08:23 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccsite.H.dif
Message-Id: <"CSI 5679-10974"@CompuServe.COM>

43c\
#elif SYS_T10

44a\
#elif SYS_CSI\
#define SWI_HFPATH "C:"\
#define SWA_HFPATH "ALL:[1,17]"

54c\
#elif SYS_T10\
#define SWI_HFSYPATH "CSYS:"\
#elif SYS_CSI

55a\
#define SWA_HFSYPATH "ALL:[1,16]"

72c\
#elif SYS_T10

73a\
#elif SYS_CSI\
#define SWI_LIBPATH "SYS:LIB+.REL"  /* Moved library to SYS: -KAR */


 4-Dec-89 12:17:30-PST,590;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 12:05:17 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA15256; Mon, 4 Dec 89 13:12:55 -0500
Date: 04 Dec 89 11:07:29 EST
From: <[email protected]>
To: <[email protected]>
Subject: cctoks.H.dif
Message-Id: <"CSI 5679-10968"@CompuServe.COM>

205a\
#ifdef SYS_CSI\
tokdef(T_FORTRAN, "fortran",   	TKTY_RWTYPE, RWF_KCC)   /* (KCC extension) */\
tokdef(T_BLISS,   "bliss",	TKTY_RWTYPE, RWF_KCC)   /* (KCC extension) */\
#endif


 4-Dec-89 12:18:28-PST,601;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu ([128.146.8.98]) by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 12:08:24 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA15292; Mon, 4 Dec 89 13:13:21 -0500
Date: 04 Dec 89 11:06:46 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccsym.H.dif
Message-Id: <"CSI 5679-10960"@CompuServe.COM>

660a\
#ifdef SYS_CSI\
#define TF_FORTRAN      0100000000 /* fortran attribute for functions */\
#define TF_BLISS        0200000000 /* bliss   attrubute for functions */\
#endif


 4-Dec-89 12:20:03-PST,985;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 12:10:08 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA14847; Mon, 4 Dec 89 13:08:04 -0500
Date: 04 Dec 89 10:59:36 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccdata.dif
Message-Id: <"CSI 5679-10868"@CompuServe.COM>

44a\
\
#ifdef SYS_CSI\
int nhfpaths = 2;		/* -Hpath  # of <> include-file dirs */\
int nhfsypaths = 2;		/* -hpath  # of <sys/> include-file dirs */\
#else

46a\
#endif\


50,51c\
\
#ifdef SYS_CSI\
char *hfpaths[MAXINCDIR] = \
\	{SWI_HFPATH, SWA_HFPATH};	       /* -H search paths (<>) */\
char *hfsypaths[MAXINCDIR] = \
\	{SWI_HFSYPATH, SWA_HFSYPATH};	       /* -h search paths (<sys/>) */\
#else\
char *hfpaths[MAXINCDIR] = {SWI_HFPATH};       /* -H search paths (<>) */\
char *hfsypaths[MAXINCDIR] = {SWI_HFSYPATH};   /* -h search paths (<sys/>) */\
#endif\



 4-Dec-89 12:33:20-PST,1091;000000000015
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 12:32:53 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA14897; Mon, 4 Dec 89 13:08:30 -0500
Date: 04 Dec 89 10:58:54 EST
From: <[email protected]>
To: <[email protected]>
Subject: merge files for KCC
Message-Id: <"CSI 5679-10860"@CompuServe.COM>

Hi Ken,
    Since I haven't heard from you on the utility of the SED scripts I've
been sending you to convey the diffs between your KCC revisions and mine,
I'll go ahead and send you the rest of them on the assumption that you
can use them.  There will follow 9 messages containing SED scripts, one
per module.  You will also need the 4 I've sent previously to produce a
complete merge of our two revision paths.  
    If by any chance you haven't received the last few messages, it could
be because I'm still sending them to [email protected];  I notice your more
recent messages have come from [email protected], so I'll try  that address
for these messages.
					Michael

 4-Dec-89 12:33:45-PST,831;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 12:31:58 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA15168; Mon, 4 Dec 89 13:12:04 -0500
Date: 04 Dec 89 11:04:20 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccpp.dif
Message-Id: <"CSI 5679-10938"@CompuServe.COM>

3571a\
#ifdef SYS_CSI

3572a\
\	\ \ && (nhfsypaths <= 2\
\	\	|| !cinctry(nhfsypaths-2, hfsypaths+2, f2, f+4, &fp)))\
\	\ \ \ \ cinctry(2, hfsypaths, f2, f+4, &fp);\
#else\
\	if (nhfsypaths && (strncmp(f, "sys/", 4) == 0)

3576c\
#endif

3580a\
#ifdef SYS_CSI\
\	if (!fp\
\	\ \ && (nhfpaths <= 2 || !cinctry(nhfpaths-2, hfpaths+2, f2, f, &fp)))\
\	\ \ \ \ cinctry(2, hfpaths, f2, f, &fp);\
#else

3583a\
#endif


 4-Dec-89 12:34:14-PST,1151;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 12:33:41 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA15434; Mon, 4 Dec 89 13:15:08 -0500
Date: 04 Dec 89 11:05:05 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccdecl.dif
Message-Id: <"CSI 5679-10946"@CompuServe.COM>

1008a\
#ifdef SYS_CSI\
\	\ \ \ \ case T_FORTRAN:\
\	\	if( symp->Sflags & (TF_FORTRAN | TF_BLISS) )\
\	\	\ \ \ \ error("Duplicate foreign language qualifier!");\
\	\	symp->Sflags |= TF_FORTRAN;\
\	\	nextoken();\
\	\	continue;\
\
\	\ \ \ \ case T_BLISS:\
\	\	if( symp->Sflags & (TF_FORTRAN | TF_BLISS) )\
\	\	\ \ \ \ error("Duplicate foreign language qualifier!");\
\	\	symp->Sflags |= TF_BLISS;\
\	\	nextoken();\
\	\	continue;\
#endif	/*  CSI  */

1692c\
\	\ \ \ \ {   idsym->Sclass = saveidsc;\
#ifdef SYS_CSI\
\	\	idsym->Sflags = d->Sflags;	/* copy base flags */\
#endif\
\	\ \ \ \ }	    

1695a\
#ifdef SYS_CSI\
\	\ \ \ \ if( d->Sflags & TF_FORTRAN )\
\	\	warn("FORTRAN arrays not supported: will be C array");\
#endif


 4-Dec-89 12:34:28-PST,918;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Mon, 4 Dec 89 12:34:20 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA14802; Mon, 4 Dec 89 13:07:35 -0500
Date: 04 Dec 89 11:00:11 EST
From: <[email protected]>
To: <[email protected]>
Subject: ccgen.dif
Message-Id: <"CSI 5679-10879"@CompuServe.COM>

30a\
#ifdef SYS_CSI				/* profiling, 09/15/89 by MVS */\
extern void outprolog();				/* CCOUT.C */\
extern int profiling;	/* Profiling flag, defined and set by CC.C */\
SYMBOL *This_Fn;	/* Used to pass function symbol to profiler*/\
#endif

82a\
\
#ifdef SYS_CSI\
\ \ \ \ This_Fn = n->Nleft->Nleft->Nid;	/* Output function label */\
\ \ \ \ outmidef(This_Fn);\
\ \ \ \ if (profiling)			/* for BLISS profiler */\
\	outprolog(This_Fn);		/* added 09/15/89 by MVS */\
#else

83a\
#endif /* SYS_CSI */\



 5-Dec-89 07:45:30-PST,900;000000000005
Return-Path: <[email protected]>
Received: from cheops.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Tue, 5 Dec 89 07:45:22 PST
Received: by cheops.cis.ohio-state.edu (5.61/4.891204)
	id AA17509; Tue, 5 Dec 89 10:45:07 -0500
Date: 05 Dec 89 09:53:42 EST
From: <[email protected]>
To: Ken Harrenstien <[email protected]>
Subject: Re: Re: merge files for KCC
Message-Id: <"CSI 5679-18174"@CompuServe.COM>

No, as far as urgency, I was only anxious to know if the scripts I was
sending were usable.   I suppose the next order of priority, by my lights,
would be how to fix the fortran linkage; but it's not urgent, I just won't
be able to make the new compiler public yet.  Since I haven't heard any
complaints from outside the dept. about the bugs Benny's finding, I have
to assume that fortran linkage is more important to the rest of the co.
				Thanks,
				Michael

 8-Dec-89 15:42:02-PST,2374;000000000011
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Fri, 8 Dec 89 15:41:55 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA12637; Fri, 8 Dec 89 18:41:44 -0500
Date: 08 Dec 89 16:41:12 EST
From: <[email protected]>
To: <[email protected]>
Subject: making smaller links
Message-Id: <"CSI 5680-11841"@CompuServe.COM>

Ken,
     Various people have been bugging me to try and cut down
on the memory requirements of KCC, both of the generated code 
and of the compiler itself.  I've been looking at the runtime
environment, to try and figure out why it pulls in a substantial
part of LIBC even if the user doesn't call anything.  It's 
obvious that somebody went to a lot of trouble to ensure that, 
for instance, the USYS functions don't make calls to the STDIO
functions, but here and there a call must've slipped thru.
    What I'd like to do is set up URT.C so I can compile it
conditionally to produce one of several runtime modules:
the first might be just what we have now.  The next would be
free of any references that load in the STDIO stuff.  Then 
there'd be one that was free of any USYS I/O stuff (that'd be
a big win for us, getting rid of that 6K chunk of buffer in
the low seg unles it was needed).  Then finally I might have
one that did virtually nothing except call main.
    To do this, besides tracking down whatever calls to printf
etc. are made in error messages and the like, I'd have to make
a few non-trivial changes to URT.  For one thing, I'd like to 
move the call of "atexit(cleanup)" from urt.c to fopen.c,
and have fopen do it the first time it's called (setting a flag).
Otherwise, urt will pull in cleanup into every link, which will
pull in fclose, which pulls in fopen, malloc, printf and the
whole bunch.  Does that change seem ethical to you?
    To do the same thing with the USYS I/O functions (but leave
them available on demand), I might have to give up the ability
to redirect stdin and stdout, and expand indirect files.  The
idea would be to have _openuf() do something similar the first
time it's called, setting up for it's own termination cleanup.
Otherwise _exit() will pull in close(), which will pull in
the rest of the USYS functions.  
    I'd appreciate your thoughts on the subject.
				Michael

11-Dec-89 09:57:39-PST,1669;000000000011
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Mon, 11 Dec 89 09:54:13 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA09254; Mon, 11 Dec 89 12:41:08 -0500
Date: 11 Dec 89 11:48:02 EST
From: <[email protected]>
To: Ken Harrenstien <[email protected]>
Subject: Re: Re: making smaller links
Message-Id: <"CSI 5681-4441"@CompuServe.COM>

RE: a shared library high segment like FORTRAN uses.  Did you
    look into this and reject it for some reason?

No, I didn't look into it because I don't know much about FORTRAN.
Maybe I should look into this.  I think, though, that even if this
helps, it won't satisfy some folks.  The idea of conserving system
resources (cycles, words) is pretty firmly entrenched here.  After
all, that's what they sell.  Can't sell it if we're using it up
ourselves.  Don't want to have to purchase additional HW, either!!!

I can sort of see their point of view, though.  I mean, why bother to
try to reduce the size of the generated code at all, if we're gonna
pull in ~75K of library code no matter what we do?

Vis: the suggestions in my last message:  I've been able to make some
of them work, in a tentative fashion.  I can make a runtime without
the STDIO functions at the cost of being able to append to stdout
(the calls to fstat, setbuf and setvbuf in init_uio() have to go).
Then I can make a runtime without the UIO functions or buffers at
the cost of not calling init_uio() at all, meaning I haven't got 
stdin, stdout, stderr initialized but I can still pull in the UIO 
functions if I need them.
				Michael

12-Dec-89 08:55:12-PST,1422;000000000005
Return-Path: <[email protected]>
Received: from saqqara.cis.ohio-state.edu by NIC.DDN.MIL with TCP; Tue, 12 Dec 89 08:55:07 PST
Received: by saqqara.cis.ohio-state.edu (5.61/4.891204)
	id AA27132; Tue, 12 Dec 89 11:55:18 -0500
Date: 12 Dec 89 09:07:07 EST
From: <[email protected]>
To: Ken Harrenstien <[email protected]>
Subject: Re: Status
Message-Id: <"CSI 5681-9300"@CompuServe.COM>

RE: Or would you rather wait until I've integrated your changes?
    Well, on the one hand, the "merged" compiler, incorporating both
your changes and ours, is in a sort of limbo since it needs its 
fortran linkage fixed.  On the other hand, if you don't incorporate 
the changes first, we'll have them to do over again.  Since the scripts
I sent apply to the files you most recently sent (and they have line
numbers and such in them), wouldn't it be easier for you to apply the
scripts before making any more changes?  We'll still have the fix for
fortran to do, but hopefully that'll be small and confined.
RE: modem.
    I don't know what Benny sent you, but if it accepts the Hayes (tm)
command set, you can do what you want to in "soft switches" (ie registers):
just send it the string "ATS0=0"<return> from your telecom program.  That
tells it to answer the phone only after an infinite number of rings.
Of course, it has to be redone every time you turn the sucker on...
				Michael