dmake: do not set MAKEFLAGS=k
[unleashed/tickless.git] / usr / src / lib / libpp / common / HISTORY
blob37d915654127d268e46cab839a87f7003d087f07
1 libpp change history
3          ----- minor sync release -----
4 09/11/89 add extra sun style 1,2 arg to line syncs in ppline with pp:linetype
5          add pp:oldc to convert __STDC__ void* and prototypes to old C
6 08/11/89 fix <...> include dir bug
7 08/08/89 add SYM_INIT for #define during INIT
8 07/28/89 delete STRIPTOP, STRIP only T_STRING & T_CHARCONST at pp.level==1
9          add ppcargs() compatibility command line argument parse
10 07/17/89 dialect: ANSI (default) or (Reiser) compatibility
11          style: extended (default) or strict
12          use pathprobe(3) for dynamic ppdefault.h
13          add PP_PROBE to specify pathprobe() processor
14          add -[DI]+ to invert options in ppargs()
15          delete PP_ANSI, PP_DIALECT, PP_INITDIR, PP_LANGUAGE
16          delete PP_NONHOSTED, PP_NOPASSTHROUGH, PP_PHASEOUT
17          add #pragma's for most ppargs() options
18          add #option(pragma-option) predicate test
19          PP_MACREF now called during initialization
20 07/11/89 add PP_BUILTIN for external #(...) handler
21          add line number to missing endif message
22          ignore errors in skipped ppexpr() &&, || and ?: subexpressions
23          add space before macro actual in replacement text
24 07/04/89 fix PP_TRUNCATE interaction with PP_COMPILE
25 06/30/89 #define x #; x was recognized as directive #
26 06/27/89 don't pass comments during #if skip
27 05/01/89 add L"..." and L'...' wide quoted constants
28          mixed "..." and L"..." ok -- L"..." for COMPILE, first otherwise
29          fix PASSCOMMENTS in directives
30          allow #define f(a,) for COMPATIBILITY
31          fix literal string concatenation bugs
32          fix header parsing in non-active if-blocks
33          #endmac now takes no arg
34 04/11/89 tone down unknown directive diagnostic in conditional
35 04/07/89 move macref call before arg processing
36 03/27/89 fix pplex bug that bombed line sync for last line == #include
37 03/15/89 fix PP_TRUNCATE macro id bit table checks
38          remove compatibility option s from ppargs() -- belongs in cmds
39 03/08/89 remove ``empty character constant'' warning for PASSTHROUGH
40 02/28/89 fix variable n usage conflict for DEFINE: in ppcontrol
41 02/22/89 fix -T conflict with __GNUC__ in ppargs
42 02/01/89 add -T (PP_TRUNCATE) for old non-flexname compiler compatibility
43 01/31/89 -I-M-<char><suffix> finds map file by mapping input file name
44          -I-H[directory] allowed for fine hosted control
45 01/24/89 fix #undef of SYM_READONLY macro message
46          add PPCOMPATIBLE for compatibility installation in /lib/cpp
47          add PP_MAP & -I-M to map include files for minimal including
48 01/18/89 fix pp.token setting by noting with pp.state|=TOKENSET
49 01/11/89 fix #if skip bug where quoted token set begin line state
50 12/11/88 add error checking wrappers to *alloc()
51 12/05/88 add PP_FILEDEPS (-M) and FILEDEPS mode for BSD compatibility
52 12/01/88 add #macdef-#endmac and change actualsync() char to SYNC ('\r')
53 11/30/88 TOKOUTBUF controls 11/28/88 STANDALONE speedup
54 11/28/88 speed up STANDALONE by avoiding pp.token copy
55 11/22/88 add comment removal to string_special
56 11/11/88 LIBEXPR enables expr(3) in ppexpr() (12K extra text)
57 10/11/88 move VARQUOTE to pp.mode
58 10/01/88 allow checkpoint files for !STANDALONE
59 08/31/88 add pp.undefsym for pp.macref's on undefined symbols
60 08/23/88 0xe+N -> `0xe' `+' `N'
61 08/16/88 fix ppckeys.c: T_DOUBLE->T_DOUBLE_T, T_FLOAT->T_FLOAT_T
62 07/17/88 add \newline to string_special
63          add line number arg to pp.comment call
64          move private stuff from pp.h to pplib.h
65          add ignored -v to ppargs() (GNU uses this)
66 06/22/88 move pp.macref check; stack pp.state in ppcontrol()
67          add PP_INCREF and (*pp.incref)(old-file, new-file, push|return)
68 06/11/88 add pp.macref
69          add ppckeys.h and C, C++ and pcc-based C keyword tables
70 06/01/88 convert to new hash library interface
71 05/31/88 pp:readonly in PP_INIT only for STRICT
72 05/11/88 T_MOREARGS -> T_VARIADIC; add SYM_VARIADIC for ... last macro arg
73 05/03/88 fix empty include file bug by omitting empty check
74 04/27/88 ignore space in pragma % maps to accomodate SCCS %.% expansion
75 04/19/88 change pp.h to check for old nmake cpp clash with ppsymbol
76 04/11/88 fix flag check bug in ppload()
77 02/29/88 add MAP_ECHO and %E for MAP_RESCAN + echo
78          PP_INITDIR inserted before PP_STANDARD during initialization
79 02/18/88 ignore malformed #'s in COMPATIBILITY macro definitions
80          add pp.prefix, PP_PREFIX and -I-P for prefix dir "..." includes
81 02/10/88 add NOQUOTE to disable ' and " and decouple from VARQUOTE
82          add keyword and quote pragmas
83 02/02/88 add strcmp builtin predicate for token string value comparison
84 01/24/88 fix <backslash><newline> handling in #define on bsd
85 01/20/88 add %T and fix %[...] pragma mapping formats
86 01/11/88 complete 12/11/87 COMPATIBILITY macro arg /**/ pasting bug fix
87          complete KEYWORD support
88 01/08/88 add PP_KEYWORD, (pp.state & KEYWORD), -D-K and #if KEYARGS
89 01/06/88 hex char constants are now variable length
90 01/04/88 do not add terminator for COMPATIBILITY " and ' constants
91 12/11/87 remove #multiple in lieu of #pragma multiple
92          add %R MAP_RESCAN option to rescan pragma/directive mapping
93          fix COMPATIBILITY macro arg /**/ pasting bug
94 12/08/87 recode for updated hash library interface
95          add T_PTRMEMREF ->* and T_DOTREF .* C++ operator tokens
96 12/01/87 reorganize pp token numbers to span 0401..0477
97 11/22/87 add operand error checks to ppexpr()
98          add PP_DEFAULT and -I-Dfile for fine PPDEFAULT control
99 11/11/87 pppragma() now omits space after # for primitive passes (uts)
100 10/30/87 fix line count on `newline' in ['"] constant warning
101 10/29/87 add MAP_PLUSCOMMENT and %P to pragma|directive mapping
102 10/28/87 add head & tail args to ppcomment; pass // comments as is
103 10/23/87 add warning for multiple ppop(PP_LOCAL) calls
104 10/16/87 change PP_HOSTED to PP_HOSTDIR, add PP_HOSTED and PP_NONHOSTED
105          add #(BASE) that expands to base name of #(FILE)
106 10/15/87 for PASSTHROUGH each line of multi-line "..." or '...' is a token
107 10/14/87 add ppmultiple() for multiple include test ops
108 10/11/87 delete CONVERTASSIGN -> `=<op>' no longer recognized
109          delete C++ := -> = conversion
110          fix COMPATIBILITY macro recursion bug
111          add `#pragma multiple' equivalent to `#multiple'
112 10/06/87 split pplex.c adding ppdirective.c and ppbuiltin.c
113          don't recognize obsolete assignments for PLUSPLUS
114 10/05/87 fix PLUSPLUS PASSCOMMENTS bug `// */' -> `/* ***/'
115 10/01/87 allow newlines in ' and " constants for PASSTHROUGH
116 09/28/87 fix CONVERTCC STRICT bug that omitted octal character constants
117          add CATLITERAL compile switch for adjacent string literal concatenation
118          fix "\07" "3" -> "\073" string literal concatenation bug -> "\0073"
119 09/18/87 complete ppdump() and ppload() checkpoint support
120 09/17/87 fix macro formal bug that didn't update pointers after realloc()
121          add PP_DONE complement op to PP_INIT
122          add SYM_BUILTIN and #pragma pp:builtin to note builtin macros
123          add PP_DUMP, -D-D and #pragma pp:load checkpoint support
124 08/20/87 fix bug that omitted some actualsync() calls for '\n' in pp.in->actual
125 08/19/87 fix pp.linesync==0 && PASSTHROUGH bug that omitted '\n' after "token"
126 08/11/87 fix #($var) null pointer bug
127 07/31/87 fix linesync bug for comment after #include in PASSCOMMENTS
128 07/24/87 add PP_NOPASSTHROUGH
129 07/16/87 fix predicate missing # ambiguity warning
130 07/09/87 fix `macro("@*")' bug in expand_special()
131 06/17/87 fix comment error message check that was off by one line
132 06/16/87 remove #pragma pp:multiple; add #multiple; retain PP_MULTIPLE
133 06/08/87 add # operator to disambiguate predicate tests
134          inhibit more warnings on hosted files
135          make diagnostics more consistent -- a little more work
136          PP_READ files and their included files always marked hosted
137 06/05/87 fix macro actual arg collection with imbedded #include, #line
138 05/28/87 add `#pragma pp:multiple *' to mark all files multiple
139          add -D-M for command line equivalent to `#pragma pp:multiple *'
140 05/01/87 clarify HOSTED and SYM_PREDEFINED
141 04/24/87 split pplex.c into smaller files -- too big for some compilers
142          move common wrapper routines into the library
143          fix ppargs() to cooperate with other option parsers
144 04/22/87 remove getenv("PPSTANDARD") override of PP_STANDARD
145 04/21/87 replace yacc parser with recursive expr() from library streval()
146 04/20/87 add #((<expr>)) expression evaluation on (x)
147          add #(<sym>=<expr>) to dynamically evaluate macro values
148 04/11/87 home brew output buffering for PP_STANDALONE -- up to 10%
149          cleanup
150 04/10/87 change T_STRING concatenation in preparation for new output buffering
151 04/09/87 fix character constant conversion warnings
152 04/07/87 fix \\n and ??/\n bugs in comment scan
153 04/06/87 add DIGIT, HEX, OCTAL and NONOCTAL case classes to ppdefs.h
154          use GETCHR() and ISSPECIAL() in outer pplex() loop -- up to 10%
155          fix macro actual arg count test
156 04/03/87 add PP_TEST and TEST1, TEST2 to mode for internal tests
157 04/02/87 delete PPDEFAULT and generalize with PP_READ
158          note `# <line> "<file>"' as non-standard
159          add check for malloc() out of space
160 04/01/87 C specific error messages only if language="C"
161          C++ specific error messages only if language="C++"
162 03/31/87 delete command() predicate -- gateway for trojan horse
163 03/30/87 add dialect() and language() builtin predicates
164          change in->standard to in->hosted and STANDARD to HOSTED
165          add PP_HOSTED and change PP_NOSTANDARD to PP_NOHOSTED
166          ignore #pragma for non-hosted files in STRICT dialect
167 03/27/87 add predop(); delete pp:plusplus
168          pp:dialect and pp:language for verification only
169 03/24/87 ----- first release -----
170 03/24/87 ----- first release -----
171 03/23/87 allow WARN to apply to all dialects
172          fix pp:directive `...multiple...' warning
173          add MAP_NEWLINE to separate multiple pragmas
174 03/22/87 warn about null macro args for STRICT
175          add PP_LANGUAGE, `#pragma language [language]'
176          warn about newline in macro call arguments in directives
177          warn about directives in macro call arguments for STRICT
178          validate character constants in #if expressions
179 03/20/87 add PP_DIRECTIVE and PP_LOCAL
180          add %I (ignore) map format and allow %X for pragma args
181 03/19/87 change PP_DEFAULT to PP_STANDARD, add PP_DIALECT
182          add dialect arg to PP_COMPATIBILITY, PP_DIALECT and PP_STRICT
183          add `#pragma pp:pragma pass:option format' mapping
184 03/18/87 delete pp:obsolete; fix `#pragma version'
185          fixed macro stack frame bug during recursive macro arg expansion
186          change CONFORMING, PP_CONFORMING to STRICT, PP_STRICT
187          add `#pragma dialect [dialect]' verification
188 03/17/87 add PP_NOSTANDARD to disable any special handling of std files
189          refine mkdefault.sh for sun workstations
190          remove comma operator from pp.yacc since it implies side effects
191          add argument type checking for pp:directive and pp:obsolete
192 03/16/87 refine CONFORMING messages
193          disambiguate most #assert/#define clashes
194          add PASSCOMMENT and (*ppcomment)() for old lint fans
195 03/14/87 #undef in pp:readonly marks id as readonly macro
196 03/11/87 warn about macros that are predicates in #if expressions
197          add mode to handle uncoupled flag bit overflow from state
198 03/04/87 fix COMPATIBILITY to expand a macro in its definition
199 02/24/87 add gentab.sh and mkdefault.sh to Makefile
200 02/20/87 add IN_RECURSIVE for proper handling of #(...)
201 02/16/87 add #unassert; PP_WARN & WARN to note obsolete usage
202          only recognize directive if # is first char for (state&COMPATIBILITY)
203          generalize gentab.sh and retrofit pp.tab
204          change in->name.file to be the name of including file
205 02/13/87 add pp.tab; PP_PRAGMA "x=y" -> "#pragma x y"
206          add #(x y...) -> "#x y..." for recursive directive evaluation
207 02/12/87 #pragma [pass:] [no]option [arg ...]
208          #pragma pp:[no]directive [pass:]<new-directive>
209          #pragma pp:id <identifier-character>
210 02/11/87 distribute post-token switch in pplex() to individual cases (~5%)
211 02/09/87 clarify invalid numeric token gobble
212          add VARQUOTE & PP_VARQUOTE for `X...X vs. '...' & "..." constants
213 02/06/87 change STRICT to CONFORMING; add PP_CONFORMING
214 02/06/87 change PPBUILTIN to #(<id>)
215 02/05/87 clarify /*...*/ concatenation for (state&COMPATIBILITY)
216          add convertcc() to convert new char const to old style
217          rework # op to work with convertcc()
218 02/04/87 add =<op> obsolete operators for (state&COMPATIBILITY)
219 02/02/87 fix expand() to save and restore (state&DISABLE)
220 12/17/86 first code