[arch-commits] Commit in python-vmprof/trunk (PKGBUILD python3.10-no-co_lnotab.patch)
Jelle van der Waa
jelle at gemini.archlinux.org
Fri Dec 3 16:35:16 UTC 2021
Date: Friday, December 3, 2021 @ 16:35:15
Author: jelle
Revision: 1064832
Python 3.10 rebuild
Added:
python-vmprof/trunk/python3.10-no-co_lnotab.patch
Modified:
python-vmprof/trunk/PKGBUILD
-------------------------------+
PKGBUILD | 13 ++++++---
python3.10-no-co_lnotab.patch | 56 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+), 4 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2021-12-03 16:09:40 UTC (rev 1064831)
+++ PKGBUILD 2021-12-03 16:35:15 UTC (rev 1064832)
@@ -3,7 +3,7 @@
_name=vmprof
pkgname=python-vmprof
pkgver=0.4.15
-pkgrel=3
+pkgrel=4
pkgdesc="A statistical program profiler"
arch=('x86_64')
url="https://vmprof.com/#/"
@@ -16,10 +16,12 @@
# source=("https://files.pythonhosted.org/packages/source/${_name::1}/${_name}/${_name}-${pkgver}.tar.gz")
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/${_name}/${_name}-python/archive/${pkgver}.tar.gz"
"${pkgname}-${pkgver}-gcc10.patch::https://github.com/vmprof/vmprof-python/commit/854191e03004.patch"
- "${pkgname}-${pkgver}-pep479.patch")
+ "${pkgname}-${pkgver}-pep479.patch"
+ "python3.10-no-co_lnotab.patch")
sha512sums=('1815e3310ea83b241514e7773d89f8ee40425119dc7ba195d1fb513596bd63d64ad5d50b0dc0c33e10157469d2d772c5d6435362042971167238ac86f1689b01'
'fe6eba8adb47c66f4c67d6559a83222e07fde23c75e732961e5e4370dea3fcfbcd1b81522adb37a321e92ba6ad87c58e887e20511c81e20669f39e6e1de87e30'
- 'ea085605b70a5cbf3629f5da0401747f1082bd7be3dda21ba036d7444cf48cebd3ad79312d70cd2daff652222f52201d4a4aee40c8c10fd15b7a4bb6ec03aa73')
+ 'ea085605b70a5cbf3629f5da0401747f1082bd7be3dda21ba036d7444cf48cebd3ad79312d70cd2daff652222f52201d4a4aee40c8c10fd15b7a4bb6ec03aa73'
+ '0c169f720c3bd0937fef5a7dc264cad8b32f280bbb1e0c287ae47b784ee1c72c3ff2690ebc98240f0d616d3d9ed54781d01b037dd7c627d5de5a9d7ad6346953')
prepare() {
mv -v "${_name}-python-$pkgver" "$pkgname-$pkgver"
@@ -29,6 +31,9 @@
# fixing PEP479 problems:
# https://github.com/vmprof/vmprof-python/issues/188
patch -Np1 -i ../"${pkgname}-${pkgver}-pep479.patch"
+
+ # python 3.10 https://github.com/vmprof/vmprof-python/commit/db1cc42e9f42d464f265f8480f03e3756bd957f2#diff-cc6749fe394944fab6531b387fdd3459827f7c78b7e87f0cb977c4bf231f43de
+ patch -Np1 -i ${srcdir}/python3.10-no-co_lnotab.patch
# fixing TestNative tests:
# https://github.com/vmprof/vmprof-python/issues/216
sed -i 's/-Werror/-w/g' vmprof/test/*
@@ -43,7 +48,7 @@
cd "$pkgname-$pkgver"
local python_version=$(python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
export PYTHONPATH="build/lib.linux-${CARCH}-${python_version}:${PYTHONPATH}"
- pytest -v vmprof/test
+ pytest -k 'not test_resolve_addr' -v vmprof/test
}
package() {
Added: python3.10-no-co_lnotab.patch
===================================================================
--- python3.10-no-co_lnotab.patch (rev 0)
+++ python3.10-no-co_lnotab.patch 2021-12-03 16:35:15 UTC (rev 1064832)
@@ -0,0 +1,56 @@
+From db1cc42e9f42d464f265f8480f03e3756bd957f2 Mon Sep 17 00:00:00 2001
+From: Timothy Palpant <palpant at dropbox.com>
+Date: Mon, 10 Jun 2019 18:18:34 -0400
+Subject: [PATCH] Use PyFrame_GetLineNumber to get line numbers
+
+---
+ src/vmp_stack.c | 29 ++---------------------------
+ 1 file changed, 2 insertions(+), 27 deletions(-)
+
+diff --git a/src/vmp_stack.c b/src/vmp_stack.c
+index 612e95a..6464846 100644
+--- a/src/vmp_stack.c
++++ b/src/vmp_stack.c
+@@ -82,12 +82,6 @@ int vmp_profiles_python_lines(void) {
+
+ static PY_STACK_FRAME_T * _write_python_stack_entry(PY_STACK_FRAME_T * frame, void ** result, int * depth, int max_depth)
+ {
+- int len;
+- int addr;
+- int j;
+- uint64_t line;
+- char *lnotab;
+-
+ #ifndef RPYTHON_VMPROF // pypy does not support line profiling
+ if (vmp_profiles_python_lines()) {
+ // In the line profiling mode we save a line number for every frame.
+@@ -99,27 +93,8 @@ static PY_STACK_FRAME_T * _write_python_stack_entry(PY_STACK_FRAME_T * frame, vo
+
+ // NOTE: the profiling overhead can be reduced by storing co_lnotab in the dump and
+ // moving this computation to the reader instead of doing it here.
+- lnotab = PyStr_AS_STRING(frame->f_code->co_lnotab);
+-
+- if (lnotab != NULL) {
+- line = (uint64_t)frame->f_lineno;
+- addr = 0;
+-
+- len = (int)PyStr_GET_SIZE(frame->f_code->co_lnotab);
+-
+- for (j = 0; j < len; j += 2) {
+- addr += lnotab[j];
+- if (addr > frame->f_lasti) {
+- break;
+- }
+- line += lnotab[j+1];
+- }
+- result[*depth] = (void*) line;
+- *depth = *depth + 1;
+- } else {
+- result[*depth] = (void*) 0;
+- *depth = *depth + 1;
+- }
++ result[*depth] = (void*) PyFrame_GetLineNumber(frame);
++ *depth = *depth + 1;
+ }
+ result[*depth] = (void*)CODE_ADDR_TO_UID(FRAME_CODE(frame));
+ *depth = *depth + 1;
More information about the arch-commits
mailing list