Hello community, here is the log from the commit of package cvise for openSUSE:Factory checked in at 2020-06-02 14:34:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cvise (Old) and /work/SRC/openSUSE:Factory/.cvise.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cvise" Tue Jun 2 14:34:18 2020 rev:8 rq:810608 version:1.4.0+git.20200601.4173fa7 Changes: -------- --- /work/SRC/openSUSE:Factory/cvise/cvise.changes 2020-05-11 13:44:17.541493622 +0200 +++ /work/SRC/openSUSE:Factory/.cvise.new.3606/cvise.changes 2020-06-02 14:34:26.130723457 +0200 @@ -1,0 +2,38 @@ +Mon Jun 01 12:24:14 UTC 2020 - [email protected] + +- Update to version 1.3.0+git.20200601.4173fa7: + * Bump to 1.4.0. + * Remove superfluous debugging message. + +------------------------------------------------------------------- +Sat May 30 14:11:58 UTC 2020 - Martin Liška <[email protected]> + +- Use LLVM 10. + +------------------------------------------------------------------- +Sat May 30 13:50:35 UTC 2020 - [email protected] + +- Update to version 1.3.0+git.20200530.444f5f0: + * Add C++ std auto-detection of clangbinarysearch passes. + +------------------------------------------------------------------- +Fri May 29 08:19:52 UTC 2020 - [email protected] + +- Update to version 1.3.0+git.20200528.9dbe6d9: + * Fix bash shebin. + +------------------------------------------------------------------- +Wed May 27 19:42:16 UTC 2020 - [email protected] + +- Update to version 1.3.0+git.20200527.46d9394: + * Add new argument --commands that can replace script. + * Improve wording of error message. + * Support Debug/Release subfolder for Windows builds. + * Report missing external program. + * Document what is expected from interestingness script. + * Port test to PyTest. + * get real location for angle locs + * Add Speed Comparison. + * Mention Gentoo linux package installation. + +------------------------------------------------------------------- Old: ---- cvise-1.3.0+git.20200511.50c821f.tar.xz New: ---- cvise-1.4.0+git.20200601.4173fa7.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cvise.spec ++++++ --- /var/tmp/diff_new_pack.PBDpZ5/_old 2020-06-02 14:34:27.338727279 +0200 +++ /var/tmp/diff_new_pack.PBDpZ5/_new 2020-06-02 14:34:27.342727292 +0200 @@ -17,7 +17,7 @@ Name: cvise -Version: 1.3.0+git.20200511.50c821f +Version: 1.4.0+git.20200601.4173fa7 Release: 0 Summary: Super-parallel Python port of the C-Reduce License: BSD-3-Clause @@ -25,12 +25,12 @@ URL: https://github.com/marxin/cvise Source: %{name}-%{version}.tar.xz BuildRequires: astyle -BuildRequires: clang9-devel +BuildRequires: clang10-devel BuildRequires: cmake BuildRequires: flex BuildRequires: gcc-c++ BuildRequires: indent -BuildRequires: llvm9-devel +BuildRequires: llvm10-devel BuildRequires: ncurses-devel BuildRequires: ninja BuildRequires: python3-Pebble @@ -38,9 +38,9 @@ BuildRequires: python3-pytest4 BuildRequires: unifdef Requires: astyle -Requires: clang9 +Requires: clang10 Requires: indent -Requires: llvm9 +Requires: llvm10 Requires: python3-Pebble Requires: unifdef ++++++ _service ++++++ --- /var/tmp/diff_new_pack.PBDpZ5/_old 2020-06-02 14:34:27.378727406 +0200 +++ /var/tmp/diff_new_pack.PBDpZ5/_new 2020-06-02 14:34:27.382727419 +0200 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="changesgenerate">enable</param> <param name="filename">cvise</param> - <param name="versionformat">1.3.0+git.%cd.%h</param> + <param name="versionformat">1.4.0+git.%cd.%h</param> </service> <service mode="disabled" name="recompress"> <param name="file">*.tar</param> ++++++ cvise-1.3.0+git.20200511.50c821f.tar.xz -> cvise-1.4.0+git.20200601.4173fa7.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/CMakeLists.txt new/cvise-1.4.0+git.20200601.4173fa7/CMakeLists.txt --- old/cvise-1.3.0+git.20200511.50c821f/CMakeLists.txt 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/CMakeLists.txt 2020-06-01 14:20:05.000000000 +0200 @@ -122,11 +122,11 @@ set(cvise_PACKAGE "cvise") set(cvise_PACKAGE_BUGREPORT "https://github.com/marxin/cvise/issues") set(cvise_PACKAGE_NAME "cvise") -set(cvise_PACKAGE_STRING "cvise 1.3.0") +set(cvise_PACKAGE_STRING "cvise 1.4.0") set(cvise_PACKAGE_TARNAME "cvise") set(cvise_PACKAGE_URL "https://github.com/marxin/cvise/") -set(cvise_PACKAGE_VERSION "1.3.0") -set(cvise_VERSION "1.3.0") +set(cvise_PACKAGE_VERSION "1.4.0") +set(cvise_VERSION "1.4.0") configure_file("cmake_config.h.in" "${PROJECT_BINARY_DIR}/config.h") add_definitions("-DHAVE_CONFIG_H") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/CREDUCE_MERGE new/cvise-1.4.0+git.20200601.4173fa7/CREDUCE_MERGE --- old/cvise-1.3.0+git.20200511.50c821f/CREDUCE_MERGE 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/CREDUCE_MERGE 2020-06-01 14:20:05.000000000 +0200 @@ -1,2 +1,2 @@ Last cherry-picked git revision: -0140a6c1e03bd82153818fcc4bf6a21560aed3ca +d5691462d89327479c70ac7ba70456ce2ec11f4b diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/INSTALL.md new/cvise-1.4.0+git.20200601.4173fa7/INSTALL.md --- old/cvise-1.3.0+git.20200511.50c821f/INSTALL.md 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/INSTALL.md 2020-06-01 14:20:05.000000000 +0200 @@ -11,6 +11,13 @@ zypper in cvise ``` +### Gentoo Linux + +```shell +emerge cvise +``` + + ### Using Docker (or Podman) ```shell diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/README.md new/cvise-1.4.0+git.20200601.4173fa7/README.md --- old/cvise-1.3.0+git.20200511.50c821f/README.md 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/README.md 2020-06-01 14:20:05.000000000 +0200 @@ -24,6 +24,18 @@ If you need to reduce programs in some other language, please give it a try. +## Speed Comparison + +I made a comparison for couple of GCC bug reports on my AMD Ryzen 7 2700X Eight-Core Processor +machine with the following results: + +| Test-case | Size | C-Vise Reduction | C-Reduce Reduction | Speed Up | +| --- | --- | --- | --- | --- | +| [PR92516](http://gcc.gnu.org/PR92516) | 6.5 MB | 35m | 77m | 220% | +| [PR94523](http://gcc.gnu.org/PR94523) | 2.1 MB | 15m | 33m | 220% | +| [PR94632](http://gcc.gnu.org/PR94632) | 3.3 MB | 20m | 28m | 40% | +| [PR94937](http://gcc.gnu.org/PR94937) | 8.5 MB | 242m | 303m | 125% | + ## Installation See [INSTALL.md](INSTALL.md). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/clang_delta/CMakeLists.txt new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/CMakeLists.txt --- old/cvise-1.3.0+git.20200511.50c821f/clang_delta/CMakeLists.txt 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/CMakeLists.txt 2020-06-01 14:20:05.000000000 +0200 @@ -319,6 +319,8 @@ "/tests/simplify-callexpr/test2.output" "/tests/simplify-if/macro.c" "/tests/simplify-if/macro.output" + "/tests/simplify-recursive-template-instantiation/test.cc" + "/tests/simplify-recursive-template-instantiation/test.output" "/tests/union-to-struct/union1.c" "/tests/union-to-struct/union1.output" "/tests/union-to-struct/union2.c" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/clang_delta/SimplifyRecursiveTemplateInstantiation.cpp new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/SimplifyRecursiveTemplateInstantiation.cpp --- old/cvise-1.3.0+git.20200511.50c821f/clang_delta/SimplifyRecursiveTemplateInstantiation.cpp 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/SimplifyRecursiveTemplateInstantiation.cpp 2020-06-01 14:20:05.000000000 +0200 @@ -184,10 +184,10 @@ TemplateSpecializationTypeLoc TLoc = TheLocPair->pop_back_val(); TemplateSpecializationTypeLoc ParentTLoc = TheLocPair->pop_back_val(); - SourceLocation LAngleLoc = TLoc.getLAngleLoc(); - SourceLocation RAngleLoc = TLoc.getRAngleLoc(); - SourceLocation ParentLAngleLoc = ParentTLoc.getLAngleLoc(); - SourceLocation ParentRAngleLoc = ParentTLoc.getRAngleLoc(); + SourceLocation LAngleLoc = getRealLocation(TLoc.getLAngleLoc()); + SourceLocation RAngleLoc = getRealLocation(TLoc.getRAngleLoc()); + SourceLocation ParentLAngleLoc = getRealLocation(ParentTLoc.getLAngleLoc()); + SourceLocation ParentRAngleLoc = getRealLocation(ParentTLoc.getRAngleLoc()); std::string InnerStr = ""; RewriteHelper->getStringBetweenLocs(InnerStr, LAngleLoc, RAngleLoc); TheRewriter.ReplaceText(SourceRange(ParentLAngleLoc, ParentRAngleLoc), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/clang_delta/tests/simplify-recursive-template-instantiation/test.cc new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/tests/simplify-recursive-template-instantiation/test.cc --- old/cvise-1.3.0+git.20200511.50c821f/clang_delta/tests/simplify-recursive-template-instantiation/test.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/tests/simplify-recursive-template-instantiation/test.cc 2020-06-01 14:20:05.000000000 +0200 @@ -0,0 +1,3 @@ +template <typename T> +struct array {}; +array<array<int>> x; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/clang_delta/tests/simplify-recursive-template-instantiation/test.output new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/tests/simplify-recursive-template-instantiation/test.output --- old/cvise-1.3.0+git.20200511.50c821f/clang_delta/tests/simplify-recursive-template-instantiation/test.output 1970-01-01 01:00:00.000000000 +0100 +++ new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/tests/simplify-recursive-template-instantiation/test.output 2020-06-01 14:20:05.000000000 +0200 @@ -0,0 +1,3 @@ +template <typename T> +struct array {}; +array<int> x; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/clang_delta/tests/test_clang_delta.py new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/tests/test_clang_delta.py --- old/cvise-1.3.0+git.20200511.50c821f/clang_delta/tests/test_clang_delta.py 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/clang_delta/tests/test_clang_delta.py 2020-06-01 14:20:05.000000000 +0200 @@ -484,6 +484,9 @@ def test_simplify_if_macro(self): self.check_clang_delta('simplify-if/macro.c', '--transformation=simplify-if --counter=1') + def test_simplify_simple_recursive_template(self): + self.check_clang_delta('simplify-recursive-template-instantiation/test.cc', '--transformation=simplify-recursive-template-instantiation --counter=1') + def test_union_to_struct_union1(self): self.check_clang_delta('union-to-struct/union1.c', '--transformation=union-to-struct --counter=1') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/cvise/passes/abstract.py new/cvise-1.4.0+git.20200601.4173fa7/cvise/passes/abstract.py --- old/cvise-1.3.0+git.20200511.50c821f/cvise/passes/abstract.py 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/cvise/passes/abstract.py 2020-06-01 14:20:05.000000000 +0200 @@ -83,7 +83,10 @@ program = self.external_programs[name] if not program: return False - return shutil.which(program) is not None + result = shutil.which(program) is not None + if not result: + logging.error("cannot find external program {}".format(name)) + return result def check_prerequisites(self): raise NotImplementedError("Class {} has not implemented 'check_prerequisites'!".format(type(self).__name__)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/cvise/passes/clangbinarysearch.py new/cvise-1.4.0+git.20200601.4173fa7/cvise/passes/clangbinarysearch.py --- old/cvise-1.3.0+git.20200511.50c821f/cvise/passes/clangbinarysearch.py 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/cvise/passes/clangbinarysearch.py 2020-06-01 14:20:05.000000000 +0200 @@ -5,6 +5,7 @@ import shutil import subprocess import tempfile +import time from cvise.passes.abstract import * @@ -12,7 +13,24 @@ def check_prerequisites(self): return self.check_external_program("clang_delta") + def detect_best_standard(self, test_case): + best = None + best_count = -1 + for std in ('c++98', 'c++11', 'c++14', 'c++17', 'c++20'): + self.clang_delta_std = std + start = time.monotonic() + instances = self.count_instances(test_case) + took = time.monotonic() - start + + if instances > best_count: + best = std + best_count = instances + logging.debug('available instances for %s: %d, took: %.2f s' % (std, instances, took)) + logging.info('using C++ standard: %s with %d instances' % (best, best_count)) + self.clang_delta_std = best + def new(self, test_case): + self.detect_best_standard(test_case) return BinaryState.create(self.count_instances(test_case)) def advance(self, test_case, state): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/cvise/utils/error.py new/cvise-1.4.0+git.20200601.4173fa7/cvise/utils/error.py --- old/cvise-1.3.0+git.20200511.50c821f/cvise/utils/error.py 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/cvise/utils/error.py 2020-06-01 14:20:05.000000000 +0200 @@ -115,6 +115,8 @@ echo $? should result in "0" being echoed to the terminal. +Please ensure that the test script takes no arguments; it should be hard-coded to refer +to the same file that is passed as an argument to C-Vise. See "cvise.py --help" for more information.""".format(test_cases=" ".join(self.test_cases), test=self.test) return message diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/cvise/utils/testing.py new/cvise-1.4.0+git.20200601.4173fa7/cvise/utils/testing.py --- old/cvise-1.3.0+git.20200511.50c821f/cvise/utils/testing.py 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/cvise/utils/testing.py 2020-06-01 14:20:05.000000000 +0200 @@ -490,8 +490,6 @@ self.pass_statistic.stop(self.current_pass) def process_result(self, test_env): - logging.debug("Process result") - if self.print_diff: diff_str = self.diff_files(self.current_test_case, test_env.test_case_path) logging.info(diff_str) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cvise-1.3.0+git.20200511.50c821f/cvise.py new/cvise-1.4.0+git.20200601.4173fa7/cvise.py --- old/cvise-1.3.0+git.20200511.50c821f/cvise.py 2020-05-11 08:52:08.000000000 +0200 +++ new/cvise-1.4.0+git.20200601.4173fa7/cvise.py 2020-06-01 14:20:05.000000000 +0200 @@ -9,6 +9,8 @@ import time import datetime import psutil +import platform +import tempfile import importlib.util @@ -62,6 +64,13 @@ path = None if local_folder: local_folder = os.path.join(script_path, local_folder) + if platform.system() == "Windows": + for configuration in ["Debug", "Release"]: + new_local_folder = os.path.join(local_folder, configuration) + if os.path.exists(new_local_folder): + local_folder = new_local_folder + break + path = shutil.which(prog, path=local_folder) if not path: @@ -160,7 +169,8 @@ parser.add_argument("--not-c", action="store_true", help="Don't run passes that are specific to C and C++, use this mode for reducing other languages") parser.add_argument("--list-passes", action="store_true", help="Print all available passes and exit") parser.add_argument("--version", action="version", version=CVise.Info.PACKAGE_STRING + (' (%s)' % CVise.Info.GIT_VERSION if CVise.Info.GIT_VERSION != 'unknown' else '')) - parser.add_argument("interestingness_test", metavar="INTERESTINGNESS_TEST", help="Executable to check interestingness of test cases") + parser.add_argument("--commands", "-c", help="Use bash commands instead of an interestingness test case") + parser.add_argument("interestingness_test", metavar="INTERESTINGNESS_TEST", nargs="?", help="Executable to check interestingness of test cases") parser.add_argument("test_cases", metavar="TEST_CASE", nargs="+", help="Test cases") args = parser.parse_args() @@ -226,6 +236,19 @@ pass_statistic = statistics.PassStatistic() + if not args.interestingness_test and not args.commands: + print('Either INTERESTINGNESS_TEST or --commands must be used!') + exit(1) + + script = None + if args.commands: + with tempfile.NamedTemporaryFile(mode="w", delete=False, suffix=".sh") as script: + script.write('#!/bin/bash\n\n') + script.write(args.commands + '\n') + os.chmod(script.name, 0o744) + logging.info('Using temporary interestingness test: %s' % script.name) + args.interestingness_test = script.name + test_manager = testing.TestManager(pass_statistic, args.interestingness_test, args.timeout, args.save_temps, args.test_cases, args.n, args.no_cache, args.skip_key_off, args.shaddap, args.die_on_pass_bug, args.print_diff, args.max_improvement, args.no_give_up, args.also_interesting) @@ -262,4 +285,7 @@ with open(test_case) as test_case_file: print(test_case_file.read()) + if script: + os.remove(script.name) + logging.shutdown()
