.he "C68 Preprocessor"Change Log"Page %"
.de bg
.sp
.in +5
..
.de eg
.sp
.in -5
..
1. 4/20/82 - Long string bug
.bg
No error message for long string, caused in getstr checking for
"i-- > 0" then "i == 0".  Also increased TOKSIZE to 300 to match
setting in parser.
.eg
2. 4/21/82 - Invalid characters not invalid
.bg
It was assumed that the only characters that would go thru the
preprocessor were those that were valid for the compiler.  Using
preprocessor with the assembler (i.e. #define x $1) does not
work.  Fixed cmap table.
.eg
3. 4/26/82 - Assembler temps not being deleted
.bg
Main not deleting assembler temps if more than one C file specified.
Added unlink to delete assembler temps.
.eg
4. 4/28/82 - Preprocessor enhancements
.bg
Changed '-D' flag to '-N' flag, Added '-D' flag to define a name.
Added built-in macros Newlabel[(num)] and Label[(num)] to
generate label numbers for assembler.
.eg
5. 5/8/82 - Added handling of ".s" files
.bg
Added code to check for ".s" files, which go thru the preprocessor
and then thru the assembler.
.eg
6. 5/8/82 - Suppress '\01' on macro file for -P flag
.bg
Added check in domacro to check for pflag, and if it is on, suppress
the outputting of '\01' to expanded macro file.
.eg
7. 5/20/82 - defines gobbling up parenthesised expressions
.bg
the syntax: #define x 1 (newline) x(1) resulted in only "1".  This was
because expand always checked for a left parenthesis for any macro name.
Added NOARG flag at beginning of macro or argument count in dodefine
(although this is not used).  The arguments are only collected if there
were args (or left parenthesis-right parenthesis) seen on the macro
definition.
.eg
8. 6/7/82 - multiple assembler files leaving temps
.bg
If more than one assembler file was given, the macro temp file was left.
Fixed problem in main.
.eg
9. 7/8/82 - added one pass logic
.bg
Added logic in main to add the "-1" flag, which runs the one pass
parser and code generator, which is 10% faster.
.eg
10. 7/17/82 - "-o" flag wiped out C file
.bg
The command "c68 -o x.c" would wipe out x.c.
Added code to main to check argument given for -o flag, made output file
the file name stripped of the ".c" or ".s".
.eg
11. 7/28/82 - checked for rubouts ignored
.bg
C68 was unconditionally catching rubouts whether its rubout signals were
ignored or not.
This had the (unfortunate) side effect of killing C68 in background
when you did a rubout from the terminal.
Added check to signal call to check if signal was ignored, and if so
the ignore condition was restored.
.eg
12. 8/26/82 - libraries not being handled properly
.bg
The -lX flag would be placed at the beginning of the loader's argument
list, thereby missing the library.
Changed main so that the loader arguments would be passed in the same
order as the c68 command line and the c068.o would be added before the
first .o file specified.
Also checked for: -o x.o and stripped off .o for output file name.
.eg
13. 9/1/82 - changed misleading "can't fork" message
.bg
Changed message in fexec so that "can't fork" message is now
"can't maketask [filename]".
This is to keep John Happy...
.eg
14. 11/15/82 - Multiple compiles define carry overs
.bg
The symbol table was not being cleared of defines which occured in
previous source files in a multi-source compile.
.eg
15. 11/15/82 - Paths of generated files
.bg
All files are now generated in the users current working directory
instead of the source directory by default.
.eg
16. 11/24/82 - Include file search paths
.bg
Added the -Idir flag to enable the user to alter the search path.
Also added searching of the parent directory of include files
specified using quotes.
.eg
17. 12/2/82 - Include file error messages
.bg
Added the include file name and line number to the preprocessor output
in order to generate error messages which specified the exact location
of errors which involve include files.  Also suppressed output of
empty include file lines to the preprocessor temporary output file.
.eg
18. 12/28/82 - Temp files generated in the current directory
.bg
In generating all other files into the current directory the temp files
also were generated there.
.eg
18. 1/7/83 - Floating Point flags
.bg
Added the -e and -f flags for specification of the IEEE or FFP floating
point packages (constant evaluations and libraries).
.eg
19. 1/17/83 - Optimization flag
.bg
Recognize the -O optimization flag and ignore it.
.eg
20. 1/20/83 - Compatibility flags
.bg
Added the -3, -5, -6, -7 flags for system 3, system 5, version 6 and
version 7.  Adds an include file on the search list, as well as a 
default library.
.eg
21. 1/24/83 - include file error messages
.bg
Added explicit line number and file name's within the error messages if
processing an include file.
.eg
22. 1/24/83 - Symbol Table overflow
.bg
Added clearing of the symbol table between compiles (c68 *.c).
.eg
23. 2/7/83 - Preprocessor error status
.bg
If error's occurred in the preprocessor pass the exit status wasn't
reflecting it.
.eg
24. 2/22/83 - #line macro
.bg
Implemented the "#line LINENUM [FILENAME]" macro.
.eg
25. 2/23/83 - "-E" option flag
.bg
Implemented the "-E" flag, only the preprocessor is executed and the
output is written to the standard output device.
.eg
26. 3/3/83 - bus error on non-existent file error message
.bg
Error required certain variables to have been initialized in order to
generate the filename and the line number on which the error occured.
.eg
27.  3/28/83 - added two predefined macro's __FILE && __LINE
.bg
Added the two macro's __LINE and __FILE which are respectively
interpreted as the current line number and the current file name.
They may be redefined if desired as this test takes place after
the user defined macro expansions.
.eg
28.  3/29/83 - embedded macro arguments
.bg
Arguments from #define macro's which are not individual tokens but which
are embedded in quoted or non-quoted strings are now being expanded.
.eg
29.  3/29/83 - white space in macro call					[vlh] 4.1
.bg
Allows tabs and spaces between a macro call identifier and the left
parenthesis associated with it's argument list.
.eg
30.  4/29/83 - embedded macro arguments						[vlh] 4.1
.bg
An underscore '_' is no longer seen as a legitimate symbol separator.
Macro's which are embedded in strings are now expanded properly.
.eg
31.  6/13/83 - split preprocessor from main driver          [vlh] 4.2
.bg
For more flexibility...
.eg
32.  7/6/83 - #line											[vlh] 4.2
.bg
A blank line was not being added to the file for each line which was being
redirected or for the #line macro, and so for each case the line number
would be off by two from the original file and error's reported would
have the wrong line number associated with them.
Reworked the way #line was being handled.  Now works properly if the line
referenced has a macro on it.  Does not lose lines.
.eg
33.  7/15/83 - '-C' option									[vlh] 4.2
.bg
Added the '-C' option to the preprocessor.  This caused a major rewrite of
the way include files and the #line option were handled.  The preprocessor
now outputs lines of the form: # 45 "file.h" for each include file, plus
one at the top of each source file, and one after each return from an include
file.  The '-C' flag causes comments to be left in the output.
.eg
34.  7/18/83 - arguments 									[vlh] 4.2
.bg
The arguments are now handled as "cpp -[args] source".  The destination
file is no longer required, the results are always written on the '.i'
name of the source.
.eg
35.  7/20/83 - -I option									[vlh] 4.2
.bg
The concluding slash is no longer required.
.eg
