PyPy3 is a fast, compliant alternative implementation of the Python
language (3.5.3). It has several advantages and distinct features:
- Speed: thanks to its Just-in-Time compiler, Python programs often run faster
on PyPy3.
- Memory usage: large, memory-hungry Python programs might end up taking less
space than they do in CPython.
- Compatibility: PyPy3 is highly compatible with existing python code. It
supports ctypes and can run popular python libraries like
twisted and django.
- Sandboxing: PyPy3 provides the ability to run untrusted code in a fully
secure way.
- Stackless: PyPy3 can be configured to run in stackless mode, providing
micro-threads for massive concurrency.
- As well as other features.
WWW: http://pypy.org
===> The following configuration options are available for pypy3-7.3.0_1:
====> Translation method: you have to select exactly one of them
PYTHON=on: Use Python-2.7 to translate (slowest)
PYPY=off: Use PyPy to translate (fastest, highest memory usage)
PYPY_MINMEM=off: Use PyPy to translate (lowest memory usage)
===> Use 'make config' to modify these settings
Note that some standard Python modules are provided as separate ports
as they require additional dependencies. They are available as:
gdbm databases/pypy-gdbm
sqlite3 databases/pypy-sqlite3
tkinter x11-toolkits/pypy-tkinter
Note that PyPy does not implement the following module that would
have been provided as a separate port:
bsddb databases/pypy-bsddb
Remove most expired ports that depend on Python 2.7:
Exceptions are:
- mail/mailman, our listservers still use it
- www/chromium, solely because of popular demand,
upstream is (slowly) working on porting it to Python 3
- ports that have actual patches for Python 3 against
them (Cinnamon and a few unrelated other ports)
- llvm70 and qt5-webengine because they seem to have a lot
of dependencies which need further analysis
- sysutils/uefi-edk2-bhyve because bhyve seems to use them
- python2 and python27 themselves
I'm sure there will be complaints, but the nice thing about
a version control system is that we can revert and adjust things.
(Only the first 15 lines of the commit message are shown above )
lang/pypy3: Fix build with -fno-common
Add an upstream patch to lang/pypy and lang/pypy3 to fix the build of
lang/pypy3 with -fno-common.
MFH: 2020Q3 (implicit, -fno-common fixes, ok by joenum)
lang/pypy3: update to 5.10.1
- bsd.pypy.mk: DISTINFO now needs to be specified based on PYTHON_IMPL
- Change log:
- Fix an overflow in converting int secs to nanosecs (issue 2717 )
- Using kwarg 'flag' to os.setxattr had no effect
- Fix issue 2718 for the REPL
lang/pypy(3): update to 5.10, add flavors to ancillary ports
- Consistently use DISTVERSION instead of PORTVERSION (the former is set, not
the latter)
- Only depend on libunwind on x86 arch with FreeBSD >= 11 (fixes ignored build
on arm/ppc)
- Fix python dependency with depreciation of python meta ports
- Remove PYPY_BITS from pkg-plist target, no longer used
- Remove setting of PORTVERSION, DISTVERSION is set in bsd.pypy.mk
- bsd.pypy.mk:
- Define DISTVERSION once, to ensure consistency
- PYPY_DIR: Handle versions with multiple digits
- PYPY_CFFI_VER now differs in value between pypy and pypy3
- bsd.pypy.cffi.mk:
- Add FLAVORS for pypy and pypy3 [1]
- Consistently use PYTHON_IMPL instead of the hard coded "pypy"
- PLIST_FILES: use direct substitution instead of PLIST_SUB
Approved by: portmgr (mat) [1]
Differential Revision: https://reviews.freebsd.org/D13675
lang/pypy(3): update to 5.9
- add lubunwind as dependency: required by vmprof
- disable vmprof on FreeBSD 10: missing base support
- implement support for handles with ctypes.CDLL: fix dynamic loading of
shared objects
- enable various tests that were not working on FreeBSD 9
- mark get_profile_path as xfail on FreeBSD
- handle definition of char16_t and char32_t on libc++ for
__cplusplus < 201103L (libstdc++ does not do this)
- other minor fixes
ChangeLog:
- NumPy and Pandas now work on lang/pypy
- Cython 0.27.1 supports more projects with PyPy
- JSON parser improvements decrease memory by up to 50% and increase speed
by up to 15%
- CFFI updated to 1.11.1
lang/pypy(3): update to 5.8
Change Log:
- supports upstream library 2.7.13 and 3.5.3
- critical bugs fixed in shadowstack
- native support for profiling frames in vmprof
- performance improvements for pack* and unpack* structs
- cffi updates to 1.10.1
- numpy 1.13.0 requires at least this version
lang/pypy(3): update to 5.7.1
- add MIT/PSFL multi license
- pass LDSHARED to make environment (work-around assumption around 'gcc')
- add new dependency: pycparser (only required if python is translating)
- removed patches merged upstream
- add patch to remove '-flto' from cflags (base ld doesn't support LTO)
- pypy:
- add patch to fix bad assumption about 'gcc' (instead of 'cc')
- pypy3:
- update BUILD_WRKSRC and PYPY_CFFI_VER
- only supports AMD64
ChangeLog:
- PyPy2 updated to Python 2.7.13
- PyPy3 updated to Python 3.5.3 (beta):
- Not all tests pass
- Asyncio does work
- PyPy2 supports C-extensions: NumPy, Cython and Pandas (amongst others)
- CFFI updated to 1.10
- Many bug-fixes
lang/pypy3: update to 5.5.0
- Remove pacthes that have been upstreamed
- Fix detection of 'struct winsize'
- Correctly handle case when ftime(3) is not used (depreciated)
lang/pypy(3): unbreak on PowerPC.
Unbreak build by:
- correctly detecting PowerPC architecture,
- excluding PowerPC specific assembler code (as there is none), and
- fixing the JIT due to long double == double for PowerPC.
Special thanks to swills who diligently tested multiple iterations of patches
to eventually end up at a solution.
lang/pypy3: update to 5.2.0-alpha1
Changes to lang/pypy3:
- "Rename" from pypy3-devel (functionaly it is a rename, technically pypy3
is a new port and pypy3-devel is deleted).
- Make lang/pypy3 a slave port of lang/pypy
Changes to lang/pypy:
- Use DISTVERSION instead of PORTVERSION (lang/pypy3 is not
PORTVERSION clean)
- Change PYPY_CFFI_VER to include the 'pypy-' prefix (lang/pypy3 has
'pypy3-' as a prefix)
- Only make PYPY_MINMEM the default is ${LOCALBASE}/lang/pypy exists
- Fix build depends for PYPY_MINMEM
- Allow slave port to have custom patch directory
(Only the first 15 lines of the commit message are shown above )