Changes:
- Add external cffi ports (a la python):
- databases/pypy-gdbm
- databases/pypy-sqlite3
- x11-toolkits/pypy-tkinter
- Add bsd.pypy.mk for consistency between pypy ports.
- Add bsd.pypy.cffi.mk for consistency with external cffi ports.
- Switch back to using $PREFIX/pypy-X.Y (the '-' separator is required to
differentiate between lang/pypy and lang/pypy3)
- Remove all patches (upstreamed, see announcement below)
ChangeLog:
- Bug Fixes
- Revive non-SSE2 support
- Fixes for detaching _io.Buffer*
- Clear up contention in the garbage collector between trace-me-later and
pinning
- Issues reported with our previous release were resolved after reports from
users on our issue tracker at https://bitbucket.org/pypy/pypy/issues or on
IRC at #pypy.
- New features:
- cffi was updated to version 1.3
- The python stdlib was updated to 2.7.10 from 2.7.9
- vmprof now supports multiple threads
- The translation process builds cffi import libraries for some stdlib
packages, which should prevent confusion when package.py is not used
- better support for gdb debugging
- FreeBSD should be able to translate PyPy "out of the box" with no patches
- Numpy:
- Better support for record dtypes, including the align keyword
- Implement casting and create output arrays accordingly (still missing some
corner cases)
- Support creation of unicode ndarrays
- Better support ndarray.flags
- Support axis argument in more functions
- Refactor array indexing to support ellipses
- Allow the docstrings of built-in numpy objects to be set at run-time
- Support the buffered nditer creation keyword
- Performance improvements:
- Delay recursive calls to make them non-recursive
- Skip loop unrolling if it compiles too much code
- Tweak the heapcache
- Add a list strategy for lists that store both floats and 32-bit integers.
The latter are encoded as nonstandard NaNs. Benchmarks show that the speed
of such lists is now very close to the speed of purely-int or purely-float
lists.
- Simplify implementation of ffi.gc() to avoid most weakrefs
- Massively improve the performance of map() with more than one sequence
argument
Differential Revision: https://reviews.freebsd.org/D3285
* Mark as only for i386, amd64 and armv6 (JIT only supported on those archs)
* Move PyPy dir to pypy26 (for consistency with llvm, et al)
* Drop PYPY_ARCH (unused)
* Use shell to detect ${BUILD_WRKSRC}/Makefile [1]
* Enable CFFI for components that do not have external dependencies
* Update regression-test to align with upstreams procedures
* Complete changes for detecting cpu count via sysctl (upstreamed)
* Properly detect arm (upstreamed) [2]
* Update pkg-plist generation and regenerate
[1] When make evaluates the dependency for pre-build the variable
${BUILD_WRKSRC} is not fully defined (i.e. ${WRKSRC}) so it does not get
properly expanded causing make to never find the correct Makefile.
PR: 202159 [2]
Reviewed by: sbruno (prior version)
- Use upstreams directory layout instead of FreeBSD's preferred directory
layout [1]
- Move the pypy installation into $PREFIX/pypy-x.y
- Remove the ability to build multiple instances (i.e. default to just
the JIT instance)
- Install the binary as pypy (instead of pypy-2.6 with a symlink to pypy)
- Remove the creation of cffi modules (will be outsourced to other ports,
a la cpython)
- Remove sqlite3 and gdbm dependencies (i.e. cffi modules)
PR: 183795
Differential Revision: https://reviews.freebsd.org/D3209
Temporarily disable CFFI module compilation post-build and the shared
CFFI libraries in the packaging lists to due failures finding and
linking tkinter:
Building tk bindings failed.
You can either install development headers package,
add the --without-tk option to skip packaging this
binary CFFI extension, or say --without-cffi.
Traceback (most recent call last):
File "<builtin>/app_main.py", line 75, in run_toplevel
File "/usr/ports/lang/pypy/files/compile_cffi.py", line 15, in <module>
create_cffi_import_libraries(sys.executable, Options(cffi_build_scripts), py.path.local(basedir))
File "/wrkdirs/usr/ports/lang/pypy/work/pypy-pypy-295ee98b6928/pypy/tool/release/package.py", line 84, in create_cffi_import_libraries
raise MissingDependenciesError(module)
MissingDependenciesError: _tkinter/tklib_build.py
This change is being committed on behalf of and in leui of maintainer
providing a comprehensive fix, as they are currently AFK.
Reported by: hawkowl (via IRC, portsmon)
Reviewed by: dbn (maintainer)
Approved by: dbn (maintainer)
Changes:
* Use pypy.tool.release.package to compile cffi modules.
ChangeLog:
* Python compatibility:
* Improve support for TLS 1.1 and 1.2
* Support for the PYTHONOPTIMIZE environment variable (impacting builtin's
__debug__ property)
* Issues reported with our previous release were resolved after reports
from users on our issue tracker at https://bitbucket.org/pypy/pypy/issues
or on IRC at #pypy.
* New features:
* Add preliminary support for a new lightweight statistical profiler
vmprof, which has been designed to accomodate profiling JITted code
* Numpy:
* Support for object dtype via a garbage collector hook
* Support for .can_cast and .min_scalar_type as well as beginning a
refactoring of the internal casting rules
* Better support for subtypes, via the __array_interface__,
__array_priority__, and __array_wrap__ methods (still a work-in-progress)
* Better support for ndarray.flags
* Performance improvements:
* Slight improvement in frame sizes, improving some benchmarks
* Internal refactoring and cleanups leading to improved JIT performance
* Improved IO performance of zlib and bz2 modules
* We continue to improve the JIT's optimizations. Our benchmark suite is
now over 7 times faster than cpython
Changes:
* Merge pypy-devel into pypy
* Drop pypy-devel (was intended to track pypy-current but no automated
process was implemented)
* Drop upstreamed patches
PR: 199790
This backports changes from pypy-devel. Although that port has not gone
through standard QA, there have not been any complaints in the months that
it has been available under pypy-devel.
Changes:
* various: migrate USE_BZIP2 to USES=tar:bzip2
* various: migrate USE_XZ to USES=tar:xz
* multimedia/py-ffmpeg: add and prefer github (GH) as master site
* ports-mgmt/portbuilder: specify license as BSD2CLAUSE (instead of just BSD)
Most ports are updated infrequently so a single batch commit is preferred over
collating changes per port.
Also, require a modern compiler that can handle c11. Although this is
not strictly required (just about any C compiler would do) the base GCC
compiler has a memory bug and thus cannot reasonably compile the ports.
Be more aggresive in cleaning up temporary directories that pypy leaves
behind in the copied directories (files and directories in __pycache__).
Only .so and .pyc should be left behind in those __pycache__ directories
and no subdirectories.
Also remove the manual requirement for building lang/pypy. Redports
successfully built lang/pypy3-devel (with leftovers) in 19 hours.
Reported by: Redports
pypy-devel is intended as a staging ground for beta releases and - while
no beta releases are available - snapshots of pypy default branch.
While introducing pypy-devel to build logic has been reworked to better
accomodate pypy3. The lib-python/2.7 and lib_pypy folders are not renamed
after extraction (with only symbolic links used to emulate the structure).
PyPy still expects the standard structure and the symbolic links satisfy
this change.
The devel port was requested by mva@ to better support commercial clients.
Changes:
- Rename the binary, include and library to pypy-2.1 (recommended by mva@).
This is in preparation to introduce PyPy3 (PyPy implementing Python 3.2)
Highlights:
* JIT support for ARM, architecture versions 6 and 7, hard- and soft-float ABI
* Stacklet support for ARM
* Support for os.statvfs and os.fstatvfs on unix systems
* Improved logging performance
* Faster sets for objects
* Interpreter improvements
* During packaging, compile the CFFI based TK extension
* Pickling of numpy arrays and dtypes
* Subarrays for numpy
* Bugfixes to numpy
* Bugfixes to cffi and ctypes
* Bugfixes to the x86 stacklet support
* Fixed issue 1533: fix an RPython-level OverflowError for
space.float_w(w_big_long_number). https://bugs.pypy.org/issue1533
* Fixed issue 1552: GreenletExit should inherit from BaseException.
https://bugs.pypy.org/issue1552
* Fixed issue 1537: numpypy __array_interface__ https://bugs.pypy.org/issue1537
* Fixed issue 1238: Writing to an SSL socket in PyPy sometimes failed with a
"bad write retry" message. https://bugs.pypy.org/issue1238
Highlights:
* Support for os.statvfs and os.fstatvfs on unix systems.
* Fixed issue 1533: fix an RPython-level OverflowError for
space.float_w(w_big_long_number).
* Fixed issue 1552: GreenletExit should inherit from BaseException.
* Fixed issue 1537: numpypy __array_interface__
* Fixed issue 1238: Writing to an SSL socket in pypy sometimes failed with a
"bad write retry" message.
* distutils: copy CPython's implementation of customize_compiler, dont call
split on environment variables, honour CFLAGS, CPPFLAGS, LDSHARED and
LDFLAGS.
* During packaging, compile the CFFI tk extension.
The library detection orginally depended on sys.version however that
tends to change a lot and thus a more robust method is used based on
sys.pypy_version_info.
This fixes installation using distutils and corrects output from sysconfig.
Special thanks to Attila Nagy who reported the issue and tracked down
the root issue (allowing me to deliver a quick solution).
Reported by: Attila Nagy <bra@fsn.hu>
Portlint recommends "USE_GCC=yes+" however such an option breaks everything.
Ignore portlint and use "USE+GCC=4.2+" as the port will compile with just about
any valid C compiler.
Changes to port:
* Abstract ${BUILDDIR} for files/Makefile
* Remove MAKE_JOBS_SAFE (depreciated)
* Use "USE_GCC=yes+" as recommended by portlint
Highlights:
* Bugfixes to the ARM JIT backend, so that ARM is now an officially
supported processor architecture
* Stacklet support on ARM
* Interpreter improvements
* Various numpy improvements
* Bugfixes to cffi and ctypes
* Bugfixes to the stacklet support
* Improved logging performance
* Faster sets for objects
- Track the change in build location (s/2.0.2/2.0.x/g)
- Only tested on amd64 as this is only a point releas
- If SANDBOX fails to build, install pypy-2.0.2 and try again
ChangeLog:
* Fix crash in the JIT when calling external C functions in multithreaded context.
Approved by: eadler,bdrewery (mentors, implicit)
A patch that tought _sqlite3.py where to find sqlite3.h and sqlite3.so was
not added with the previous commit.
Approved by: eadler,bdrewery (mentors, implicit)
Port ChangeLog:
* Sqlite3 added as a dependency
* DIST_SUBDIR no longer used as upstream now releases with a proper tarball
* Added ability to translate with pypy running in restricted memory mode
( faster than python2.7 and uses less memory!)
* Added support for pypy modules that use cffi (_sqlite3 and _curses)
Approved by: eadler,bdrewery (mentors, implicit)
The internals of the port have been substantially reworked:
* All predefined instances can be selected via options [1]
* Optionally use options, if user does not overwrite instance list
* Make translation with pypy an option, if it is available.
* Make memory checking more refined [2]
* Add a Wiki page details lang/pypy
* Fix the test target
* Refactor build target (easier to review, edit)
* Rename patches to prevent churn
[1] Although two are broken upstream and one possibly discontinued
[2] My memory limits appear to be too conservative. Set PYPY_IGNORE_MEM for now
Reviewed by: Kuro <poyopoyo@puripuri.plala.or.jp>, rm@
Approved by: bdrewery (mentor)
- Detection of insufficient memory [1]
- Change %% SUB vaes from fixed at python 27 to use any installed version of python [1]
- Fix syntax of non system include "" vs <> [2]
PR: ports/168974 [1]
Submitted by: David Naylor <naylor.b.david@gmail.com> (maintainer) [1]
Reviewed by: scheidel@ (me) [2]