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.
 | 
						|
 |