summaryrefslogtreecommitdiffstats
path: root/Tools/peg_generator/Makefile
diff options
context:
space:
mode:
authorLysandros Nikolaou <lisandrosnik@gmail.com>2020-05-18 18:27:40 (GMT)
committerGitHub <noreply@github.com>2020-05-18 18:27:40 (GMT)
commitdc31800f86fbcd40ee616984820b885d8adaa6a7 (patch)
treeabb3f07fd5a54fb652cc91e192ebe89918903cc5 /Tools/peg_generator/Makefile
parent2135e10dc717c00d10d899d232bebfc59bb25032 (diff)
downloadcpython-dc31800f86fbcd40ee616984820b885d8adaa6a7.zip
cpython-dc31800f86fbcd40ee616984820b885d8adaa6a7.tar.gz
cpython-dc31800f86fbcd40ee616984820b885d8adaa6a7.tar.bz2
bpo-40669: Install PEG benchmarking dependencies in a venv (GH-20183)
Create a `make venv` target, that creates a virtual environment and installs the dependency in that venv. `make time` and all the related targets are changed to use the virtual environment python. Automerge-Triggered-By: @pablogsal
Diffstat (limited to 'Tools/peg_generator/Makefile')
-rw-r--r--Tools/peg_generator/Makefile34
1 files changed, 21 insertions, 13 deletions
diff --git a/Tools/peg_generator/Makefile b/Tools/peg_generator/Makefile
index c1219b9..7b33a86 100644
--- a/Tools/peg_generator/Makefile
+++ b/Tools/peg_generator/Makefile
@@ -5,7 +5,8 @@ endif
ifeq ($(UNAME_S),Darwin)
PYTHON ?= ../../python.exe
endif
-
+VENVDIR ?= ./venv
+VENVPYTHON ?= $(VENVDIR)/bin/python
CPYTHON ?= ../../Lib
MYPY ?= mypy
@@ -27,6 +28,7 @@ peg_extension/parse.c: $(GRAMMAR) $(TOKENS) pegen/*.py peg_extension/peg_extensi
clean:
-rm -f peg_extension/*.o peg_extension/*.so peg_extension/parse.c
-rm -f data/xxl.py
+ -rm -rf $(VENVDIR)
dump: peg_extension/parse.c
cat -n $(TESTFILE)
@@ -41,6 +43,12 @@ regen-metaparser: pegen/metagrammar.gram pegen/*.py
.PHONY: test
+venv:
+ $(PYTHON) -m venv $(VENVDIR)
+ $(VENVPYTHON) -m pip install -U pip setuptools
+ $(VENVPYTHON) -m pip install -U memory_profiler
+ @echo "The venv has been created in the $(VENVDIR) directory"
+
test: run
run: peg_extension/parse.c
@@ -61,22 +69,22 @@ stats: peg_extension/parse.c data/xxl.py
time: time_compile
-time_compile: peg_extension/parse.c data/xxl.py
- $(PYTHON) scripts/benchmark.py --parser=pegen --target=xxl compile
+time_compile: venv peg_extension/parse.c data/xxl.py
+ $(VENVPYTHON) scripts/benchmark.py --parser=pegen --target=xxl compile
-time_parse: peg_extension/parse.c data/xxl.py
- $(PYTHON) scripts/benchmark.py --parser=pegen --target=xxl parse
+time_parse: venv peg_extension/parse.c data/xxl.py
+ $(VENVPYTHON) scripts/benchmark.py --parser=pegen --target=xxl parse
-time_check: peg_extension/parse.c data/xxl.py
- $(PYTHON) scripts/benchmark.py --parser=pegen --target=xxl check
+time_check: venv peg_extension/parse.c data/xxl.py
+ $(VENVPYTHON) scripts/benchmark.py --parser=pegen --target=xxl check
time_stdlib: time_stdlib_compile
-time_stdlib_compile: data/xxl.py
- $(PYTHON) scripts/benchmark.py --parser=cpython --target=xxl compile
+time_stdlib_compile: venv peg_extension/parse.c data/xxl.py
+ $(VENVPYTHON) scripts/benchmark.py --parser=cpython --target=xxl compile
-time_stdlib_parse: data/xxl.py
- $(PYTHON) scripts/benchmark.py --parser=cpython --target=xxl parse
+time_stdlib_parse: venv peg_extension/parse.c data/xxl.py
+ $(VENVPYTHON) scripts/benchmark.py --parser=cpython --target=xxl parse
test_local:
$(PYTHON) scripts/test_parse_directory.py \
@@ -105,8 +113,8 @@ mypy: regen-metaparser
format-python:
black pegen scripts
-bench:
- $(PYTHON) scripts/benchmark.py --parser=pegen --target=stdlib check
+bench: venv
+ $(VENVPYTHON) scripts/benchmark.py --parser=pegen --target=stdlib check
format: format-python