⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kcchst.h

📁 KCC , a good c compiler, write by Ken Harrenstien
💻 H
📖 第 1 页 / 共 2 页
字号:
#define _version(ver)	asm(".text ~/version:" ver "~\n")
#define REV			   "2A(52)"
/*                                  ^^ ^
 * Parameters:                      || |
 *  - Major => major version  ------ | |
 *                                   | |
 *  - Minor => minor version  -------  |
 *	(use 0 to omit from version)   |
 *                                     |
 *  - Edit  => edit number    ---------
 *
 *  - Modified-by => programmer can be appended to the end of
 *	the string if desired (e.g. 2A(34)-4) and should be a
 *	number (use 0 to omit from version)
 *
 * NOTE: For less confusion use octal values for the numeric
 *	 fields and uppercase letters for the minor version.
 */

/************************************************************************
 *                                                                      *
 *  Copyright (c) 1990                                                  *
 *  by CompuServe Incorporated, Columbus, Ohio                          *
 *                                                                      *
 *  The information in this software  is  subject  to  change  without  *
 *  notice  and  should not be construed as a commitment by CompuServe  *
 *  Incorporated.                                                       *
 *                                                                      *
 ************************************************************************
 *
 * Facility:  KCC C Compiler
 *
 * Abstract:
 *	This file contains the revision history of the KCC compiler,
 *	starting with version 2A(1).
 *
 * Environment:  CompuServe specific.
 *
 * Author:  Kevin A. Russo, December 3, 1990
 *
 * Revision History:
 *
 * 2A(1)  KAR, October 1990
 *	  - First version number implementation (PPS 3980, SPR 9226)
 *	  and first mixed-listing implementation (PPS 3974).
 *	  Modules: CCPP CCOUT CCGEN CC.H CC KCCVER.H CCERR
 *
 * 2A(2)  KAR, TEA, November 1990
 *	  - Fixed bugs in mixed-listing when encountered a storage
 *	  declaration within a header file and had to expand the
 *	  internal source code buffer.  Also added functionality for
 *	  zeroing .JBERR upon command line startup.
 *	  Modules: CC.H CCPP CC
 *
 * 2A(3)  KAR, January and February 1991
 *	  - Changed all "#ifdef SYS_CSI"'s to #if's and initial 
 *	  implementaion of in-line monitor calls.  Also changed
 *	  the default for -v=stats to print the stats and the 
 *	  switch is now -v=nostats to turn it off and added the
 *	  count of words for each function to the output of 
 *	  -v=fundef.
 *	  Modules: (ifdef's to if's) CCPP CCERR CCASMB CCGEN
 *	  	   CC CCOUT
 *		   (in-line muuo's) CCSTMT CCCODE CCGEN2 CCOUT
 *		   CCTOKS.H CCCODE.H MUUO.H
 *		   (statistics) CC CCASMB CCGEN CCOUT CCSTMT
 *
 * 2A(4) TEA, March 1991
 *	 - Unified the Host and PC versions of KCC. Removed several
 *	 PC warnings including 3 uninitialized variables. Expanded 
 *	 the cases where BLT is used (PPS 4130). Includes two debugger
 *	 fixes see (SPR 9410, SPR 4121).
 *	 Modules: All *, 11 of 18 *.H, namely CC.H, CCCHAR.H CCCODE.H
 *	 CCGEN.H, CCLEX.H, CCNODE.H, CCPARM.H, CCREG.H, CCSITE.H, CCSYM.H
 *	 CCTOKS.H
 *
 * 2A(5) TEA, KAR March 1991
 *	 - Kevin put in a fix for the -L switch.  Path name was not 
 *	 correct in MACRO code (SPR 9463).
 *	 - Tim fixed a bug having to do with emitting arguments
 *	 when a Bliss function is called and replaced numerous spaces
 *	 with tabs in various code generation routines.
 *	 Modules: CC, CCOUT, CCDECL, CCASMB
 *
 * 2A(6) TEA, KAR May 1991
 *	 - KAR Fixed page break bug in mixed listings.
 *	 - TEA Replaced large static tables with dynamic tables, removing
 *	 the upper size limits and no longer creating maximum sized tables
 *	 (PPS 4206, PPS 4232), reducing initial low-seg 33% (from 80 to 52).
 *	 Sped up each KCC getc by eliminating tgmapch() and sped up 
 *	 typechecking by rewriting sideffp() and edisc().
 *	 Jacketed 17 unreachable functions with #if 0...#endif and 15
 *	 LDG-specific info dumping functions with #DEBUG_KCC...#endif,
 *	 reducing high-seg 4% (from 154 to 148).
 *	 1) CC, CCCODE, CCDATA, CCNODE, CCSYM, and CCASMB require 
 *	 being compiled with -DDEBUG_KCC=1 (for LDG, not production).
 *	 2) KCC2A(6) compiles itself on the PC. Each of the 42 source files
 *	 was too large for KCC2A(5).
 *	 Modules: CC, CCCODE, CCCREG, CCDECL, CCERR, CCLEX, 
 *	 CCGEN, CCNODE, CCPP, CCSYM, KCCDBG, LEXYY, CC.H, 
 *	 CCERR.H, CCLEX.H, CCPARM.H, CCPROT.H, CCREG.H, CCSYM.H, FSKELD.H
 *
 * 2A(7) TEA May 1991
 *	 Fixed slcpool bug that did not allow recompiling large macros in
 *	 LIBC.REL and fixed -DMACRO -UMACRO bug.
 *	 Modules: CCPP, CCPARM.H
 *
 * 2A(10) KAR June 1991
 *	  Fixed mixed listing bug having to do with the character combo
 *	  " /" where whatever followed the '/' would be echoed twice in
 *	  the listing.  Also added the last two formats of monitor calls
 *	  to the in-line monitor calls facility.  Also needed to recompile
 *	  to get the fix to the clock() function so the compiler will 
 *	  report the correct number of CPU seconds used.
 *	  Modules: CCPP, CCGEN.H, CCOUT, CCCODE, CCGEN2
 *
 * 2A(11) TEA July 1991
 *	  Fixed "[internal error] rrdfind: no regs" bug.
 *	  Generate better code for switch statements.
 *	  Increased type table size from 1021 to 1279.
 *	  Modules: CCREG, CCGSWI, CCPARM.H
 *
 * 2A(12) TEA, KAR August 1991
 *	  Closed SPRs 9562, 9568, 9578, and 9579 regarding invalid address
 *	  generated by optimizer, spurios [internal error] message, sizeof
 *	  short array of 1 element being 2 (was 4), and infinite loop of
 *	  error messages. Uses new KCCVER.H so only 1 copy of version number.
 *	  Rebuilt compiler so that it would use the new LIBC and took out
 *	  the -i switches from the banner.
 *	  KAR changed help banner 1990 to 1991 and replaced malloc's with 
 *	  calloc's in CCSYM.
 *	  Modules: CC, CCDECL, CCOUT, CCOPT, CCSTMT, CCSYM 
 *
 * 2A(13) TEA  August 1991
 *	  Changed chars to default to unsigned chars.
 *	  Added "#pragma eof" switch to CCPP (PPS 4297).
 *	  Added "-s" switch to redirect KCC messages to stdout (PPS 4298).
 *	  Linked to new LIBC with _cleanup fix (SPR 9593).
 *	  Now more than 3 file names are allowed on comand line (SPR 9590).
 *	  Fixed int a[2][2], **ptr=&a[1] (SPR 9503).
 *	  Fixed int i1 = struc.sub_struc.i2 (for more than one '.' or
 *	  "->" on a global initializer) (SPR 9604).
 *	  Fixed negative values of unsigned ints with 1 in high bit(SPR 9603).
 *	  Fixed seven unsafe macros that had 10 calls to them.
 *	  Added new-style prototypes for all KCC functions.
 *	  Removed need to pull in ULTOA.
 *	  Added verbose switches "-v=load" and "-v=fundef" and expanded
 *	  "-v" switch. Removed several switches from non-debug (#if DEBUG_KCC)
 *	  version, i.e. what "cc" displays is all that is available.
 *	  Minimized __COMPILER_KCC__ jacketed code to 50 lines.
 *	  Jacketed unreachable code with #if 0..#endif  shrinking KCC.
 *	  Several cleanups recommended by PC-Lint including 7 new defaults
 *	  in switch statements (new [internal errors] that should never be
 *	  reached and dozens of variables and functions became static to one
 *	  file).
 *	  Modules: ALL but CCDATA, CTYPE.H, and C-ENV.H
 *
 * 2A(14) TEA September 1991
 *	  Fixed #pragma eof bug that popped off #if's from all files.
 *	  Changed one line in ifpopchk().
 *	  Module: CCPP
 *
 * 2A(15) TEA September 1991
 *	  Fixed -DD [internal error] bug in CCPP.
 *	  Fixed giznull [internal error bug in CCSYM.
 *	  Shrank KCC by making PPTOK table in CCPP dynamic.
 *	  Replaced all malloc's with calloc's.
 *	  Modules: CC, CCASMB, CCCODE, CCERR, CCNODE, CCOUT, CCPP, 
 *	  	   CCREG, CCSYM
 *
 * 2A(16) TEA September 1991
 *	  Fixed -g=debug, -g=sprof bug in ridlsym() in CCSYM (caused by
 *	  indexing through a calloc'ed NULL ptr that had been a malloc'ed
 *	  random pointer before 2A(15)).
 *	  Moved error message from CCSYM to giznull() in CCGEN (SPR 9617).
 *	  Killed #pragma eof in CCPP (PPS 4309 replaced PPS 4297).
 *	  Modules: CCGEN, CCSYM, CCPP
 *
 * 2A(17) TEA, KAR September 1991
 *	  Shrank KCC low seg from 50 to 35 pages, by making emsgbuf[]
 *	  and types[] dynamic (but types[] non-dynamic with -DDEBUG_KCC=1)
 *	  and the remaining by shuffling struct members of type short
 *	  and char to be adjacent (PPTOKS, SYMBOL, TYPE, NODE, VREG, 
 *	  and PCODE structs) and making int arrays into char arrays
 *	  (convtab, popflg, popprc, typsiztab, and typbsiztab).
 *	  Kevin reordered -I search path to imitate -H (SPR   ).
 *	  Modules: CC.H, CCGEN.H, CCLEX.H, CCNODE.H, CCREG.H, CCSYM.H,
 *	  CCDATA, CCERR, CCPP, and CCTYPE
 *
 * 2A(20) TEA October 1991
 *	  Closed SPRs 9631, 9633 regarding bug that ignores keywords "bliss"
 *	  and "fortran" (CCSYM.H). Now KCCDOS recognizes these words (CCDECL,
 *	  and CCGEN2).
 *	  Modules: CCSYM.H, CCDECL, CCGEN2
 *
 * 2A(21) KAR,TEA,BEN October 1991
 *	  Nailed out a few problems with the mixed source-assembly language
 *	  listing facility including SPR 9640.
 *	  Benny fixed -p switch in outprolog() in CCOUT, SPR 9649.
 *	  Modules: CC.H, CC, CCPP, CCOUT
 *
 * 2A(22) TEA October 1991
 *	  Closed SPR 9650 concerning [internal error] generated by gotos.
 *	  Built with LIBC with stat() fix, SPR 9651.
 *	  Modules: CCNODE.H
 *
 * 2A(23) KAR November 1991
 *	  Implemented a project that generates a warning when an
 *	  identifier is being used before its initialization
 *	  (PPS #4159).
 *	  Modules: CCSYM.H, CCDECL, CCPP, CCLEX, CCSTMT
 *
 * 2A(24) TEA, KAR November 1991
 *	  Printed count of warnings to stderr (and stdout if -s), PPS 4340.
 *        Implemented #pragma include_once and #pragma message in CCPP,
 *	  PPS 4309 and 4???. Added -i switch (causes #pragma include_once for
 *	  all include files).
 *	  Shrank FNAMESIZE from 170 to 48 chars (1K low seg) in CCPARM.H
 *	  Shrank boolean flags in CC.H from int to char.
 *	  Made bin_muuo() in CCSTMT and gmuuo() in CCGEN2 compilable by BC++.
 *	  KAR, avoids false uninit var errors when &var is used in CCLEX.
 *	  Modules: CC, CCERR, CCGEN2, CCLEX, CCPP, CCSTMT, CC.H, CCPARM.H
 *
 * 2A(25) TEA, November 1991
 *        Fixed insert_file() to work for more than 16 *.H files.
 *	  Modules: CCPP
 *
 * 2A(26) KAR, November 1991
 *	  Only output the external request for the CRT module if a 
 *	  main() is present in the .C file.  This was done to ensure that
 *	  C modules meant as standalone functions for a FORTRAN, Bliss
 *	  or MACRO program would not bring in all of the C runtime code
 *	  (SPR #9595).
 *	  Also added a fix for the usage before initialization facility
 *	  regarding function parameters using the '&'.
 *	  NOTE: This compiler and the associated library must propagate
 *	  together.
 *	  Modules: CCOUT, CCLEX, CCSTMT
 *
 * 2A(27) KAR,TEA, January 1992
 *	  Closed SPRs 9718, 9719 about faulty optimization in foldadjbp().
 *	  Added KCC_DEBUG info to helpscreen for departmental debugging.
 *	  Implemented PPS asking KCC to signal the user of a possible

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -