···21212222AST_FILES=$(addsuffix .ast,$(SOURCE_FILES))
23232424+# Note: some shells do not support command-lines that contain the full
2525+# list of source files ("too many argument"). We ensure that
2626+# AST_FILES is only passed inside a shell command in explicit targets
2727+# from this Makefile, and not in targets common to other makefiles
2828+# that would be executed unconditionally. We previously had
2929+# a `partialclean::` target performing `clean-all-asts` and that
3030+# resulted in annoying failures for some users, see #13817.
3131+2432build-all-asts:
2533# Recursive invocation ensures that `git ls-files` is not executed on every
2634# invocation of make
···4452list-all-asts:
4553 @for f in $(AST_FILES); do echo "'$$f'"; done
46544747-partialclean::
5555+.PHONY: clean-all-asts
5656+clean-all-asts:
4857 @rm -f $(AST_FILES)
+2-1
parsing/HACKING.adoc
···535354544. Before committing any change, remember to remove the `.ast` files
5555 from your index (using `git reset HEAD`), and maybe remove them
5656- completely (unless you plan to check further changes).
5656+ completely (unless you plan to check further changes) -- you can
5757+ run `make clean-all-asts` to remove them.
57585859----
5960# save pre-change ASTs