1ChangeLog.old of MCPP and its accompanying Validation Suite 2 32005/03/19 kmatsui 4 * V.2.5 5 * Absorbed POST_STANDARD mode into STANDARD as an execution time 6 option, absorbed OLD_PREPROCESSOR mode as an execution time 7 option of PRE_STANDARD. (all the sources) 8 * Changed the evaluation of #if expression in PRE_STANDARD mode 9 to use only (signed) long, not to use unsigned long. (eval.c) 10 * Revised the Standard mode macro expansion routine using GCC 3. 11 2 testsuite and Wave 1.0 testcases. Revised "blue painting" of 12 the same name macro. Revised debugging information. Revised 13 handling of token separator in STANDARD mode. Split 14 is_macro_call() from is_macro(). (expand.c) 15 * Revised the old-preprocessor mode to follow "Reiser cpp model". 16 (expand.c) 17 * Removed FOLD_CASE settings. (system.c) 18 * Renamed most of #pragma __* directives as #pragma MCPP *. 19 (system.c) 20 * Added porting to GCC V.3.3 and 3.4. Changed some options 21 accordingly (changed -c to -@compat, changed -m to -e, removed 22 -E, added -finput-charset=). Created init_gcc_macro(), 23 undef_gcc_macro(). (system.c) 24 * Sorted usage() message lines alphabetically. 25 * Removed documents on older preprocessors (DJGPP, compiler 26 systems on MS-DOS except Borland C). 27 * Revised judgment of GCC version and include directories. 28 (configure.ac). 29 * Provided man page. 30 * Renamed the documents. 31 * Validation Suite: Moved tests of multi-byte character encoding 32 to quality matters. 33 * Validation Suite: Changed points allocation of the test items. 34 * Validation Suite: Added a few testcases for macro expansion. 35 * Updated Japanese and English documents. 36 372004/03/20 kmatsui 38 * V.2.4.1 39 * Revised recursive macro expansion. (expand.c) 40 * Added -c option (compatible mode to GCC expansion of recursive 41 macro). (expand.c, system.c) 42 * Revised some testcases in cpp-test/test-t directory. 43 442004/02/25 kmatsui 45 * V.2.4 release. 46 * Implemented handling of multi-byte character encodings other 47 than 2-byte encodings. Made various encodings available 48 simultaneously. Added #pragma __setlocale. Added -m <encoding> 49 option. Enabled environment variable LC_ALL, LC_CTYPE and LANG 50 to specify the encoding. (all the sources) 51 * Created mbchar.c. Moved type[] from system.c. Created type_* 52 [] tables for various encodings of multi-byte character. 53 Created encoding_name[][] table. Created mb_init(), 54 mb_read_2byte(), mb_read_iso2022_jp(), mb_read_utf8(), mb_eval(), 55 set_encoding(), search_encoding() and strip_bar(). (mbchar.c) 56 * Added porting to Plan 9 / pcc. (noconfig.H, system.c) 57 * Validation Suite: Added tests of various multi-byte character 58 encodings. 59 * Updated Japanese documents. 60 * Updated English documents which were translated by Highwell, 61 inc. ltd. from the Japanese documents. 62 * Renamed the documents. 63 642003/11/28 kmatsui 65 * V.2.4 prerelease. 66 * Named this proprocessor as MCPP (This is not necessarily the 67 name of its executable). 68 * Changed predefined macro __decus_cpp as __MCPP. 69 * Created configure script to make mcpp executable automatically. 70 Accordingly, reorganized system.H, created configed.H and 71 noconfig.H, and changed some macro names. 72 * Diagnostics on macro expansion or macro redefinition were made 73 to show the original macro definition and its location. 74 * Changed DEFBUF and FILEINFO structure, reorganized some 75 functions and variables. Created set_fname() in system.c. 76 (other than system.H, eval.c lib.c) 77 * Created look_and_install(). (control.c) 78 * Removed CON_NOEXPAND and CON_EXPAND modes. Renamed CON_FALSE 79 mode as PRE_STANDARD. (all the sources) 80 * Removed append_string(), catenate() and conv_st_quote(). 81 (expand.c) 82 * Added #pragma __push_macro, #pragma __pop_macro, #pragma 83 __preprocess, #pragma __preprocessed. Created push_or_pop() and 84 do_preprocess(), revised do_pragma() accordingly. (system.c) 85 * Implemented -MF, -MT, -MP, -MQ options for GCC-3-compatibility. 86 Created md_init() and md_quote(). (system.c) 87 * Added porting to Visual C++ .net. (system.H, system.c) 88 * Removed the oldest settings on VMS, DEC C and OS-9/09. And 89 removed accordingly vmsparse(), reopen_stdout(), set_stdin(), 90 get_redirection(), put_start_file(), put_fname() and put_source(). 91 (system.H, system.c) 92 * Added strstr() and strcspn(). (lib.c) 93 * Moved open_file() and add_file() from main.c to system.c. 94 Moved sharp() from system.c to main.c. 95 * Updated test-reports on LCC-Win32 and ucpp. 96 * Updated the Japanese documents. (The English documents are not 97 yet updated.) 98 992003/03/29 kmatsui 100 * V.2.3 patch 1. 101 * Debugged the modes other than STANDARD. (system.c) 102 1032003/02/28 kmatsui 104 * V.2.3 release. 105 * Implemented identifier-like operators in C++98. Created 106 chk_ops() in eval.c and id_operator() in support.c. (eval.c, 107 control.c, support.c) 108 * Reinforced checking of __VA_ARGS__. (control.c) 109 * Enabled interspersed options between filename arguments. 110 (system.c) 111 * Renamed #pragma __debug and #pragma __warning to #pragma 112 __debug_cpp and #pragma __warning_cpp. (system.c) 113 * Created the edition of Validation Suite for GCC / testsuite. 114 * -j option (GCC-compatible diagnostic format) added for testsuite. 115 * Created the document named mcpp-summary.pdf. 116 * Updated documents. 117 * Released English version of documents which were translated by 118 Highwell, inc. ltd. from the Japanese documents and revised by 119 kmatsui. 120 1212002/12/16 kmatsui 122 * V.2.3 prerelease 2. 123 * Port to GCC 3.2. (system.H, system.c) 124 * Fixed the bug of #include_next. (system.c) 125 * GCC-compatible options (-I-, -std=*) added. (system.c) 126 * Created norm_path() to normalize include directories. (system. 127 c) 128 * Fixed the bug of rescan() which warns an innocent macro call. 129 (expand.c) 130 * Updated documents. Renamed the documents. 131 1322002/08/26 kmatsui 133 * V.2.3 prerelease 1. 134 * Updated according to C99 (ISO/IEC 9899:1999). 135 * Added compatibility mode of C++ to C99. (eval.c, expand.c, 136 system.c) 137 * Increased the class of warnings from four (OR of 1, 2, 4, 8) 138 to five (OR of 1, 2, 4, 8, 16). Changed some errors to warnings. 139 * Fixed the bug of 0-parameter function-like macro. Modified re- 140 examination of macro of the same name. (expand.c) 141 * Fixed the bug of handling digraphs. Implemented UCN in pp- 142 number and string-literal. (support.c) 143 * Fixed the bugs of parse_env() and bsl2sl(). (system.c) 144 * Implemented many GCC-compatible options. Added -dM, -dD, 145 -include and -isystem option for GCC. Added -a (-lang-asm, -x 146 assembler-with-cpp) option. Extended -D option to enable 147 function-like macro definition. Changed specification of -S 148 option and added -V, -h option. (system.c) 149 * Implemented #include_next and #warning for GCC. Implemented 150 also #pragma __include_next and #pragma __warning_cpp. (system. 151 c) 152 * Created conv_case(), chk_env() and at_end(). Split set_limit(), 153 set_pragma_op(), def_a_macro() from dooptions(). Split 154 search_dir() from openinclude(). Removed is_id(). (system.c) 155 * Port to Linux / GCC 2.95.3, LCC-Win32, Borland C 5.5. (system. 156 H, control.c, system.c) 157 * Renamed functions and some variables using underscore to 158 separate the two words. (internal.H, all the *.c files) 159 * Updated the Validation Suite. 160 * Updated the documents. 161 * Renamed the directories and the documents by NIIBE Yutaka. 162 * Registered to CVS repository at m17n.org by NIIBE Yutaka 163 <gniibe@fsij.org>. 164 1651998/11 kmatsui 166 * V.2.2 167 * Updated according to C++98 (ISO/IEC 14882:1998) 168 * Changed to evaluate "true" as 1 and "false" as 0 on C++, 169 according to C++ Standard. (eval.c) 170 * Updated UCN constraint on C++ according to C++ Standard. 171 (support.c) 172 * Fixed the bug of interaction of predefined non-standard macro 173 with -D option. (main.c, control.c, expand.c, system.c) 174 * Created undef_a_predef(). (main.c) 175 * Removed alloc_mem(). (system.c) 176 1771998/09 kmatsui 178 * V.2.1 179 * Updated C99 features according to 1998/08 draft (including UCN, 180 optional multi-byte-character in identifier, type of #if 181 expression in integer of maximum size and concatenation of wide- 182 character-string-literal and character-string-literal). (main.c, 183 eval.c, support.c) 184 1851998/08 kmatsui (Kiyoshi Matsui <kmatsui@t3.rim.or.jp>) 186 * V.2.0 187 * First release of MCPP (DECUS cpp V.2) at nifty-serve and 188 vector/software-pack. 189 * Re-written according to ISO 9899:1990 and it's Amendment 1, 190 Corrigendum 1, 2. 191 * Implemented translation phases precisely. (support.c) 192 * Revised tokenization according to the Standard and Amendment1. 193 (support.c & others) 194 * Implemented the pre-defined macros __STDC__, __STDC_VERSION__, 195 __TIME__, and revised __DATE__. Made these standard macros 196 cannot be undefined nor redefined. (main.c) 197 * Implemented _Pragma() operator. (main.c & others) 198 * Revised some non-standard pre-defined macros. (main.c) 199 * Implemented #error directive. The error message is output to 200 the stderr. (control.c) 201 * Implemented #pragma __once directive, -i option and -M* option, 202 imported from GCC. (control.c & others) 203 * Implemented #pragma __put_defines, #pragma __debug directives 204 and the old style directives corresponding to them. (system.c & 205 others) 206 * Made #pragma lines to be output with warning to the stderr for 207 the compiler which can't recognize the directive. (system.c) 208 * Made #line argument to be subject to macro expansion. 209 (control.c, support.c) 210 * Reinforced the test of #define syntax. (control.c) 211 * Created Standard conforming mode of macro-expansion (including 212 the processing of #, ## operators). (expand.c) 213 * Created "post-Standard" mode of preprocessing, which is a 214 simplified version of Standard mode. (all the sources) 215 * Simplified CON_FALSE mode corresponding to K&R 1st. 216 specifications. CON_NOEXPAND, CON_EXPAND modes of the original 217 version are retained (after revising). (main.c, control.c eval. 218 c, expand.c) 219 * Revised # operator so as to inserts \ before \ or " in 220 stringized arguments (except in MBCHAR) in Standard mode. 221 (expand.c) 222 * Changed the type of #if expression from int to long / unsigned 223 long. Reinforced expression evaluation. (eval.c) 224 * Implemented wide character constant, multi-character character 225 constant, and revised multi-byte character constant in #if 226 expression. (eval.c) 227 * Revised the handling of MBCHAR in string literal and character 228 constant. (support.c, expand.c, eval.c, main.c) 229 * Supplemented the optional phase for the pre-Standard compiler- 230 proper to concatenate adjacent string literals, convert '\a' and 231 '\v' to octals, convert digraphs. (main.c) 232 * Implemented the features of C99-1997/11 draft except Unicode- 233 related features (_Pragma operator, variable arguments of macro, 234 // comments, long long of #if expression, p+ of pp-number) (all 235 the sources) 236 * Supplemented the C++ preprocessor option. (support.c, system. 237 c) 238 * Refined error checks and diagnostic messages. (all the 239 sources) 240 * Implemented -M* option. (main.c, system.c) 241 * Updated MS-DOS memory model option. (system.c) 242 * Revised command line options. (system.c) 243 * Made the source files compilable by C++ as well as C. (all 244 the sources) 245 * Re-organized and re-written the source files to be portable to 246 many systems. (all the sources) 247 * 248 * main.c: 249 * Renamed cpp1.c main.c. 250 * Created do_pragma_op(), de_stringize(), devide_line(), putout(), 251 putline(), post_preproc(), conv_esc(), conv2oct(), is_last_esc(), 252 esc_mbchar(), conv_a_digraph(). 253 * Removed output(). 254 * Moved sharp() from cpp1.c to system.c, addfile(), openfile(), 255 initdefines(), unpredefine() from cpp3.c to main.c, 256 * Revised most of the functions and variables. 257 * 258 * control.c: 259 * Renamed cpp2.c control.c. 260 * Moved dodefine(), is_formal(), mtokensave(), stparmscan(), 261 doundef() from cpp4.c to control.c. 262 * Moved lookid(), defendel(), dump_a_def() from cpp6.c to 263 control.c. 264 * Moved doinclude(), openinclude(), vmsparse() from cpp2.c to 265 system.c. 266 * Split doline() from control(). 267 * Split getparm(), getrepl(), def_stringization() from dodefine(). 268 * Split dumprepl() from dump_a_def(). 269 * Devided defendel() to install(), undefine(), lookprev(). 270 * Removed textput(), charput(), checkparm() from cpp4.c. 271 * Expanded specification of stparmscan(). 272 * Revised most of the functions. 273 * 274 * eval.c: 275 * Renamed cpp5.c eval.c. 276 * Created overflow(), dumpval(). 277 * Split evalsval(), evaluval() from evaleval(). 278 * Made #if error returns 0 (rather than 1). 279 * Changed the type of #if evaluation from int to long / unsigned 280 long (unsigned long is only for the compiler which has that type) 281 or long long / unsigned long long for C99. 282 * Reinforced expression evaluation (eval(), opdope[]). 283 * Implemented evaluation of multi-character character constant, 284 wide character constant and revised evaluation of multi-byte 285 character constant. 286 * Revised most of the functions. 287 * 288 * expand.c: 289 * Split from cpp4.c and cpp6.c (support.c). 290 * Created Standard conforming mode of macro expansion. 291 * Created is_macro(), squeeze_ws(), skip_macro() as common 292 routines, expand(), replace(), def_special(), prescan(), 293 catenate(), stringize(), substitute(), rescan(), disable_repl(), 294 enable_repl(), is_able_repl() for MODE >= STANDARD, expand(), 295 conv_st_quote() for MODE < STANDARD. 296 * Split expcollect() into collect_args() and get_an_arg(). 297 * Renamed macroid() to rescan(), expand() to replace(), expstuff 298 () to substitute() for MODE < STANDARD, dumpparm() to dump_args(). 299 * Revised most of the functions. 300 * 301 * support.c: 302 * Renamed cpp6.c support.c. 303 * Created get_unexpandable(), scantoken(), cat_line(), scanop(), 304 parse_line(), last_is_mbchar(), cnv_digraph(), at_eof(), 305 xrealloc(), putline(), dumptoken(). 306 * Split getline(), read_a_comment() from get(). 307 * Extended cfatal(), cerror(), cwarn(), removing cierror(), 308 ciwarn(). 309 * Removed save(), cget(). 310 * Moved macroid(), catenate(), appendstring() from cpp6.c to 311 expand.c, lookid(), defendel() from cpp6.c to control.c. 312 * Renamed scanstring() to scanquote(), getmem() to xmalloc(). 313 * Revised most of the functions. 314 * Revised line splicing and tokenization. 315 * 316 * system.c: 317 * Created this file gathering routines from other files. Moved 318 sharp(), sharpsub(), getredirection() from cpp1.c to system.c, 319 doinclude(), openinclude(), hasdirectory(), vmsparse() from cpp2. 320 c to system.c, setincdirs(), dooptions(), zap_uc() from cpp3.c 321 to system.c, 322 * Created setoptlist(), setcplus(), bsl2sl(), put_depend(), 323 dopragma(), doonce(), included(), dumppath(), is_junk(), 324 alloc_mem(), print_heap(); 325 * Split reopen_stdout(), setstdin() from main(), put_start_file(), 326 putfname() from cppmain(), setfiles(), usage(), mem_model(), 327 is_id() from dooptions(), doold(), dodebug(), doasm(), put_asm() 328 from control(). 329 * Split setincdirs() to setsysdirs(), setenvdirs(), parse_env(), 330 set_a_dir(). 331 * Moved type[] from cpp6.c to system.c. 332 * Revised most of the functions. 333 * 334 * system.H: 335 * Re-written and renamed from cppdef.h. 336 * 337 * internal.H: 338 * Re-written and renamed from cpp.h. 339 * 340 * Created Validation Suite for C/C++ preprocessing. 341 * 342 * Provided some supplementary tools for preprocessor testing. 343 * 344 * Wrote comprehensive documents (in Japanese). 345 346* Edit history of DECUS CPP (MM: Martin Minow) 347 * 21-May-84 MM "Field test" release 348 * 11-Jul-84 MM "Official" first release (that's what I thought!) 349 * 31-Aug-84 MM USENET net.sources release. 350 * 7-Dec-84 MM Stuff in Nov 12 Draft Standard 351 * 07-Jun-85 KR Latest revision 352