[arch-commits] Commit in python-vmprof/repos (4 files)
Jelle van der Waa
jelle at gemini.archlinux.org
Fri Dec 3 16:35:29 UTC 2021
Date: Friday, December 3, 2021 @ 16:35:29
Author: jelle
Revision: 1064833
archrelease: copy trunk to community-staging-x86_64
Added:
python-vmprof/repos/community-staging-x86_64/
python-vmprof/repos/community-staging-x86_64/PKGBUILD
(from rev 1064832, python-vmprof/trunk/PKGBUILD)
python-vmprof/repos/community-staging-x86_64/python-vmprof-0.4.15-pep479.patch
(from rev 1064832, python-vmprof/trunk/python-vmprof-0.4.15-pep479.patch)
python-vmprof/repos/community-staging-x86_64/python3.10-no-co_lnotab.patch
(from rev 1064832, python-vmprof/trunk/python3.10-no-co_lnotab.patch)
-----------------------------------+
PKGBUILD | 62 ++++++++++++++++++++++++++++++++++++
python-vmprof-0.4.15-pep479.patch | 20 +++++++++++
python3.10-no-co_lnotab.patch | 56 ++++++++++++++++++++++++++++++++
3 files changed, 138 insertions(+)
Copied: python-vmprof/repos/community-staging-x86_64/PKGBUILD (from rev 1064832, python-vmprof/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2021-12-03 16:35:29 UTC (rev 1064833)
@@ -0,0 +1,62 @@
+# Maintainer: David Runge <dvzrv at archlinux.org>
+
+_name=vmprof
+pkgname=python-vmprof
+pkgver=0.4.15
+pkgrel=4
+pkgdesc="A statistical program profiler"
+arch=('x86_64')
+url="https://vmprof.com/#/"
+license=('MIT')
+depends=('libunwind' 'python' 'python-colorama' 'python-pytz' 'python-requests' 'python-six')
+makedepends=('python-setuptools')
+checkdepends=('python-cffi' 'python-hypothesis' 'python-pytest')
+# tests are not available in pypi sdist
+# https://github.com/vmprof/vmprof-python/issues/215
+# 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"
+ "python3.10-no-co_lnotab.patch")
+sha512sums=('1815e3310ea83b241514e7773d89f8ee40425119dc7ba195d1fb513596bd63d64ad5d50b0dc0c33e10157469d2d772c5d6435362042971167238ac86f1689b01'
+ 'fe6eba8adb47c66f4c67d6559a83222e07fde23c75e732961e5e4370dea3fcfbcd1b81522adb37a321e92ba6ad87c58e887e20511c81e20669f39e6e1de87e30'
+ 'ea085605b70a5cbf3629f5da0401747f1082bd7be3dda21ba036d7444cf48cebd3ad79312d70cd2daff652222f52201d4a4aee40c8c10fd15b7a4bb6ec03aa73'
+ '0c169f720c3bd0937fef5a7dc264cad8b32f280bbb1e0c287ae47b784ee1c72c3ff2690ebc98240f0d616d3d9ed54781d01b037dd7c627d5de5a9d7ad6346953')
+
+prepare() {
+ mv -v "${_name}-python-$pkgver" "$pkgname-$pkgver"
+ cd "$pkgname-$pkgver"
+ # https://github.com/vmprof/vmprof-python/pull/203
+ patch -Np1 -i ../"${pkgname}-${pkgver}-gcc10.patch"
+ # 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/*
+}
+
+build() {
+ cd "$pkgname-$pkgver"
+ python setup.py build
+}
+
+check() {
+ 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 -k 'not test_resolve_addr' -v vmprof/test
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+ python setup.py install --skip-build \
+ --optimize=1 \
+ --prefix=/usr \
+ --root="${pkgdir}"
+ install -vDm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -vDm 644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}"
+}
Copied: python-vmprof/repos/community-staging-x86_64/python-vmprof-0.4.15-pep479.patch (from rev 1064832, python-vmprof/trunk/python-vmprof-0.4.15-pep479.patch)
===================================================================
--- community-staging-x86_64/python-vmprof-0.4.15-pep479.patch (rev 0)
+++ community-staging-x86_64/python-vmprof-0.4.15-pep479.patch 2021-12-03 16:35:29 UTC (rev 1064833)
@@ -0,0 +1,20 @@
+--- a/jitlog/objects.py 2018-04-11 06:52:06.000000000 -0700
++++ b/jitlog/objects.py 2019-01-07 20:57:05.348638044 -0800
+@@ -371,7 +371,7 @@
+
+ def iter_ranges(numbers):
+ if len(numbers) == 0:
+- raise StopIteration
++ return
+ numbers.sort()
+ first = numbers[0]
+ last = numbers[0]
+@@ -382,7 +382,7 @@
+ last = i
+ first = i
+ else:
+- raise StopIteration
++ return
+ else:
+ last = i
+ yield range(first, last+1)
Copied: python-vmprof/repos/community-staging-x86_64/python3.10-no-co_lnotab.patch (from rev 1064832, python-vmprof/trunk/python3.10-no-co_lnotab.patch)
===================================================================
--- community-staging-x86_64/python3.10-no-co_lnotab.patch (rev 0)
+++ community-staging-x86_64/python3.10-no-co_lnotab.patch 2021-12-03 16:35:29 UTC (rev 1064833)
@@ -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