📄 history.txt
字号:
MetreCopyright (c) 1993-1995 by Paul Long All rights reserved.This file contains the modification history for Metre.History-------2.3 4/3/95 Specify current directory, e.g., ./, in makefiles for testing tools. Change "dummy" target in makefiles to "all" since this is the customary name. Fix mistake in documentation for Halstead Programming Time equation (code was okay). Fix bug in Mtree where a macro invokation before the first function definition causes a segmentation fault under SunOS (DOS blissfully continued executing with the same bad data). Move the sections, Building Metre and Modifying Metre, to a separate file, install.txt. These sections would typically only be interesting to the system administrator who installs Metre or the brave sole who wants to modify the tools or write his or her own tool. Move this History section to its own file, history.txt. Added fcnrules.c to the distribution although it is not supported like the other two rules files.2.2 2/15/95 Changed Mtree's -w option to -m to avoid conflict with the general option of the same name. Added man pages.2.1 2/7/95 Calculate Halstead's intelligence-content, programming-time, and language-level metrics. Calculate Myers' extended-complexity metric. Added -c option to metrics tool to print comma-separated-value format. Ability to specify particular metrics.2.0a 1/28/95 Have separate makefiles for MS-DOS and UNIX. Provide my_memmove() for compilers that do not have memmove() in their standard library. Modify scan.l so that lex_yy.c should work with compilers that use an internal representation for newline other than 10. Renamed operator() to oper() so as to not use a C++ keyword. Calculate Halstead's program-level and program-effort metrics.2.0 1/17/95 Removed three duplicate rules from lex specification. (Flex properly complained about this.) Moved declarations from "user functions" section to "definitions" section of yacc specification. MKS and AT&T yacc like it either way, but Bison wants it in the definition section, where it should probably be anyway. Allow trailing comma in enumerator list, e.g., enum { RED, ORANGE, }; This is not valid Standard C, but some C compilers allow it. Should not hurt to allow it. Allow register (all storage-class specifiers, actually) to modify function-parameter declarations. Only allow "-" to introduce a command-line option, not "-" and "/". This is because of the ambiguity with UNIX-style paths, as in /tmp/file.i. Can be changed to support "/". See comment in metreint.h. Remove #error directives from scan.l because ULTRIX C compiler did not like it for some reason. Insert blank line before #if directives because ULTRIX C compiler did not one of them for some reason. Added command-line option, -w, to suppress warnings. Make command-line-option characters case sensitive. Change "Exec:" label in output to just "Code:" because the distinction between executable vs. non-executable (declaration) is not currently made by Metre. Take input "file" from stdin if no file name is specified on command line. Calculate Halstead length, vocabulary, and volume. Calculate average identifier length. Add project-help trigger to allow a rule to print help info for any rules' options. Add -f command-line option to read arguments from file rather than command line. Allow command name to be provided via a rule, as in if (prj.need_cmd_name) cmd_name("MYTOOL"); Print more thorough stats. Print project summary if more than one module. Use FLEX_SCANNER to determine whether flex is being used. Include a makefile in the distribution. Include sample output of metrics tool and call-tree tool. Fixed bug where the -D option would match identifiers that also simply started with the id. For example, -Dfar= would match "far" and "farcalloc". Detect and report overrunning the input buffer in the scanner when input buffering is being done (READ_LINE is true). Allow INPUT_LINE_MAX_LEN to be overriden on the command line when the lexer is compiled, e.g., -DINPUT_LINE_MAX_LEN=10000. Count declaration statements. Used to just count executable statements. Base function-point backfiring on declaration and executable statements. Count preprocessor statements. Also consider preprocessor statements when backfiring function points. Only calculate Halstead metrics when the -H command-line option is specified. Adjust function points based on cyclomatic complexity with my own adjustment algorithm, but only if the -a command-line option is specified. Change parser to allow an empty translation unit. This is for parsing header files that contain only preprocessor directives. Change MKS' quoted path names in ytab.c and lex_yy.c to UNIX style in order to get rid of escaped characters. Specifically, the Microsoft C compiler complained about the \m's in line directives, such as #line 2 "c:\mks/etc/yyparse.c"1.08 9/3/94 First distribution with full source. Valiant attempt to make lex specification portable across different versions of lex. (yacc specification should also be portable.) Added compile-time ability to turn off input buffering. If present, Use # [line] <n> ["<file name>"] instead of physical line number and file name so that the original source before translation is reflected.1.07 3/7/94 Bug fixed where function name would be overridden by a function declaration within the function.1.06 2/21/94 Redundant -U command-line option removed. For example, -Uapple is equivalent to -Dapple=. Metre has no predefined constants to undefine. In addition to the original MS-DOS version, versions for VMS and Sun UNIX are now provided.1.05 2/1/94 Obsolete -T command-line option removed. Rules added to report number of comment lines (if not preprocessed out, of course). Bug fixed where identifiers in the function-declarator parameter list were incorrectly interpreted as typedef identifiers. Metre now recognizes the following without a syntax error: typedef (*SIM_BODY_FP)(int status); struct { int status; };1.04 1/29/94 First public availability.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -