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