Bug 204743 - lang/pypy: update 2.6.1 -> 4.0.1
Summary: lang/pypy: update 2.6.1 -> 4.0.1
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: David Naylor
Depends on:
Reported: 2015-11-22 14:44 UTC by Bartek Rutkowski
Modified: 2015-12-13 13:17 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (dbn)

pypy-patch (3.43 KB, patch)
2015-11-22 14:44 UTC, Bartek Rutkowski
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Bartek Rutkowski freebsd_committer 2015-11-22 14:44:41 UTC
Created attachment 163421 [details]

This patch updates the port to latest version and changes PYPY_VER to PYPY_CFFI_VER as it turns out that value isnt used to store pypy version but instead to store CFFI's backward compability with pypy (currently to 2.6, therefore keeping it 26). Since I couldnt find a way to calculate this value out of the sources/pypy version, I turned it to static value instead of regexp.

Build logs: http://pd.valinor.palantiri.org/data/latest-per-pkg/pypy/4.0.1/

Also, given the maintainer's lack of responsiveness, I'd suggest moving pypy port maintainer from dbn@ to python@.
Comment 1 David Naylor freebsd_committer 2015-12-07 04:13:30 UTC
I'm busy testing the patch.
Comment 2 commit-hook freebsd_committer 2015-12-09 06:58:29 UTC
A commit references this bug:

Author: dbn
Date: Wed Dec  9 06:57:31 UTC 2015
New revision: 403361
URL: https://svnweb.freebsd.org/changeset/ports/403361

  lang/pypy: update to 4.0.1

   - Remove plist-sub PYPY_BITS

  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
     - Fix a segfault in itertools.islice()
     - Fix ndarray.copy() for upstream compatability when copying non-contiguous
     - 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)

Comment 3 David Naylor freebsd_committer 2015-12-09 07:05:26 UTC
Thank you for your PR.  I see we are missing a math/pypy-numpy port... ;-)
Comment 4 commit-hook freebsd_committer 2015-12-13 13:17:16 UTC
A commit references this bug:

Author: dbn
Date: Sun Dec 13 13:16:32 UTC 2015
New revision: 403664
URL: https://svnweb.freebsd.org/changeset/ports/403664

  lang/pypy: unbreak build on i386 and armv6

   - Add back PYPY_BITS as it is required to define the names of two files,
     depending if pypy is translated for 32 or 64 bit systems [1].
   - Change maintainership to python@ [2][3][4]

  Reported by:	pkg-fallout [1]
  Approved by:	koobs@ [2]
  PR:		204743 [3]
  Submitted by:	robak@ [4]