📄 kcchst.h
字号:
#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 + -