Files correlati : Commento : Aggiunto il preprocessore c++ mcpp per sostituire il compilatore nella compilazione delle maschere.
		
			
				
	
	
		
			326 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			326 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ChangeLog of MCPP and its accompanying Validation Suite
 | |
| 
 | |
| 2008/11/30  kmatsui
 | |
|         * V.2.7.2
 | |
|         * Enabled some CPU-specific predefined macros in compiler-
 | |
|         independent-build as well as compiler-specific-build, because
 | |
|         there are some occasions which require those macros when we use
 | |
|         some compiler system's header files.  Created init_cpu_macro().
 | |
|         (configure.ac, noconfig.H, configed.H, main.c, system.c)
 | |
|         * Enabled -m32 and -m64 options even on 32-bits systems and on
 | |
|         compiler-independent-build, when the OS is UNIX-like one.  These
 | |
|         options change some predefined macros.  (system.c)
 | |
|         * Made -z option to output #include lines themselves.  (system.c)
 | |
|         * Fixed a bug of source line numbering in library-build.  (by
 | |
|         Dwayne Boone) (main.c)
 | |
|         * Fixed a few minor bugs.
 | |
|         * Dropped support for Borland C 4.0.
 | |
|         * Updated the shell-scripts, makefiles and difference files, and
 | |
|         revised some mistakes.
 | |
|         * Updated the documents.
 | |
| 
 | |
| 2008/05/19  kmatsui
 | |
|         * V.2.7.1
 | |
|         * Fixed a bug of newline synchronization on -K option.  Created
 | |
|         sync_linenum().  (Thanks to Benjamin Smedberg) (directive.c)
 | |
|         * Made GCC-specific-build on x86_64 and ppc64 have two sets of
 | |
|         predefines for 32bit mode and 64bit mode, and implemented -m32
 | |
|         and -m64 options.  (Thanks to Benjamin Smedberg) (configure.ac,
 | |
|         set_mcpp.sh, system.c)
 | |
|         * Stopped to use freopen() so that a main program which links
 | |
|         libmcpp can use stdin, stdout and stderr.  (by Benoit Foucher)
 | |
|         (main.c)
 | |
|         * Fixed a bug of file-handle leak on -MD and -MF options.
 | |
|         (Thanks to Masashi Fujita) (system.c)
 | |
|         * Added ports to Vicual C++ 6.0 and Borland C++ 5.9 (aka C++
 | |
|         Builder 2007).  (by Dwayne Boone) (vc6.dif, bc59.dif, eval.c)
 | |
|         * Revised declaration of stpcpy().  (internal.H)
 | |
|         * Split mcpp_out.h from mcpp_lib.h.
 | |
|         * Made library-build install also an mcpp executable and minimal
 | |
|         documents as well as libmcpp for a convenience of library
 | |
|         package.  Created main_mcpplib.c.  Made all the binary packages
 | |
|         library-build.  (by Yutaka Niibe and kmatsui) (Makefile.am, src/
 | |
|         Makefile.am)
 | |
|         * Split config/cygwin_root and config/mingw_root from
 | |
|         configure.ac to avoid a trouble of backslash character handling
 | |
|         on some version of bash.  (Thanks to Aleksandar Samardzic)
 | |
|         * Changed autoconf 2.59 to 2.61 and automake 1.9.6 to 1.10.
 | |
|         * Updated the documents accordingly.
 | |
| 
 | |
| 2008/03/23  kmatsui
 | |
|         * V.2.7
 | |
|         * Created macro notification mode, implemented -K option and '#
 | |
|         pragma MCPP debug macro_call' sub-directive to enable this mode
 | |
|         on STD mode.  Created get_src_location(), print_macro_inf(),
 | |
|         print_macro_arg(), close_macro_inf(), chk_magic_balance(),
 | |
|         remove_magics(), some MAC_* macros to define magic characters,
 | |
|         struct LINE_COL, MACRO_INF.  Revised many functions.
 | |
|         (Specifications mostly by Taras Glek, partly by Samuel,
 | |
|         implemented mostly by kmatsui and partly by Taras Glek and
 | |
|         Samuel).  (internal.H, main.c, directive.c, eval.c, expand.c,
 | |
|         support.c, system.c)
 | |
|         * Created -k option to keep horizontal white spaces as they are
 | |
|         and convert comment to spaces of the same length on STD mode.
 | |
|         (Specs by Taras Glek, implemented by kmatsui).  (internal,H,
 | |
|         main.c, directive.c, mbchar.c, support.c)
 | |
|         * Implemented GCC2-spec variadic macro on STD mode in GCC-
 | |
|         specific-build.  (by Taras Glek and kmatsui).  (directive.c)
 | |
|         * Enabled GCC-like buggy handling of macro containing 'defined'
 | |
|         token in #if directive on GCC-specific-build.  (by Taras Glek).
 | |
|         (expand.c)
 | |
|         * Reordered initialization steps and enabled undefining of not-
 | |
|         Standard-required predefined macros.  Created undef_macros().
 | |
|         Removed undef_a_predef().  (main.c, system.c)
 | |
|         * Enabled non-conforming predefined macros such as 'linux' by
 | |
|         default on GCC-specific-build for compatibility with GCC.
 | |
|         Removed undef_gcc_macros().  Created DEF_NOARGS_* macros for
 | |
|         diagnostics sake.  (internal.H, system.c)
 | |
|         * Fixed a bug of file searching failure when a file is specified
 | |
|         by relative path in -include option.  Split is_full_path() from
 | |
|         open_include().  (thanks to Benjamin Smedberg) (system.c)
 | |
|         * Fixed a bug of mcpplib initialization which caused problem on
 | |
|         CygWIN.  (main.c, system.c, lib.c)
 | |
|         * Fixed a bug of unterminated source file handling.  (thanks to
 | |
|         Phil Knight) (support.c)
 | |
|         * Made norm_path() check existence of directory/file before
 | |
|         normalization.  As its results, non-existent directory specified
 | |
|         by -I option was disabled, "non-existent/../existent" was judged
 | |
|         as non-existent before wrongly normalizing to "existent", and #
 | |
|         include "directory" was made not to open.  Created norm_dir().
 | |
|         (thanks to Taras Glek and Dave Mandelin) (system.c)
 | |
|         * Stopped to convert path-list on Windows to lowercase-letters.
 | |
|         Changed path-list comparing function on Windows from strcmp() to
 | |
|         strcasecmp() or stricmp().  (system.c)
 | |
|         * Changed allocation of buffer for -M* options and incdir[],
 | |
|         fnamelist[], once_list[] from fixed size to dynamically
 | |
|         enlarging ones.  (system.c)
 | |
|         * Made #line output for GCC-specific-build closer to GCC.
 | |
|         Changed FILEINFO and DEFBUF struct, moved sharp() from main.c to
 | |
|         system.c, revised many functions.  (system.c, support.c, main.c,
 | |
|         directive.c)
 | |
|         * Absorbed lib.c into system.c.  Renamed getopt() to mcpp_getopt
 | |
|         (), also variables opt* to mcpp_opt*, and made static in order
 | |
|         to prevent linking of glibc getopt().  (thanks to Dwayne Boone)
 | |
|         * Fixed a bug of UTF-8 multibyte character handling, enabled 4-
 | |
|         bytes long sequences, and enabled checking of overlong sequences
 | |
|         and UTF-16 surrogate pairs.  (by Matt Wozniski) (mbchar.c,
 | |
|         support.c)
 | |
|         * Fixed a bug of tokenization in KR and OLD modes.  (support.c)
 | |
|         * Changed FILENAME_MAX to PATH_MAX and FILENAMEMAX to PATHMAX,
 | |
|         because FILENAME_MAX of some systems are too short.  (thanks to
 | |
|         Dwayne Boone)
 | |
|         * Bundled some variables into structs (std_limits, option_flags,
 | |
|         etc.).  Tidied up the sources removing unused codes, rewriting
 | |
|         old comments.  (most of the sources)
 | |
|         * Ported to Mac OS X / Apple-GCC.  Enabled searching of
 | |
|         "framework" directories for #include.  Enabled to search "header
 | |
|         map" file.  Enabled #import, which is #include with
 | |
|         unconditional "once only" feature.  Implemented -F, -arch,
 | |
|         -isysroot options.  Created init_framework(), search_framework(),
 | |
|         search_subdir(), search_header_map(), hmap_hash().  (system.c,
 | |
|         directive.c, set_mcpp.sh, unset_mcpp.sh, configure.ac, src/
 | |
|         Makefile.am)
 | |
|         * Ported to Visual C++ 2008.  Enabled '$' in identifier by
 | |
|         default in Visual-C-specific-build and GCC-specific-build.
 | |
|         (system.H, internal.H, support.c, system.c)
 | |
|         * Added documentation on source checking of firefox 3.0pre.
 | |
|         Added comments on system headers in Mac OS X.  (mcpp-manual.html)
 | |
|         * Updated all the documents.  (mainly by kmatsui, partly by
 | |
|         Taras Glek)
 | |
| 
 | |
| 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 <header with spaces.h> 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)
 | |
|         * Ported 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 to be 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)
 | |
|         * Ported 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.
 | |
| 
 |