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