[arch-commits] Commit in hy/trunk (PKGBUILD python-3.8.patch)

Evangelos Foutras foutrelis at archlinux.org
Sun Nov 10 08:29:46 UTC 2019


    Date: Sunday, November 10, 2019 @ 08:29:46
  Author: foutrelis
Revision: 524935

Add two upstream Python 3.8 fixes

Added:
  hy/trunk/python-3.8.patch
Modified:
  hy/trunk/PKGBUILD

------------------+
 PKGBUILD         |    8 ++++-
 python-3.8.patch |   73 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 79 insertions(+), 2 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-11-10 08:09:52 UTC (rev 524934)
+++ PKGBUILD	2019-11-10 08:29:46 UTC (rev 524935)
@@ -11,12 +11,16 @@
 depends=('python-rply' 'python-astor' 'python-clint' 'python-funcparserlib')
 makedepends=('python-setuptools')
 checkdepends=('python-pytest' 'python-pytest-runner')
-source=("$pkgname-$pkgver.tar.gz::https://github.com/hylang/hy/archive/$pkgver.tar.gz")
-md5sums=('fc719573093f14caba2fade84a8d11e9')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/hylang/hy/archive/$pkgver.tar.gz"
+        python-3.8.patch)
+md5sums=('fc719573093f14caba2fade84a8d11e9'
+         '5f8c4d26d959168f88faaccc8b4dfb6c')
 
 prepare() {
     cd "$pkgname-$pkgver"
 
+    patch -Np1 -i ../python-3.8.patch
+
     # usually generated from git metadata and aded to PyPI sdist
     # PyPI does not include testsuite files.
     echo "__version__ = '$pkgver'" > hy/version.py

Added: python-3.8.patch
===================================================================
--- python-3.8.patch	                        (rev 0)
+++ python-3.8.patch	2019-11-10 08:29:46 UTC (rev 524935)
@@ -0,0 +1,73 @@
+From 563f27632c95d709f6685e469b7c1e97be1c38e7 Mon Sep 17 00:00:00 2001
+From: Kodi Arfer <git at arfer.net>
+Date: Tue, 4 Jun 2019 16:03:52 -0400
+Subject: [PATCH 1/2] Fix crashes on the new Python 3.8 alpha
+
+---
+ hy/_compat.py  | 4 +++-
+ hy/compiler.py | 3 ++-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/hy/_compat.py b/hy/_compat.py
+index a2ab7a5..da31477 100644
+--- a/hy/_compat.py
++++ b/hy/_compat.py
+@@ -37,10 +37,12 @@ if PY3:
+         finally:
+             traceback = None
+ 
+-    code_obj_args = ['argcount', 'kwonlyargcount', 'nlocals', 'stacksize',
++    code_obj_args = ['argcount', 'posonlyargcount', 'kwonlyargcount', 'nlocals', 'stacksize',
+                      'flags', 'code', 'consts', 'names', 'varnames',
+                      'filename', 'name', 'firstlineno', 'lnotab', 'freevars',
+                      'cellvars']
++    if not PY38:
++        code_obj_args.remove("posonlyargcount")
+ else:
+     def raise_from(value, from_value=None):
+         raise value
+diff --git a/hy/compiler.py b/hy/compiler.py
+index 9a20daf..ddb75da 100755
+--- a/hy/compiler.py
++++ b/hy/compiler.py
+@@ -1145,7 +1145,7 @@ class HyASTCompiler(object):
+                 expr,
+                 name=fname,
+                 args=ast.arguments(
+-                    args=[], vararg=None, kwarg=None,
++                    args=[], vararg=None, kwarg=None, posonlyargs=[],
+                     kwonlyargs=[], kw_defaults=[], defaults=[]),
+                 body=f(parts).stmts,
+                 decorator_list=[])
+@@ -1524,6 +1524,7 @@ class HyASTCompiler(object):
+         args = ast.arguments(
+             args=main_args, defaults=defaults,
+             vararg=rest,
++            posonlyargs=[],
+             kwonlyargs=kwonly, kw_defaults=kw_defaults,
+             kwarg=kwargs)
+ 
+
+From 9af02dd0a4e8ffe8234e42cf834fbdcf1e12b301 Mon Sep 17 00:00:00 2001
+From: Kodi Arfer <git at arfer.net>
+Date: Mon, 10 Jun 2019 16:12:46 -0400
+Subject: [PATCH 2/2] Fix a test for Python 3.8.0b1
+
+`int`, among other types, no longer has a `__str__` method, so `(str '3)` now returns "(HyInteger 3)" instead of "3".
+---
+ tests/native_tests/native_macros.hy | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/native_tests/native_macros.hy b/tests/native_tests/native_macros.hy
+index 835939e..e320143 100644
+--- a/tests/native_tests/native_macros.hy
++++ b/tests/native_tests/native_macros.hy
+@@ -391,7 +391,7 @@ in expansions."
+   ;; Now, let's use a `require`d macro that depends on another macro defined only
+   ;; in this scope.
+   (defmacro local-test-macro [x]
+-    (.format "This is the local version of `nonlocal-test-macro` returning {}!" x))
++    (.format "This is the local version of `nonlocal-test-macro` returning {}!" (int x)))
+ 
+   (assert (= "This is the local version of `nonlocal-test-macro` returning 3!"
+              (test-module-macro-2 3)))



More information about the arch-commits mailing list