svn commit: r403361 - head/lang/pypy
David Naylor
dbn at FreeBSD.org
Wed Dec 9 06:57:32 UTC 2015
Author: dbn
Date: Wed Dec 9 06:57:30 2015
New Revision: 403361
URL: https://svnweb.freebsd.org/changeset/ports/403361
Log:
lang/pypy: update to 4.0.1
Changes:
- Remove plist-sub PYPY_BITS
- Switch PYPY_VER to PYPY_CFFI_VER
Change Log:
- Highlighted features:
- Update cffi to 1.3.1.
- Update Python implementation to 2.7.10.
- New vectorisation optimisations added to the JIT. To enable add
--jit vec=1 (or --jit vec_all=1 for all vectorisation optimisations).
- Improved JIT warmup time of ~20%.
- Reduced memory consumption by ~20%.
- Numpy's ndarray and numeric dtypes are almost feature complete.
- Numpy's linalg, random and fft have been implemented as cffi modules using
the same underlying libraries as upstream.
- Bug Fixes
- Fix a bug when unrolling double loops in JITted code
- Fix multiple memory leaks in the ssl module, one of which affected CPython
as well (thanks to Alex Gaynor for pointing those out)
- Use pkg-config to find ssl headers on OS-X
- Fix a crash on non-linux when running more than 20 threads
- In cffi, ffi.new_handle() is more cpython compliant
- Accept unicode in functions inside the _curses cffi backend exactly like
cpython
- Fix a segfault in itertools.islice()
- Fix ndarray.copy() for upstream compatability when copying non-contiguous
arrays
- Fix assumption that lltype.UniChar is unsigned
- Fix a subtle bug with stacklets on shadowstack
- Improve support for the cpython capi in cpyext (our capi compatibility
layer). Fixing these issues inspired some thought about cpyext in general,
stay tuned for more improvements
- When loading dynamic libraries, in case of a certain loading error, retry
loading the library assuming it is actually a linker script, like on Arch
and Gentoo
- New features
- Internal cleanup of RPython class handling
- Support stackless and greenlets on PPC machines
- Improve debug logging in subprocesses: use PYPYLOG=jit:log.%d for example
to have all subprocesses write the JIT log to a file called ?log.%d?, with
?%d? replaced with the subprocess? PID.
- Support PyOS_double_to_string in our cpyext capi compatibility layer
- Add an optimization pass to vectorize loops using x86 SIMD intrinsics.
- Support __stdcall on Windows in CFFI
- Improve debug logging when using PYPYLOG=???
- Deal with platforms with no RAND_egd() in OpenSSL
- Numpy
- Improve support for __array_interface__
- Propagate most NAN mantissas through float16-float32-float64 conversions
- Add support for ndarray.ctypes
- Fast path for mixing numpy scalars and floats
- Add support for creating Fortran-ordered ndarrays
- Fix casting failures in linalg (by extending ufunc casting)
- Recognize and disallow (for now) pickling of ndarrays with objects embedded
in them
- Performance improvements and refactorings
- Improvements in slicing byte arrays
- Improvements in enumerate()
- Silence some warnings while translating
- Reuse hashed keys across dictionaries and sets
- Refactor JIT interals to improve warmup time by 20% or so at the cost of a
minor regression in JIT speed
- Recognize patterns of common sequences in the JIT backends and optimize them
- Make the garbage collecter more incremental over external_malloc() calls
- Share guard resume data where possible which reduces memory usage
- Fast path for zip(list, list)
- Reduce the number of checks in the JIT for lst[a:]
- Move the non-optimizable part of callbacks outside the JIT
- Factor in field immutability when invalidating heap information
- Unroll itertools.izip_longest() with two sequences
- Minor optimizations after analyzing output from vmprof and trace logs
- Remove many class attributes in rpython classes
- Handle getfield_gc_pure* and getfield_gc_* uniformly in heap.py
- Improve simple trace function performance by lazily calling fast2locals and
locals2fast only if truly necessary
Submitted by: robak@
PR: 204743 (with modification)
Modified:
head/lang/pypy/Makefile
head/lang/pypy/bsd.pypy.cffi.mk
head/lang/pypy/bsd.pypy.mk
head/lang/pypy/distinfo
head/lang/pypy/pkg-plist
Modified: head/lang/pypy/Makefile
==============================================================================
--- head/lang/pypy/Makefile Wed Dec 9 06:27:20 2015 (r403360)
+++ head/lang/pypy/Makefile Wed Dec 9 06:57:30 2015 (r403361)
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= pypy
-PORTVERSION= 2.6.1
+PORTVERSION= 4.0.1 # Also update bsd.pypy.cffi.mk
CATEGORIES= lang python
MASTER_SITES= https://bitbucket.org/pypy/pypy/get/ LOCAL/dbn/pypy
DISTNAME= release-${DISTVERSION}
@@ -35,7 +35,7 @@ BUILD_WRKSRC= ${WRKDIR}/build/usession-r
MAKE_ENV+= PYPY_LOCALBASE=${LOCALBASE}
USE_LDCONFIG= ${PREFIX}/${PYPY_DIR}/bin
USES= gettext-runtime tar:bzip2
-WRKSRC= ${WRKDIR}/pypy-pypy-f3ad1e1e1d62
+WRKSRC= ${WRKDIR}/pypy-pypy-5f8302b8bf9f
.include ".${CURDIR}/bsd.pypy.mk"
.include <bsd.port.options.mk>
@@ -48,13 +48,6 @@ PYTHON_CMD?= ${SETENV} PYPY_GC_MAX_DELTA
USES+= python:2,build
.endif
-.if ${ARCH} == "i386" || ${ARCH} == "armv6"
-PYPY_BITS= 32
-.elif ${ARCH} == "amd64"
-PYPY_BITS= 64
-.endif
-PLIST_SUB+= PYPY_BITS="${PYPY_BITS}"
-
pre-build:
if [ ! -f ${BUILD_WRKSRC}/Makefile ]; then \
${RM} -r ${WRKDIR}/build; \
@@ -93,8 +86,7 @@ regression-test: build
pkg-plist: build
${TAR} -tf ${WRKDIR}/build/${PYPY_DIR}.tar.bz2 > ${WRKDIR}/.plist-files-gen
${REINPLACE_CMD} -e 's|^${PYPY_DIR}|%%PYPY_DIR%%|g' \
- -e 's|-${PYPY_VER}|-%%PYPY_VER%%|g' \
- -e 's|_${PYPY_BITS}_|_%%PYPY_BITS%%_|g' \
+ -e 's|-${PYPY_CFFI_VER}|-%%PYPY_CFFI_VER%%|g' \
-e '/\/$$/d' \
${WRKDIR}/.plist-files-gen
${ECHO} bin/pypy > ${WRKDIR}/pkg-plist
Modified: head/lang/pypy/bsd.pypy.cffi.mk
==============================================================================
--- head/lang/pypy/bsd.pypy.cffi.mk Wed Dec 9 06:27:20 2015 (r403360)
+++ head/lang/pypy/bsd.pypy.cffi.mk Wed Dec 9 06:57:30 2015 (r403361)
@@ -6,11 +6,11 @@ DISTFILES=
BUILD_DEPENDS+= pypy:${PORTSDIR}/lang/pypy
RUN_DEPENDS+= pypy:${PORTSDIR}/lang/pypy
-PLIST_FILES= %%PYPY_DIR%%/lib_pypy/${CFFI_MODULE}_cffi.pypy-%%PYPY_VER%%.so
+PLIST_FILES= %%PYPY_DIR%%/lib_pypy/${CFFI_MODULE}_cffi.pypy-%%PYPY_CFFI_VER%%.so
CFFI_MODULE?= _${PORTNAME}
-PYTHON_PORTVERSION= 2.6.1
+PYTHON_PORTVERSION= 4.0.1
PYTHON_PKGNAMEPREFIX= pypy-
PYTHON_CMD= ${LOCALBASE}/bin/pypy
@@ -23,4 +23,4 @@ do-build:
do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/`dirname ${CFFI_MODULE}`/
- ${INSTALL_LIB} ${WRKDIR}/${CFFI_MODULE}_cffi.pypy-${PYPY_VER}.so ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/`dirname ${CFFI_MODULE}`/
+ ${INSTALL_LIB} ${WRKDIR}/${CFFI_MODULE}_cffi.pypy-${PYPY_CFFI_VER}.so ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/`dirname ${CFFI_MODULE}`/
Modified: head/lang/pypy/bsd.pypy.mk
==============================================================================
--- head/lang/pypy/bsd.pypy.mk Wed Dec 9 06:27:20 2015 (r403360)
+++ head/lang/pypy/bsd.pypy.mk Wed Dec 9 06:57:30 2015 (r403361)
@@ -6,5 +6,5 @@ LICENSE_COMB= multi
USES+= compiler:c11
PYPY_DIR= pypy-${PORTVERSION:C|([0-9])\.([0-9]).*|\1.\2|}
-PYPY_VER= ${PORTVERSION:C|([0-9])\.([0-9]).*|\1\2|}
-PLIST_SUB+= PYPY_DIR=${PYPY_DIR} PYPY_VER=${PYPY_VER}
+PYPY_CFFI_VER= 26
+PLIST_SUB+= PYPY_DIR=${PYPY_DIR} PYPY_CFFI_VER=${PYPY_CFFI_VER}
Modified: head/lang/pypy/distinfo
==============================================================================
--- head/lang/pypy/distinfo Wed Dec 9 06:27:20 2015 (r403360)
+++ head/lang/pypy/distinfo Wed Dec 9 06:57:30 2015 (r403361)
@@ -1,2 +1,2 @@
-SHA256 (pypy/release-2.6.1.tar.bz2) = cc80e04957b899fe3c5d1b0b36979a4e80b7baf98f4c660c0fca781b6f148327
-SIZE (pypy/release-2.6.1.tar.bz2) = 16828274
+SHA256 (pypy/release-4.0.1.tar.bz2) = 743928a65a3a8731a1403003729f4a5cbefeaf7841e9eb677bd2b547e98df1bc
+SIZE (pypy/release-4.0.1.tar.bz2) = 17022282
Modified: head/lang/pypy/pkg-plist
==============================================================================
--- head/lang/pypy/pkg-plist Wed Dec 9 06:27:20 2015 (r403360)
+++ head/lang/pypy/pkg-plist Wed Dec 9 06:57:30 2015 (r403361)
@@ -2041,7 +2041,7 @@ bin/pypy
%%PYPY_DIR%%/lib-python/2.7/zipfile.py
%%PYPY_DIR%%/lib_pypy/__init__.py
%%PYPY_DIR%%/lib_pypy/_audioop_build.py
-%%PYPY_DIR%%/lib_pypy/_audioop_cffi.pypy-%%PYPY_VER%%.so
+%%PYPY_DIR%%/lib_pypy/_audioop_cffi.pypy-%%PYPY_CFFI_VER%%.so
%%PYPY_DIR%%/lib_pypy/_codecs_cn.py
%%PYPY_DIR%%/lib_pypy/_codecs_hk.py
%%PYPY_DIR%%/lib_pypy/_codecs_iso2022.py
@@ -2066,7 +2066,7 @@ bin/pypy
%%PYPY_DIR%%/lib_pypy/_ctypes_test.py
%%PYPY_DIR%%/lib_pypy/_curses.py
%%PYPY_DIR%%/lib_pypy/_curses_build.py
-%%PYPY_DIR%%/lib_pypy/_curses_cffi.pypy-%%PYPY_VER%%.so
+%%PYPY_DIR%%/lib_pypy/_curses_cffi.pypy-%%PYPY_CFFI_VER%%.so
%%PYPY_DIR%%/lib_pypy/_curses_panel.py
%%PYPY_DIR%%/lib_pypy/_elementtree.py
%%PYPY_DIR%%/lib_pypy/_ffi.py
@@ -2075,7 +2075,7 @@ bin/pypy
%%PYPY_DIR%%/lib_pypy/_marshal.py
%%PYPY_DIR%%/lib_pypy/_md5.py
%%PYPY_DIR%%/lib_pypy/_pwdgrp_build.py
-%%PYPY_DIR%%/lib_pypy/_pwdgrp_cffi.pypy-%%PYPY_VER%%.so
+%%PYPY_DIR%%/lib_pypy/_pwdgrp_cffi.pypy-%%PYPY_CFFI_VER%%.so
%%PYPY_DIR%%/lib_pypy/_pypy_interact.py
%%PYPY_DIR%%/lib_pypy/_pypy_irc_topic.py
%%PYPY_DIR%%/lib_pypy/_pypy_testcapi.py
@@ -2089,7 +2089,7 @@ bin/pypy
%%PYPY_DIR%%/lib_pypy/_structseq.py
%%PYPY_DIR%%/lib_pypy/_subprocess.py
%%PYPY_DIR%%/lib_pypy/_syslog_build.py
-%%PYPY_DIR%%/lib_pypy/_syslog_cffi.pypy-%%PYPY_VER%%.so
+%%PYPY_DIR%%/lib_pypy/_syslog_cffi.pypy-%%PYPY_CFFI_VER%%.so
%%PYPY_DIR%%/lib_pypy/_testcapi.py
%%PYPY_DIR%%/lib_pypy/_testcapimodule.c
%%PYPY_DIR%%/lib_pypy/_tkinter/__init__.py
@@ -2145,9 +2145,9 @@ bin/pypy
%%PYPY_DIR%%/lib_pypy/cffi/vengine_gen.py
%%PYPY_DIR%%/lib_pypy/cffi/verifier.py
%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/__init__.py
-%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/_locale_%%PYPY_BITS%%_.py
+%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/_locale_64_.py
%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/_locale_cache.py
-%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/_resource_%%PYPY_BITS%%_.py
+%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/_resource_64_.py
%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/_resource_cache.py
%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/dumpcache.py
%%PYPY_DIR%%/lib_pypy/ctypes_config_cache/locale.ctc.py
More information about the svn-ports-head
mailing list