From 68367141dd91ee71f50418f28ea358519cd6613d Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 9 Mar 2023 12:30:48 +0100 Subject: [PATCH] Revert "[clang-format] Add -j to clang-format-diff to speed up formatting" This reverts commit d14e7ee3d17cfa60d44256d742c10e9949a6048f. Makes clang_format_diff.py always fail with: Traceback (most recent call last): File "/home/npopov/repos/llvm-project/clang/tools/clang-format/clang-format-diff.py", line 177, in main() File "/home/npopov/repos/llvm-project/clang/tools/clang-format/clang-format-diff.py", line 174, in main process_subprocess_result(proc, args) File "/home/npopov/repos/llvm-project/clang/tools/clang-format/clang-format-diff.py", line 42, in process_subprocess_result with open(filename) as f: ^^^^^^^^ NameError: name 'filename' is not defined --- clang/tools/clang-format/clang-format-diff.py | 106 ++++++++++---------------- 1 file changed, 40 insertions(+), 66 deletions(-) diff --git a/clang/tools/clang-format/clang-format-diff.py b/clang/tools/clang-format/clang-format-diff.py index ce971e4..1dcc868 100755 --- a/clang/tools/clang-format/clang-format-diff.py +++ b/clang/tools/clang-format/clang-format-diff.py @@ -34,21 +34,6 @@ if sys.version_info.major >= 3: else: from io import BytesIO as StringIO -def process_subprocess_result(proc, args): - stdout, stderr = proc.communicate() - if proc.returncode != 0: - sys.exit(proc.returncode) - if not args.i: - with open(filename) as f: - code = f.readlines() - formatted_code = StringIO(stdout).readlines() - diff = difflib.unified_diff(code, formatted_code, - filename, filename, - '(before formatting)', - '(after formatting)') - diff_string = ''.join(diff) - if len(diff_string) > 0: - sys.stdout.write(diff_string) def main(): parser = argparse.ArgumentParser(description=__doc__, @@ -80,9 +65,6 @@ def main(): 'file to use.') parser.add_argument('-binary', default='clang-format', help='location of binary to use for clang-format') - parser.add_argument('-j', default=1, type=int, metavar='N', - help='number of concurrent clang-format processes to spawn in ' - 'parallel') args = parser.parse_args() # Extract changed lines for each file. @@ -124,54 +106,46 @@ def main(): ['-lines', str(start_line) + ':' + str(end_line)]) # Reformat files containing changes in place. - lbf = list(lines_by_file.items()) - procs = [None for i in range(args.j)] - while lbf: - spawned_one = False - for i, proc in enumerate(procs): - if not lbf: - break - if proc is not None and proc.poll() is not None: - process_subprocess_result(proc, args) - # Set to None to flag the slot as free to start a new process - procs[i] = None - proc = None - if proc is None: - filename, lines = lbf.pop() - spawned_one = True - if args.i and args.verbose: - print('Formatting {}'.format(filename)) - command = [args.binary, filename] - if args.i: - command.append('-i') - if args.sort_includes: - command.append('-sort-includes') - command.extend(lines) - if args.style: - command.extend(['-style', args.style]) - if args.fallback_style: - command.extend(['-fallback-style', args.fallback_style]) - try: - procs[i] = subprocess.Popen(command, - stdout=subprocess.PIPE, - stderr=None, - stdin=subprocess.PIPE, - universal_newlines=True) - except OSError as e: - # Give the user more context when clang-format isn't - # found/isn't executable, etc. - raise RuntimeError( - 'Failed to run "%s" - %s"' % (" ".join(command), e.strerror)) - # If we didn't spawn a single process after iterating through the whole - # list, wait on one of them to finish until we iterate through again, to - # prevent spinning in the case where we have a small number of jobs. - if not spawned_one: - procs[0].wait() - # Be sure not to leave any stray processes when exiting. - for proc in procs: - if proc: - proc.wait() - process_subprocess_result(proc, args) + for filename, lines in lines_by_file.items(): + if args.i and args.verbose: + print('Formatting {}'.format(filename)) + command = [args.binary, filename] + if args.i: + command.append('-i') + if args.sort_includes: + command.append('-sort-includes') + command.extend(lines) + if args.style: + command.extend(['-style', args.style]) + if args.fallback_style: + command.extend(['-fallback-style', args.fallback_style]) + + try: + p = subprocess.Popen(command, + stdout=subprocess.PIPE, + stderr=None, + stdin=subprocess.PIPE, + universal_newlines=True) + except OSError as e: + # Give the user more context when clang-format isn't + # found/isn't executable, etc. + raise RuntimeError( + 'Failed to run "%s" - %s"' % (" ".join(command), e.strerror)) + + stdout, stderr = p.communicate() + if p.returncode != 0: + sys.exit(p.returncode) + + if not args.i: + with open(filename) as f: + code = f.readlines() + formatted_code = StringIO(stdout).readlines() + diff = difflib.unified_diff(code, formatted_code, + filename, filename, + '(before formatting)', '(after formatting)') + diff_string = ''.join(diff) + if len(diff_string) > 0: + sys.stdout.write(diff_string) if __name__ == '__main__': main() -- 2.7.4