ChangeLog of MCPP and its accompanying Validation Suite 2007/05/19 kmatsui * V.2.6.4 * Fixed memory leaks in subroutine-build related to file-> filename, sharp_filename and others. (by Juergen Mueller and kmatsui). (main.c, directive.c, support.c, system.c) * Revised expanding() and expanding_macro[] to fix memory leaks. Created clear_exp_mac(). (internal.H, expand.c, support.c) * Fixed a bug of accessing non-allocated memory. (by isr). (support.c) * Revised output of // comment by -C option. Output // comment as it is, not converting to /* */. (thanks to Taras Glek). (support.c) * Changed output of line top white spaces in other than POST_STANDARD mode to preserve them as they are, rather than squeezing to one space, in order to make output more human- readable. (main.c, support.c) * Removed the settings to be compiled with C++. (configed.H, noconfig.H, noconfig/*.mak) * Updated version-info for shared-library-build from 0:0:0 to 0: 1:0. * Changed installation directory of some documents in stand- alone-and-compiler-independent-build by configure or by binary packages. * Updated the documents. Note that cpp-test.html were not updated. 2007/04/07 kmatsui * V.2.6.3 * Fixed a bug of some #line directive handling which wrongly affected #include path. Added a new member for real file name to struct FILEINFO, and made #line directive does not affect real file name. (internal.H, main.c, support.c, system.c) * Enabled dereferencing of symbolic linked directory (as well as file) of #include path-list and include directory. Split deref_syml() from norm_path(). (system.c) * Revised again diagnostic messages for some macro expansions. (internal.H, expand.c, support.c) * Relaxed token checking and syntax checking in lang_asm mode. (expand,c, support.c) * Implemented GCC3-spec variadic macro for GCC-specific-build. (internal.H, directive.c, expand.c) * Added some predefined macro for GCC-specific-build. (system.c) * Revised output routines abstracting output device, and implementing optional memory buffer output when built with MCPP_LIB macro. Created mcpp_lib.h, mcpp_lib_fputs(), mcpp_lib_fputc(), mcpp_lib_fprintf(), mcpp_use_mem_buffers(), mcpp_get_mem_buffer(), mcpp_set_out_func(), mcpp_reset_def_out_func(), mem_putc(), mem_puts(), append_to_buffer(), function pointers mcpp_fputs, mcpp_fputc, mcpp_fprintf and some macros. This update disabled compilation by C++. (All were contributed by Greg Kress and slightly modified by kmatsui) (internal.H, main.c, directive.c, eval.c, expand.c, mbchar.c, support.c, system.c, lib.c, mcpp_lib.h) * Renamed some global names in order to lessen the possibility of name collisions in subroutine-build. Renamed the variables mode, cplus, line, debug, type[] and work[] to mcpp_mode, cplus_val, src_line, mcpp_debug, char_type[] and work_buf[] respectively. Renamed the functions install(), eval(), expand(), get() and unget() to install_macro(), eval_if(), expand_macro(), get_ch() and unget_ch() respectively. (internal.H, main.c, directive.c, eval.c, expand.c, mbchar.c, support.c, system.c) * Added 'mcpplib' target to make subroutine (library) build in configure.ac and noconfig/*.mak. * Revised some other minor points. (all sources) * Changed default setting of noconfig.H to that of FreeBSD 6.* / stand-alone / GCC 3.4. (noconfig.H) * Added documentation on source checking of glibc 2.4. (mcpp- manual.html) * Abolished 'install-data' and 'uninstall-data' targets of configured makefile. On the other hand, made 'install' target install also mcpp-manual.html. * Provided stand-alone-and-compiler-independent-build binary packages port, rpm, deb, zip and their corresponding source packages. 2006/11/12 kmatsui * V.2.6.2 * Renamed control.c as directive.c and renamed control() as directive(). * Fixed a bug of #else handling in pre-Standard modes. (directive.c) * Fixed a bug of mcpp specific directives such as #debug or # put_defines in pre-Standard modes. (system.c) * Fixed a bug of warning options for GCC-specific-builds. (system.c) * Fixed a bug of macro expansion timing in #include directive line. (system.c) * Revised some other minor points, moved cur_file() from main.c to system.c. (main.c, eval.c, system.c) * Revised diagnostic messages for some macro expansions. (internal.H, expand.c, support.c) * Fixed a bug of nested includes with relative paths. (thanks to Leo Savernik). (system.c) * Fixed memory leaks in routines related to normalizing path- list. (by Juergen Mueller). (system.c) * Added MCPP_LIB setting to use mcpp as a subroutine from other main program. Created init_main(), init_directive(), init_eval(), init_support(), init_system(), init_lib(), clear_filelist() and clear_symtable(). Created testmain.c as a sample source. (all were contributed by Juergen Mueller and slightly modified by kmatsui). (internal.H, main.c, directive.c, eval.c, expand.c, support.c, system.c, lib.c) * Changed the macro STAND_ALONE to INDEPENDENT. * Changed the terminology of building methods in the documents. (INSTALL, mcpp-porting.html, mcpp-manual.html) * Rewrote and converted the text files in 'doc' and 'doc-jp' directories into html files. * Updated and corrected many points of the documents. 2006/08/12 kmatsui * V.2.6.1 * Enabled automatic conversion from [CR+LF] to [LF]. (support.c) * Set the limit of #include nesting to INCLUDE_NEST (default: 256) in order to prevent infinitely recursive #includes. (system.H, system.c) * Revised white space handling in
style header-name which is defined by macro. (system.c) * Enabled -fworking-directory option for GCC-specific-build. created put_info(). (system.c) * Fixed a bug of macro definition. (lib.c) * Fixed a bug of '#pragma once' failure. (by Greg Kress). (system.c) * Fixed some other minor bugs in sources. * Revised path-list handling on CygWIN. Enabled -mno-cygwin option for CygWIN GCC-specific-build. (configure.ac, noconfig.H, system.c) * Added porting to MinGW. Created cc1.c to be invoked from GCC and to invoke mcpp or GCC's cc1/cc1plus from it, because MinGW GCC rejects to invoke a shell-script even if it is named cc1 and because MinGW does not support symbolic link. (configure.ac, src/Makefile.am, configed.H, noconfig.H, system.c) * Fixed bugs in some noconfig/*.mak. * Moved changelogs from the source files to ChangeLog and ChangeLog.old. 2006/07/15 kmatsui * V.2.6 * Integrated STANDARD mode and PRE_STANDARD mode into one executable, differentiating the modes by the execution time options. (all the sources) * Absorbed DEBUG, DEBUG_EVAL, OK_MAKE into default, OK_DIGRAPHS, OK_PRAGMA_OP into default of STD and POST_STD mode, OK_TRIGRAPHS into default of STD mode, OK_SIZE into default of KR and OLD_PREP modes. (all the sources) * Changed --enable-maintainer-mode option of configure to --enable-replace-cpp option which generates compiler-specific- build of mcpp. Made compiler-specific-build installed only into a compiler-specific-directory. (configure.ac, src/Makefile.am) * Made stand-alone-build independent from any compiler-systems. It no longer requires GCC-specific header files. (configure.ac, configed.H, noconfig.H, system.c) * Revised '#pragma once' and handling of include directories list, judging a identity of directory and file by converting it to absolute path, and dereferencing symbolic linked file. (system.c) * Revised #line output and its related problem at the end of an included file. (thanks to Jay Prakash). (internal.H, support.c) * Added portings to GCC V.4.0, CygWIN 1.5.18, Visual C++ 2005 and LCC-Win32 2006-03. (noconfig.H, system.c) * Added some options for Visual C++. (system.c) * Removed settings for pre-C90 compiler (string concatenation by preprocessor, '\a' and '\v' handling, no unsigned long #if, no Standard library functions, non-prototype declarations, no # pragma). (all the sources) * Removed settings for MS-DOS compiler, DJGPP and Plan9. (*.H, system.c, mbchar.c) * Removed the implementation of post_preproc() for pre-Standard compiler. Removed conv_esc(), is_last_esc(), conv2oct(). Removed HAVE_C_BACKSLASH_A and CONCAT_STRINGS macros. (main.c) * Degraded the diagnostic of #if expression from error to warning, which only overflows the range of 'long / unsigned long' and does not overflow the range of 'long long / unsigned long long' in modes other than C99. (eval.c) * Enabled 'i64' ('ui64', 'i32', 'i16', etc.) suffixes for integer, which are recognized when COMPILER is MSC or BORLANDC. (eval.c) * Renamed functions and some variables, created expand_init(), according to integration of STANDARD and PRE_STANDARD modes. (expand.c) * Removed '#pragma MCPP include_next'. (system.c) * Created init_msc_macro(), parse_warn_level(), chk_opts(), init_predefines(), init_std_defines(), do_prestd_directive(). Removed set_cplus(), mem_model(). (system.c) * Removed Standard functions (memmove(), memcpy(), memcmp(), strstr(), strcspn()). (lib.c) * Changed default setting of noconfig.H to FreeBSD 5.* / stand- alone / GCC 3.4. (noconfig.H) * Renamed 'doc' directory as 'doc-jp' and renamed 'doc_eng' as 'doc'. * Removed some manuscript files of mcpp-summary.pdf from the distribution. * Validation Suite: Revised a few testcases. * Updated all the documents accordingly.