osc copypac from project:devel:languages:python:Factory package:pypy revision:37
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/pypy3?expand=0&rev=1
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 21 12:32:19 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- Initial packaging of pypy numpy for openSUSE
|
||||
* upstream have splitted it from pypy itself
|
||||
|
||||
+647
@@ -0,0 +1,647 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 26 06:30:46 UTC 2016 - mvyskocil@opensuse.org
|
||||
|
||||
- Update to 5.1.0
|
||||
+ More improvement to warmup time and memory requirements. An
|
||||
additional reduction of about 20% in memory requirements, and
|
||||
up to 30% warmup time improvement, more detail in the blog post.
|
||||
- Patches changes:
|
||||
* refreshed pypy-1.2-suppress-mandelbrot-set-during-tty-build.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 31 19:27:32 UTC 2016 - michael@stroeder.com
|
||||
|
||||
- Update to 5.0.1
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 29 09:53:43 UTC 2016 - normand@linux.vnet.ibm.com
|
||||
|
||||
- remove two files not used anymore in spec file
|
||||
008-fix-dynamic-symbols-script.patch
|
||||
007-remove-startup-message.patch
|
||||
- add rpmlintrc in spec to avoid warning in rpm build process.
|
||||
- pypy.spec changes to avoid rpmlint errors and few warnings:
|
||||
* add verbose flag on rm, sed, chmod actions
|
||||
* put back call to fdupes
|
||||
* add more exclude lines in %files sections
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 16 18:28:09 UTC 2016 - michael@stroeder.com
|
||||
|
||||
- Update to 4.0.1
|
||||
+ few critical bugs were fixed
|
||||
+ minor enhancements
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 29 06:22:31 UTC 2015 - normand@linux.vnet.ibm.com
|
||||
|
||||
- change BuildRequires from prelink to execstack new package
|
||||
to avoid unresolvable for archi that do not build prelink.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 31 20:09:43 UTC 2015 - mvyskocil@opensuse.org
|
||||
|
||||
- limit the maximum number of jobs to 1 to avoid OOM on i586
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 30 12:08:07 UTC 2015 - mvyskocil@opensuse.org
|
||||
|
||||
- Update to 4.0.0:
|
||||
+ New Version Numbering (compatible with CPython 2.7.10)
|
||||
+ Vectorization - JIT now emits SIMD code, use -jit vec=1 to test
|
||||
+ Internal Refactoring: Warmup Time Improvement and Reduced
|
||||
Memory Usage
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Sep 6 15:12:48 UTC 2015 - mvyskocil@opensuse.org
|
||||
|
||||
- Update to 2.6.1:
|
||||
+ Revive non-SSE2 support
|
||||
+ Fixes for detaching _io.Buffer*
|
||||
+ Clear up contention in the garbage collector between trace-me-later
|
||||
and pinning
|
||||
+ 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 and OS X
|
||||
+ 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
|
||||
+ 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
|
||||
- Update to 2.6.0:
|
||||
+ Improve support for TLS 1.1 and 1.2
|
||||
+ Support for the PYTHONOPTIMIZE environment variable (impacting
|
||||
builtin’s __debug__ property)
|
||||
+ Add preliminary support for a new lightweight statistical profiler
|
||||
vmprof, which has been designed to accomodate profiling JITted code
|
||||
+ 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
|
||||
- Packaging:
|
||||
+ add pypy-cffi-suse.patch
|
||||
+ drop pypy-curses.patch, obsoleted by pypy-cffi-suse.patch
|
||||
+ drop pypy-tcl-libs.patch, obsoleted by pypy-cffi-suse.patch
|
||||
+ fix the code guessing max number of jobs
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 30 06:46:11 UTC 2015 - steve.cordwell@gmail.com
|
||||
|
||||
- Remove "--output=pypy" translation flag
|
||||
+ Produces "libpypy-c.so" instead of "libpypy.so"
|
||||
+ See https://bitbucket.org/pypy/pypy/issue/1971
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 30 00:08:45 UTC 2015 - steve.cordwell@gmail.com
|
||||
|
||||
- Update to 2.5.1
|
||||
+ Merge version 2.7.9 of the standard library from Python
|
||||
+ Python 3.4's ssl module
|
||||
+ Disabled SSLv3 by default
|
||||
+ ensurepip has been added
|
||||
+ More performant garbage collector
|
||||
+ Speed boost
|
||||
+ Bugs from 2.5.0 are fixed
|
||||
+ See http://doc.pypy.org/en/latest/release-2.5.1.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 8 00:47:03 UTC 2015 - mvyskocil@opensuse.org
|
||||
|
||||
- decrease maximum number of compilation jobs to 2, to prevent oom
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 7 19:53:54 UTC 2015 - mvyskocil@opensuse.org
|
||||
|
||||
- Setup LD_LIBRARY_PATH to run pypy in install phase
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 6 20:50:22 UTC 2015 - mvyskocil@opensuse.org
|
||||
|
||||
- Install shared library
|
||||
- Fix removal of non Linux platform stuff
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 5 07:01:12 UTC 2015 - mvyskocil@opensuse.org
|
||||
|
||||
- Add required pkg-config
|
||||
- Change all devel dependencies to pkgconfig()
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 4 21:37:13 UTC 2015 - mvyskocil@opensuse.org
|
||||
|
||||
- Update to 2.5.0
|
||||
+ Improved warmup speed by 10%
|
||||
+ Improved passing objects between C and Pypy
|
||||
+ Ordered and compact dictionaries
|
||||
+ Better erno handling
|
||||
+ all bugs from 2.4.0 are fixed
|
||||
+ see http://doc.pypy.org/en/latest/release-2.5.0.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 23 07:07:52 UTC 2014 - mvyskocil@opensuse.org
|
||||
|
||||
- Update to 2.4.0
|
||||
+ Bytearray operations no longer copy the bytearray unnecessarily
|
||||
+ Added support for __getitem__, __setitem__, __getslice__,
|
||||
__setslice__, and __len__ to RPython
|
||||
+ Give the StringBuilder a more flexible internal structure, with
|
||||
a chained list of strings instead of just one string. This
|
||||
make it more efficient when building large strings, e.g. with
|
||||
cStringIO().
|
||||
+ Also, use systematically jit.conditional_call() instead of
|
||||
regular branches. This lets the JIT make more linear code,
|
||||
at the cost of forcing a bit more data (to be passed as
|
||||
arguments to conditional_calls). I would expect the net
|
||||
result to be a slight slow-down on some simple benchmarks
|
||||
and a speed-up on bigger programs.
|
||||
+ Change the executioncontext’s lookup to be done by reading
|
||||
a thread- local variable (which is implemented in C using
|
||||
‘__thread’ if possible, and pthread_getspecific() otherwise).
|
||||
On Linux x86 and x86-64, the JIT backend has a special
|
||||
optimization that lets it emit directly a single MOV from
|
||||
a %gs- or %fs-based address. It seems actually to give a
|
||||
good boost in performance.
|
||||
+ A faster way to handle the GIL, particularly in JIT code.
|
||||
The GIL is now a composite of two concepts: a global number
|
||||
(it’s just set from 1 to 0 and back around CALL_RELEASE_GIL),
|
||||
and a real mutex. If there are threads waiting to acquire the
|
||||
GIL, one of them is actively checking the global number every
|
||||
0.1 ms to 1 ms. Overall, JIT loops full of external function
|
||||
calls now run a bit faster (if no thread was started yet), or
|
||||
a lot faster (if threads were started already).
|
||||
+ Optimize the errno handling in the JIT, notably around external
|
||||
function calls. Linux-only.
|
||||
+ Remove non-functioning ctypes.pyhonapi and ctypes.PyDLL, document
|
||||
this incompatibility with cpython. Recast sys.dllhandle to an int.
|
||||
+ Fix performance regression on ufunc(<scalar>, <scalar>) in numpy.
|
||||
+ Update our copies of py.test and pylib to versions 2.5.2
|
||||
and 1.4.20, respectively.
|
||||
+ Classes in the ast module are now distinct from structures
|
||||
used by the compiler.
|
||||
+ Fix issue #1861 - cpython compatability madness
|
||||
- Refreshed patches:
|
||||
* 006-always-log-stdout.patch
|
||||
* pypy-curses.patch
|
||||
* pypy-tcl-libs.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 9 12:41:18 UTC 2014 - mvyskocil@opensuse.org
|
||||
|
||||
- Use rpm conditionals for build jobs definition instead of wrong
|
||||
bash code - thanks scarabeus for noticing that
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 25 06:15:19 UTC 2014 - mvyskocil@opensuse.org
|
||||
|
||||
- Update to 2.3.1
|
||||
+ Move builtin struct module to _struct to allow pypy "-m idlelib.idle"
|
||||
+ Support compilation with gcc-4.9
|
||||
+ Added support for the stdlib gdbm module via cffi
|
||||
+ Annotator cleanups
|
||||
+ Use argparse for packaging.py, and add third-party components to LICENSE file.
|
||||
Also mention that gdbm is GPL. Do not crash the packaging process on
|
||||
failure in CFFI or license-building, rather complete the build step and
|
||||
return -1.
|
||||
pypy 2.3:
|
||||
+ Update stdlib to v2.7.6
|
||||
+ Clean up numpy types, add newbyteorder functionality
|
||||
+ JIT support for singlefloats on ARM using the hardfloat ABI
|
||||
+ Better support for record numpy arrays
|
||||
+ Use subclasses of SpaceOperation instead of SpaceOperator objects. Random
|
||||
cleanups in flowspace and annotator.
|
||||
+ adds support for the buffer= argument to the ndarray ctor
|
||||
+ Remove multimethods on str/unicode/bytearray and make the implementations share code.
|
||||
+ Speed up generators that don’t yield inside try or wait blocks by skipping
|
||||
unnecessary cleanup.
|
||||
+ Remove FlowObjSpace. Improve cohesion between rpython.flowspace and rpython.annotator.
|
||||
+ mapdicts keep track of whether or not an attribute is every assigned to multiple times.
|
||||
If it’s only assigned once then an elidable lookup is used when possible.
|
||||
+ Simplify implementation of NonConstant.
|
||||
+ Kill some guards and operations in JIT traces by adding integer bounds propagation for
|
||||
getfield_(raw|gc) and getarrayitem_(raw|gc).
|
||||
+ Optimize away INT_AND with constant mask of 1s that fully cover the bitrange of other operand.
|
||||
+ Propagate appropriate bounds through INT_(OR|XOR|AND) operations if the operands are positive
|
||||
to kill some guards
|
||||
+ kills int/long/smalllong/bool multimethods
|
||||
+ Cleanup micronumpy module
|
||||
+ In a lot of places CPython allows objects with __int__ and __float__ instead of actual ints
|
||||
and floats, while until now pypy disallowed them. We fix it by making space.{int_w,float_w,etc.}
|
||||
accepting those objects by default, and disallowing conversions only when explicitly needed.
|
||||
+ Fix for getarrayitem_gc_pure optimization
|
||||
+ Implements SimpleRangeListStrategy for case range(n) where n is a positive number. Makes
|
||||
some traces nicer by getting rid of multiplication for calculating loop counter and
|
||||
propagates that n > 0 further to get rid of guards.
|
||||
+ Provide an exit status for popen’ed RFiles via pclose
|
||||
+ Support for virtualizing raw_store/raw_load operations
|
||||
+ Separate the interp-level buffer API from the buffer type exposed to app-level. The
|
||||
Buffer class is now used by W_MemoryView and W_Buffer, which is not present in Python 3.
|
||||
Previously W_Buffer was an alias to Buffer, which was wrappable itself.
|
||||
+ and many more, see http://doc.pypy.org/en/latest/whatsnew-2.3.0.html
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 29 09:24:36 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- refresh pypy-tcl-libs.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 27 14:59:19 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- Update to 2.2.1
|
||||
+ an issue in sockets' reference counting emulation, showing up
|
||||
notably when using the ssl module and calling makefile().
|
||||
- adjust source url
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 27 09:58:00 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- fix a typo preventing JIT enabled build on i586
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Nov 19 08:38:39 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- do not hardcode tcl/tk version, just add a stub and expand it to
|
||||
real version in pre
|
||||
* modified pypy-tcl-libs.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 18 14:31:08 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- Fix a few rpmlint errors and warnings
|
||||
* devel-file-in-non-devel-package - remove c files inside __pycache__
|
||||
* ignore files-duplicate for pyc/pyo
|
||||
* backup-file-in-package - remove all orig files
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 14 13:01:07 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- Update to 2.2
|
||||
+ Our Garbage Collector is now "incremental". Pauses should take 5
|
||||
miliseconds at maximum.
|
||||
+ The JIT counters for hot core are decreased from time to time in
|
||||
order to prevent JITing of rarely executed code.
|
||||
+ NumPy has been split: now PyPy only contains the core module,
|
||||
called _numpypy. The numpy module itself has been moved to
|
||||
https://bitbucket.org/pypy/numpy and numpypy disappeared.
|
||||
+ Non-inlined calls have less overhead.
|
||||
+ Things that use sys.set_trace are now JITted (like coverage).
|
||||
+ JSON decoding is now very fast (JSON encoding was already very fast).
|
||||
+ Various buffer copying methods experience speedups (like list-of-ints
|
||||
to int[] buffer from cffi).
|
||||
+ We finally wrote (hopefully) all the missing os.xxx() functions, including
|
||||
os.startfile() on Windows and a handful of rare ones on Posix.
|
||||
+ numpy has a rudimentary C API that cooperates with cpyext.
|
||||
- do not install all platform dirs, only plat-linux2 and plat-generic
|
||||
- split pypy-libs into more subpackages to reduce a size and dependencies
|
||||
* -idle containst idle
|
||||
* -tk with tkinter support
|
||||
* -testsuite contains all tests of pypy and python library
|
||||
- skip post-build-checks to not warn about gcc issues on generated code
|
||||
- updated patches:
|
||||
* pypy-tcl-libs.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 14 07:09:59 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- build with sqlite3-devel
|
||||
- build with tcl-devel and tk-devel for tkinker support
|
||||
- generate __pycache__ dirs for cffi based modules _curses, _sqlite3,
|
||||
syslog and tkinker
|
||||
- correct paths of include files for ncurses
|
||||
* pypy-curses.patch
|
||||
- correct linker flags for tcl and tk
|
||||
* pypy-tcl-libs.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 6 10:10:27 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- Update to 2.1
|
||||
+ 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).
|
||||
+ 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.
|
||||
- add python-curses to BR
|
||||
- deprecate config.path, fixed upstream
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 27 11:02:42 UTC 2013 - mvyskocil@suse.com
|
||||
|
||||
- Update to 2.0.2
|
||||
+ fixes a crash in the JIT when calling external C functions (with
|
||||
ctypes/cffi) in a multithreaded context.
|
||||
+ fix an occasional crash in the JIT that ends in RPython Fatal error:
|
||||
NotImplementedError.
|
||||
+ id(x) is now always a positive number (except on int/float/long/complex).
|
||||
This fixes an issue in _sqlite.py (mostly for 32-bit Linux).
|
||||
+ fix crashes of callback-from-C-functions (with cffi) when used together
|
||||
with Stackless features, on asmgcc (i.e. Linux only). Now gevent should work
|
||||
better.
|
||||
+ work around an eventlet issue with socket._decref_socketios().
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 13 18:33:30 UTC 2013 - mvyskocil@opensuse.org
|
||||
|
||||
- Update to 2.0 (final)
|
||||
+ JIT now supports stackless features, that is greenlets and stacklets. This
|
||||
means that JIT can now optimize the code that switches the context. It
|
||||
enables running eventlet and gevent on PyPy (although gevent requires some
|
||||
special support that’s not quite finished, read below).
|
||||
+ This is the first PyPy release that includes cffi as a core library.
|
||||
Version 0.6 comes included in the PyPy library. cffi has seen a lot of
|
||||
adoption among library authors and we believe it’s the best way to wrap C
|
||||
libaries. You can see examples of cffi usage in _curses.py and _sqlite3.py in
|
||||
the PyPy source code.
|
||||
- brp-python-bytecompile is fixed, so it does produce all needed .pyc files
|
||||
- add a basic test to ensure .pyc files were produced
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 25 18:47:31 UTC 2013 - mvyskocil@opensuse.org
|
||||
|
||||
- Update to 2.0 beta2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 19 13:01:16 UTC 2013 - speilicke@suse.com
|
||||
|
||||
- Drop pypy-1.6-fix-test-subprocess-with-nonreadable-path-dir.patch:
|
||||
+ No desire to rebase
|
||||
- Use fdupes -s
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Feb 22 12:06:35 UTC 2013 - saschpe@suse.de
|
||||
|
||||
- Add self-hosting build bcond which allows to use the "pypy" package
|
||||
to translate PyPy instead of Python-2.7
|
||||
- There is no '--stackless' option anymore, PyPy now provides "continuelets"
|
||||
- Fix rpmlint issues:
|
||||
+ description-shorter-than-summary
|
||||
+ devel-file-in-non-devel-package
|
||||
+ files-duplicate
|
||||
+ macro-in-comment
|
||||
- Add rpmlintrc:
|
||||
+ /etc/rpm/macros.pypy is not meant to be configurable
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 11 16:09:42 UTC 2013 - saschpe@suse.de
|
||||
|
||||
- Own /usr/lib64/pypy-%{version}
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 11 14:10:42 UTC 2013 - saschpe@suse.de
|
||||
|
||||
- Fix some typos and disable debuginfo handling (for now)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 10 14:16:22 UTC 2013 - saschpe@suse.de
|
||||
|
||||
- Update to version 2.0b1:
|
||||
+ cffi is officially supported by PyPy.
|
||||
+ ARM is now an officially supported processor architecture. PyPy now work
|
||||
on soft-float ARM/Linux builds. Currently ARM processors supporting the
|
||||
ARMv7 and later ISA that include a floating-point unit are supported.
|
||||
+ This release contains the latest Python standard library 2.7.3 and is
|
||||
fully compatible with Python 2.7.3.
|
||||
+ It does not however contain hash randomization, since the solution present
|
||||
in CPython is not solving the problem anyway.
|
||||
+ gc.get_referrers() is now faster.
|
||||
+ Various numpy improvements. The list includes:
|
||||
- axis argument support in many places
|
||||
- full support for fancy indexing
|
||||
- complex128 and complex64 dtypes
|
||||
+ JIT hooks are now a powerful tool to introspect the JITting process that PyPy performs.
|
||||
+ **kwds usage is much faster in the typical scenario
|
||||
+ operations on long objects are now as fast as in CPython (from roughly 2x slower)
|
||||
|
||||
- Reuse some Fedora patches
|
||||
- Use _constraints file, we need >4G RAM on x86_64
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 11 11:10:29 UTC 2012 - saschpe@suse.de
|
||||
|
||||
- Update to version 1.9:
|
||||
* Many bugs were corrected for Windows 32 bit. This includes new
|
||||
functionality to test the validity of file descriptors; and
|
||||
correct handling of the calling convensions for ctypes.
|
||||
* Improvements in cpyext, our emulator for CPython C extension modules.
|
||||
For example PyOpenSSL should now work. We thank various people for help.
|
||||
Sets now have strategies just like dictionaries. This means for example
|
||||
that a set containing only ints will be more compact (and faster).
|
||||
* A lot of progress on various aspects of numpypy. See the numpy-status
|
||||
page for the automatic report.
|
||||
* It is now possible to create and manipulate C-like structures using the
|
||||
PyPy-only _ffi module. The advantage over using e.g. ctypes is that
|
||||
_ffi is very JIT-friendly, and getting/setting of fields is translated
|
||||
to few assembler instructions by the JIT. However, this is mostly intended
|
||||
as a low-level backend to be used by more user-friendly FFI packages, and
|
||||
the API might change in the future. Use it at your own risk.
|
||||
* The non-x86 backends for the JIT are progressing but are still not
|
||||
merged (ARMv7 and PPC64).
|
||||
* JIT hooks for inspecting the created assembler code have been improved.
|
||||
* See JIT hooks documentation for details.
|
||||
* select.kqueue has been added (BSD).
|
||||
* Handling of keyword arguments has been drastically improved in the best-case
|
||||
scenario: proxy functions which simply forwards *args and **kwargs
|
||||
to another function now performs much better with the JIT.
|
||||
* List comprehension has been improved.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 21 19:13:10 UTC 2012 - saschpe@gmx.de
|
||||
|
||||
- Update to version 1.8:
|
||||
* Upstream provideas no changelog
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 27 20:12:33 UTC 2011 - saschpe@gmx.de
|
||||
|
||||
- Drop pypy-1.2-suppress-mandelbrot-set-during-tty-build.patch,
|
||||
'--batch' mode does that too
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 27 20:10:39 UTC 2011 - saschpe@gmx.de
|
||||
|
||||
- Install binaries correctly
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 27 15:25:10 UTC 2011 - saschpe@suse.de
|
||||
|
||||
- Split of 'vim' package containing VIM syntax files
|
||||
- Use %_smp_mflags
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 27 13:11:38 UTC 2011 - saschpe@suse.de
|
||||
|
||||
- Split of 'emacs' package containing the JIT viewer mode
|
||||
- Removed pypy-1.4-config.patch and pypy-1.5-config.patch, the translate.py
|
||||
commandline arg '--cflags' is sufficient.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 26 12:52:54 CEST 2011 - dsterba@suse.cz
|
||||
|
||||
- disable emacs
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 26 12:26:27 CEST 2011 - dsterba@suse.cz
|
||||
|
||||
- pull from fedora package master, pypy 1.6
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 26 11:51:08 CEST 2011 - dsterba@suse.cz
|
||||
|
||||
- initial import from home:dipe, pypy 1.4
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 25 00:00:00 UTC 2011 - dmalcolm@redhat.com
|
||||
|
||||
- add rpm macros file to the devel subpackage (source 2)
|
||||
- skip some tests that can't pass yet
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Aug 20 00:00:00 UTC 2011 - dmalcolm@redhat.com
|
||||
|
||||
- work around test_subprocess failure seen in koji (patch 5)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 18 00:00:00 UTC 2011 - dmalcolm@redhat.com
|
||||
|
||||
- 1.6
|
||||
- rewrite the %%check section, introducing per-test timeouts
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 2 00:00:00 UTC 2011 - dmalcolm@redhat.com
|
||||
|
||||
- add pypytrace-mode.el to the pypy-libs subpackage, for viewing JIT trace
|
||||
logs in emacs
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 2 00:00:00 UTC 2011 - dmalcolm@redhat.com
|
||||
|
||||
- 1.5
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 20 00:00:00 UTC 2011 - dmalcolm@redhat.com
|
||||
|
||||
- build a /usr/bin/pypy (but without the JIT compiler) on architectures that
|
||||
don't support the JIT, so that they do at least have something that runs
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 8 00:00:00 UTC 2011 - rel-eng@lists.fedoraproject.org
|
||||
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 14 00:00:00 UTC 2011 - dmalcolm@redhat.com
|
||||
|
||||
- skip test_ioctl for now
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 13 00:00:00 UTC 2011 - dmalcolm@redhat.com
|
||||
|
||||
- add a "pypy-devel" subpackage, and install the header files there
|
||||
- in %%check, re-run failed tests in verbose mode
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 7 00:00:00 UTC 2011 - Dan Horák <dan[at]danny.cz> - 1.4.1-5
|
||||
|
||||
- valgrind available only on selected architectures
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 5 00:00:00 UTC 2011 - dmalcolm@redhat.com
|
||||
|
||||
- rebuild pypy using itself, for speed, with a boolean to break this cycle in
|
||||
the build-requirement graph (falling back to using "python-devel" aka CPython)
|
||||
- add work-in-progress patch to try to make generated c more readable
|
||||
(rhbz#666963)
|
||||
- capture the RPython source code files from the build within the debuginfo
|
||||
package (rhbz#666975)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 22 00:00:00 UTC 2010 - dmalcolm@redhat.com
|
||||
|
||||
- remove .svn directories
|
||||
- disable verbose logging
|
||||
- add a %%check section
|
||||
- introduce %%goal_dir variable, to avoid repetition
|
||||
- remove shebang line from demo/bpnn.py, as we're treating this as a
|
||||
documentation file
|
||||
- regenerate patch 2 to apply without generating a .orig file
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 21 00:00:00 UTC 2010 - dmalcolm@redhat.com
|
||||
|
||||
- 1.4.1; fixup %%setup to reflect change in toplevel directory in upstream
|
||||
source tarball
|
||||
- apply SELinux fix to the bundled test_commands.py (patch 2)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 15 00:00:00 UTC 2010 - dmalcolm@redhat.com
|
||||
|
||||
- rename the jit build and subpackge to just "pypy", and remove the nojit and
|
||||
sandbox builds, as upstream now seems to be focussing on the JIT build (with
|
||||
only stackless called out in the getting-started-python docs); disable
|
||||
stackless for now
|
||||
- add a verbose_logs specfile boolean; leave it enabled for now (whilst fixing
|
||||
build issues)
|
||||
- add more comments, and update others to reflect 1.2 -> 1.4 changes
|
||||
- re-enable debuginfo within CFLAGS ("-g")
|
||||
- add the LICENSE and README to all subpackages
|
||||
- ensure the built binaries don't have the "I need an executable stack" flag
|
||||
- remove DOS batch files during %%prep (idlelib.bat)
|
||||
- remove shebang lines from .py files that aren't executable, and remove
|
||||
executability from .py files that don't have a shebang line (taken from
|
||||
our python3.spec)
|
||||
- bytecompile the .py files into .pyc files in pypy's bytecode format
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Nov 28 00:00:00 UTC 2010 - toshio@fedoraproject.org
|
||||
|
||||
- BuildRequire valgrind-devel
|
||||
- Install pypy library from the new directory
|
||||
- Disable building with our CFLAGS for now because they are causing a build failure.
|
||||
- Include site-packages directory
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 27 00:00:00 UTC 2010 - toshio@fedoraproject.org
|
||||
|
||||
- Update to 1.4
|
||||
- Drop patch for py2.6 that's in this build
|
||||
- Switch to building pypy with itself once pypy is built once as recommended by
|
||||
upstream
|
||||
- Remove bundled, prebuilt java libraries
|
||||
- Fix license tag
|
||||
- Fix source url
|
||||
- Version pypy-libs Req
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 4 00:00:00 UTC 2010 - dmalcolm@redhat.com
|
||||
|
||||
- cherrypick r72073 from upstream SVN in order to fix the build against
|
||||
python 2.6.5 (patch 2)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 28 00:00:00 UTC 2010 - dmalcolm@redhat.com
|
||||
|
||||
- initial packaging
|
||||
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
#
|
||||
# spec file for package
|
||||
#
|
||||
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
Name: pypy-numpy
|
||||
Version: 0.0.0+git20131121.c0ebca2
|
||||
Release: 0
|
||||
License: BSD-3-Clause
|
||||
Summary: NumPy array processing for numbers, strings, records and objects
|
||||
Url: https://bitbucket.org/pypy/numpy/src
|
||||
Group: Development/Libraries/Python
|
||||
# tar --exclude-vcs -cJf numpy-%{version}.tar.xz numpy/
|
||||
Source0: numpy-%{version}.tar.xz
|
||||
BuildRequires: xz
|
||||
BuildRequires: pypy-devel
|
||||
BuildRequires: blas-devel
|
||||
BuildRequires: lapack-devel
|
||||
BuildRequires: gcc-fortran
|
||||
BuildRequires: fdupes
|
||||
#TODO: mvyskocil: it is unclear if missing declarations are problem or not
|
||||
# asked upstream and masked errors
|
||||
BuildRequires: -post-build-checks
|
||||
Requires: pypy >= 2.2
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
NumPy is a general-purpose array-processing package designed to
|
||||
efficiently manipulate large multi-dimensional arrays of arbitrary
|
||||
records without sacrificing too much speed for small multi-dimensional
|
||||
arrays. NumPy is built on the Numeric code base and adds features
|
||||
introduced by numarray as well as an extended C-API and the ability to
|
||||
create arrays of arbitrary type which also makes NumPy suitable for
|
||||
interfacing with general-purpose data-base applications.
|
||||
|
||||
There are also basic facilities for discrete fourier transform,
|
||||
basic linear algebra and random number generation.
|
||||
|
||||
This package contain specific pypy fork of numpy.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for numpy applications
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{name} = %{version}
|
||||
Requires: blas-devel
|
||||
Requires: lapack-devel
|
||||
Requires: python-devel >= %{py_ver}
|
||||
Requires: gcc-fortran
|
||||
%requires_eq pypy-devel
|
||||
|
||||
%description devel
|
||||
This package contains files for developing applications
|
||||
using numpy.
|
||||
|
||||
%prep
|
||||
%setup -q -n numpy
|
||||
|
||||
#no shebang
|
||||
find . -name '*.py' | xargs sed -i -e '/^#!.usr.bin.*/d'
|
||||
|
||||
%build
|
||||
CFLAGS="%{optflags} -fno-strict-aliasing" %{__pypy} setup.py build
|
||||
|
||||
%install
|
||||
%{__pypy} setup.py install --root="%{buildroot}" --prefix="%{_prefix}"
|
||||
#XXX: This is a bug in pypy distutils, which points to /usr/site-packages
|
||||
# asked upstream https://mail.python.org/pipermail/pypy-dev/2013-November/011938.html
|
||||
# lets workaround it once it will be resolved
|
||||
mkdir -p %{buildroot}/%{pypy_sitearch}/site-packages/
|
||||
mv %{buildroot}/%{_prefix}/site-packages/* %{buildroot}/%{pypy_sitearch}/
|
||||
rm -rf %{buildroot}%{pypy_sitearch}/numpy/{,core,distutils,f2py,fft,ma,matrixlib,oldnumeric,polynomial,random,testing}/tests # Don't package testsuite
|
||||
%fdupes -s %{buildroot}%{_prefix}
|
||||
#TODO: update-alternatives
|
||||
mv %{buildroot}/%{_bindir}/f2py %{buildroot}/%{_bindir}/f2py-pypy
|
||||
|
||||
# split devel files out
|
||||
find %{buildroot}/%{pypy_sitearch}/numpy -name '*.c' -or -name '*.h' -or -name '*.a' | \
|
||||
sed 's@%{buildroot}/%{pypy_sitearch}@%%{pypy_sitearch}@' > devel-files
|
||||
|
||||
#FIXME: why such sed does not work?
|
||||
#sed 's/.*/%%exclude &/' > exclude-devel-files
|
||||
cat <<EOF > mkexcludes.py
|
||||
#!/usr/bin/pypy
|
||||
|
||||
with open("devel-files", "rt") as fp:
|
||||
for line in fp:
|
||||
print("%exclude {}".format(line.rstrip()))
|
||||
EOF
|
||||
|
||||
pypy mkexcludes.py > exclude-devel-files
|
||||
|
||||
%files -f exclude-devel-files
|
||||
%defattr(-,root,root)
|
||||
%doc COMPATIBILITY LICENSE.txt README.txt THANKS.txt
|
||||
%{_bindir}/f2py-pypy
|
||||
%{pypy_sitearch}/numpy/
|
||||
%{pypy_sitearch}/numpy-1.8.0.dev_Unknown-py2.7.egg-info
|
||||
|
||||
%files devel -f devel-files
|
||||
%defattr(-,root,root)
|
||||
%{pypy_sitearch}/numpy/*/*/*.c
|
||||
%{pypy_sitearch}/numpy/*/*.h
|
||||
%{pypy_sitearch}/numpy/*/*/*.h
|
||||
%{pypy_sitearch}/numpy/*/*/*/*.h
|
||||
%{pypy_sitearch}/numpy/core/lib/libnpymath.a
|
||||
|
||||
%changelog
|
||||
|
||||
@@ -0,0 +1,448 @@
|
||||
#
|
||||
# Copyright (c) 2013, Sascha Peilicke <saschpe@gmx.de>
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
#
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# We could build many different implementations of Python. For now, let's focus
|
||||
# on the implementation that appears to be receiving the most attention
|
||||
# upstream: the JIT-enabled build, with all standard optimizations We will build
|
||||
# a "pypy" binary. Unfortunately, the JIT support is only available on some
|
||||
# architectures (see pypy-1.4/pypy/jit/backend/detect_cpu.py:getcpuclassname).
|
||||
%ifarch %{ix86} x86_64 %arm
|
||||
%define with_jit 1
|
||||
%else
|
||||
%define with_jit 0
|
||||
%endif
|
||||
|
||||
# Forcibly use the shadow-stack option for detecting GC roots, rather than
|
||||
# relying on hacking up generated assembler with regexps:
|
||||
%global shadow_stack 1
|
||||
|
||||
# Should be require "pypy" instead of "python-devel" for translation?
|
||||
%bcond_with self_hosting
|
||||
|
||||
# Tests should not be run in normal builds - it takes hours w/o tests
|
||||
%bcond_with tests
|
||||
|
||||
# Turn off the brp-python-bytecompile postprocessing script. We manually invoke it later on, using the freshly built pypy binary:
|
||||
%define __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
|
||||
|
||||
%global py_ver 2.7
|
||||
|
||||
Name: pypy
|
||||
Version: 5.1.0
|
||||
%define pypyprefix %{_libdir}/pypy-%{version}
|
||||
Release: 0
|
||||
Url: http://pypy.org/
|
||||
Summary: A very fast and compliant implementation of the Python language
|
||||
License: MIT
|
||||
Group: Development/Languages/Python
|
||||
Source0: https://bitbucket.org/pypy/pypy/downloads/%{name}-%{version}-src.tar.bz2
|
||||
Source1: macros.pypy
|
||||
Source100: rpmlintrc
|
||||
Patch0: pypy-1.2-suppress-mandelbrot-set-during-tty-build.patch
|
||||
Patch1: 006-always-log-stdout.patch
|
||||
#PATCH-FIX-OPENSUSE: fix library includes dirs and link library names
|
||||
Patch2: pypy-cffi-suse.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: libffi-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: pkg-config
|
||||
BuildRequires: gdbm-devel
|
||||
BuildRequires: pkgconfig(bzip2)
|
||||
BuildRequires: pkgconfig(expat)
|
||||
BuildRequires: pkgconfig(ncurses)
|
||||
BuildRequires: pkgconfig(sqlite3)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
BuildRequires: pkgconfig(tcl)
|
||||
BuildRequires: pkgconfig(tk)
|
||||
%if %{with self_hosting}
|
||||
BuildRequires: pypy-devel
|
||||
%else
|
||||
BuildRequires: pkgconfig(python)
|
||||
BuildRequires: python-curses
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le s390x
|
||||
BuildRequires: pkgconfig(valgrind)
|
||||
%endif
|
||||
BuildRequires: execstack
|
||||
#XXX: mvyskocil: I'd not fix implicit-fortify-decl or implicit-pointer-decl issues in **generated** C code
|
||||
BuildRequires: -post-build-checks
|
||||
BuildRequires: fdupes
|
||||
# Documentation requirements:
|
||||
#BuildRequires: python-Sphinx
|
||||
# Metadata for the core package (the JIT build):
|
||||
Requires: pypy-libs = %{version}
|
||||
|
||||
%description
|
||||
PyPy is a fast, compliant alternative implementation of the Python language.
|
||||
It has several advantages and distinct features:
|
||||
|
||||
* Speed: Thanks to its Just-in-Time compiler, Python programs often run
|
||||
faster on PyPy
|
||||
* Memory usage: large, memory-hungry Python programs might end up taking less
|
||||
space than they do in CPython
|
||||
* Compatibility: PyPy is highly compatible with existing python code. It
|
||||
supports ctypes and can run popular python libraries like Twisted and Django
|
||||
* Sandboxing: PyPy provides the ability to run untrusted code in a fully secure way
|
||||
* Stackless: PyPy can be configured to run in stackless mode, providing
|
||||
micro-threads for massive concurrency
|
||||
|
||||
%if 0%{?with_jit}
|
||||
This build of PyPy has JIT-compilation enabled.
|
||||
%else
|
||||
This build of PyPy has JIT-compilation disabled, as it is not supported on this
|
||||
CPU architecture.
|
||||
%endif
|
||||
|
||||
%package libs
|
||||
Group: Development/Languages/Python
|
||||
Summary: Run-time libraries used by PyPy implementations of Python
|
||||
|
||||
%description libs
|
||||
PyPy is a fast, compliant alternative implementation of the Python language.
|
||||
|
||||
Libraries required by the various PyPy implementations of Python.
|
||||
|
||||
%package devel
|
||||
Group: Development/Languages/Python
|
||||
Summary: Development tools for working with PyPy
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description devel
|
||||
PyPy is a fast, compliant alternative implementation of the Python language.
|
||||
|
||||
Header files for building C extension modules against PyPy
|
||||
|
||||
%package testsuite
|
||||
Group: Development/Languages/Python
|
||||
Summary: Development tools for working with PyPy
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description testsuite
|
||||
PyPy is a fast, compliant alternative implementation of the Python language.
|
||||
|
||||
Tests for PyPy and its standard library.
|
||||
|
||||
%package idle
|
||||
Summary: An Integrated Development Environment for Python
|
||||
Group: Development/Languages/Python
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{name}-tk
|
||||
|
||||
%description idle
|
||||
IDLE is a Tkinter based integrated development environment for Python.
|
||||
It features a multi-window text editor with multiple undo, Python
|
||||
colorizing, and many other things, as well as a Python shell window and
|
||||
a debugger.
|
||||
|
||||
%package tk
|
||||
Summary: TkInter - Python Tk Interface
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description tk
|
||||
PyPy interface to Tk. Tk is the GUI toolkit that comes with Tcl. The
|
||||
"xrpm" package uses this PyPy interface.
|
||||
|
||||
%package emacs
|
||||
Summary: Emacs mode for the PyPy JIT viewer
|
||||
Group: Productivity/Text/Editors
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description emacs
|
||||
PyPy is a fast, compliant alternative implementation of the Python language.
|
||||
|
||||
Emacs mode for the PyPy JIT viewer.
|
||||
|
||||
%package vim
|
||||
Summary: Vim syntax files for the PyPy JIT viewer
|
||||
Group: Productivity/Text/Editors
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description vim
|
||||
PyPy is a fast, compliant alternative implementation of the Python language.
|
||||
|
||||
Vim syntax files for the PyPy JIT viewer.
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}-src
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
|
||||
# Replace /usr/local/bin/python shebangs with /usr/bin/python:
|
||||
find -name "*.py" -exec sed -i -e "s|/usr/local/bin/python|/usr/bin/python|" {} \;
|
||||
# Remove DOS batch files:
|
||||
find -name "*.bat" -exec rm {} \;
|
||||
find -name '*.jar' -exec rm {} \;
|
||||
|
||||
# remove spurious .orig files
|
||||
find -name "*.orig" -delete
|
||||
|
||||
%build
|
||||
|
||||
pushd pypy/goal
|
||||
|
||||
%if 0%{shadow_stack}
|
||||
# This is the most portable option, and avoids a reliance on non-guaranteed
|
||||
# behaviors within GCC's code generator: use an explicitly-maintained stack
|
||||
# of root pointers:
|
||||
%define gcrootfinder_options --gcrootfinder=shadowstack
|
||||
|
||||
export CFLAGS=$(echo "$RPM_OPT_FLAGS")
|
||||
|
||||
%else
|
||||
# Go with the default, which is "asmgcc"
|
||||
|
||||
%define gcrootfinder_options %{nil}
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=588941#c18
|
||||
# The generated Makefile compiles the .c files into assembler (.s), rather
|
||||
# than direct to .o It then post-processes this assembler to locate
|
||||
# garbage-collection roots (building .lbl.s and .gcmap files, and a
|
||||
# "gcmaptable.s"). (The modified .lbl.s files have extra code injected
|
||||
# within them).
|
||||
# Unfortunately, the code to do this:
|
||||
# pypy-1.4/pypy/translator/c/gcc/trackgcroot.py
|
||||
# doesn't interract well with the results of using our standard build flags.
|
||||
# For now, filter our CFLAGS of everything that could be conflicting with
|
||||
# pypy. Need to check these and reenable ones that are okay later.
|
||||
# Filed as https://bugzilla.redhat.com/show_bug.cgi?id=666966
|
||||
export CFLAGS=$(echo "$RPM_OPT_FLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//' -e 's/-fexceptions//' -e 's/-fstack-protector//' -e 's/--param=ssp-buffer-size=4//' -e 's/-O2//' -e 's/-fasynchronous-unwind-tables//' -e 's/-march=i686//' -e 's/-mtune=atom//')
|
||||
|
||||
%endif
|
||||
|
||||
# The generated C code leads to many thousands of warnings of the form:
|
||||
# warning: variable 'l_v26003' set but not used [-Wunused-but-set-variable]
|
||||
# Suppress them:
|
||||
export CFLAGS=$(echo "$CFLAGS" -Wno-unused -fPIC)
|
||||
|
||||
# If we're already built the JIT-enabled "pypy", then use it for subsequent
|
||||
# builds (of other configurations):
|
||||
if test -x '/usr/bin/pypy' ; then
|
||||
INTERP='pypy'
|
||||
else
|
||||
# First pypy build within this rpm build?
|
||||
# Fall back to using the bootstrap python interpreter, which might be a
|
||||
# system copy of pypy from an earlier rpm, or be cpython's /usr/bin/python:
|
||||
INTERP='python'
|
||||
fi
|
||||
touch __TSTAMP__
|
||||
|
||||
# mvyskocil: memory requirements of pypy build process are huge. I saw OOM killer on i586 with just two processes
|
||||
# preffer build success than a speed
|
||||
JOBS=1
|
||||
|
||||
RPM_BUILD_ROOT= $INTERP ../../rpython/bin/rpython --log --shared --make-jobs="${JOBS}" \
|
||||
--batch %{gcrootfinder_options} \
|
||||
%if 0%{?with_jit}
|
||||
--opt=jit \
|
||||
%else
|
||||
--opt=2 \
|
||||
%endif
|
||||
targetpypystandalone.py
|
||||
|
||||
# generate appropriate __pycache__ dirs
|
||||
# advice from: http://mail.python.org/pipermail/pypy-dev/2013-August/011636.html
|
||||
./pypy-c -c 'import _sqlite3, _curses, syslog, _tkinter' || :
|
||||
# remove bogus __pycache__/home/abuild subdirs, idea taken from FreeBSD ports
|
||||
find . -name '__pycache__' | xargs -n 1 -I {} find {} -mindepth 1 -maxdepth 1 -type d | xargs rm -vrf
|
||||
|
||||
popd #pypy/goal
|
||||
|
||||
# remove c files from __pycache__ dirs to avoid
|
||||
# pypy-libs.x86_64: E: devel-file-in-non-devel-package (Badness: 50) /usr/lib/pypy-2.2/lib_pypy/__pycache__/_cffi__ga01735dbxad93c709.c
|
||||
find . -name '__pycache__' | xargs -n 1 -I {} find {} -type f -name '*.c' | xargs rm -vrf
|
||||
|
||||
%install
|
||||
|
||||
mkdir -p %{buildroot}/%{_bindir}
|
||||
|
||||
install -Dm 755 pypy/goal/pypy-c %{buildroot}/%{pypyprefix}/pypy
|
||||
ln -s %{pypyprefix}/pypy %{buildroot}/%{_bindir}
|
||||
execstack --clear-execstack %{buildroot}/%{pypyprefix}/pypy
|
||||
|
||||
install -Dm 755 pypy/goal/libpypy-c.so %{buildroot}/%{_libdir}/
|
||||
|
||||
cp -a lib-python %{buildroot}/%{pypyprefix}
|
||||
cp -a lib_pypy %{buildroot}/%{pypyprefix}
|
||||
|
||||
# Remove a text file that documents which selftests fail on Win32:
|
||||
rm %{buildroot}/%{pypyprefix}/lib-python/win32-failures.txt
|
||||
# Remove a text file containing upstream's recipe for syncing stdlib in
|
||||
# their hg repository with cpython's:
|
||||
rm %{buildroot}/%{pypyprefix}/lib-python/stdlib-upgrade.txt
|
||||
|
||||
# Remove all other platform files that plat-linux2 and plat-generic
|
||||
# XXX: do we need plat-generic?
|
||||
find %{buildroot}/%{pypyprefix}/lib* -type d -name 'plat-*' -and \( -not -name 'plat-linux2' -or -not -name 'plat-generic' \) | xargs rm -vrf
|
||||
|
||||
# Remove shebang lines from .py files that aren't executable, and
|
||||
# remove executability from .py files that don't have a shebang line:
|
||||
find %{buildroot} -name "*.py" \( \
|
||||
\( \! -perm /u+x,g+x,o+x -exec sed -e '/^#!/Q 0' -e 'Q 1' {} \; \
|
||||
-print -exec sed -i '1d' {} \; \) \
|
||||
-o \( \
|
||||
-perm /u+x,g+x,o+x ! -exec grep -m 1 -q '^#!' {} \; \
|
||||
-print -exec chmod a-x {} \; \) \)
|
||||
|
||||
mkdir -p %{buildroot}/%{pypyprefix}/site-packages
|
||||
|
||||
# pypy uses .pyc files by default (--objspace-usepycfiles), but has a slightly
|
||||
# different bytecode format to CPython. It doesn't use .pyo files: the -O flag
|
||||
# is treated as a "dummy optimization flag for compatibility with C Python"
|
||||
# Bytecompile all of the .py files we ship, using our pypy binary, giving us
|
||||
# .pyc files for pypy. The script actually does the work twice (passing in -O
|
||||
# the second time) but it's simplest to reuse that script.
|
||||
#
|
||||
# The script has special-casing for .py files below /usr/lib{64}/python[0-9].[0-9]
|
||||
# but given that we're installing into a different path, the supplied "default"
|
||||
# implementation gets used instead.
|
||||
#
|
||||
# Note that some of the test files deliberately contain syntax errors, so
|
||||
# we pass 0 for the second argument ("errors_terminate"):
|
||||
#
|
||||
export LD_LIBRARY_PATH=%{buildroot}/%{_libdir}/
|
||||
# mv: don't use symlinks as script calls test -x, which fails on symlinks
|
||||
/usr/lib/rpm/brp-python-bytecompile %{buildroot}/%{pypyprefix}/pypy 0
|
||||
|
||||
#TODO: we can write a test in Python, but check at least few modules from stdlib
|
||||
for module in os pdb antigravity bisect; do
|
||||
if [ ! -f %{buildroot}/%{pypyprefix}/lib-python/%{py_ver}/${module}.pyc ]; then
|
||||
echo "ERROR: %{buildroot}/%{pypyprefix}/lib-python/%{py_ver}/${module}.pyc is missing" >&2
|
||||
echo " brp-python-bytecode have probably failed"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Header files for C extension modules.
|
||||
# Upstream's packaging process (pypy/tool/release/package.py)
|
||||
# creates an "include" subdir and copies all *.h/*.inl from "include" there
|
||||
# (it also has an apparently out-of-date comment about copying them from
|
||||
# pypy/_interfaces, but this directory doesn't seem to exist, and it doesn't
|
||||
# seem to do this as of 2011-01-13)
|
||||
|
||||
# FIXME: arguably these should be instead put into a subdir below /usr/include,
|
||||
# it's not yet clear to me how upstream plan to deal with the C extension
|
||||
# interface going forward, so let's just mimic upstream for now.
|
||||
install -d %{buildroot}/%{pypyprefix}/include
|
||||
cp include/*.h %{buildroot}/%{pypyprefix}/include
|
||||
|
||||
# Capture the RPython source code files from the build within the debuginfo
|
||||
# package (rhbz#666975)
|
||||
#%%define pypy_debuginfo_dir /usr/src/debug/pypy-%%{version}-src
|
||||
#mkdir -p %%{buildroot}%%{pypy_debuginfo_dir}
|
||||
|
||||
# copy over everything:
|
||||
#cp -a pypy %%{buildroot}%%{pypy_debuginfo_dir}
|
||||
# ...then delete files that aren't .py files:
|
||||
#find %%{buildroot}%%{pypy_debuginfo_dir} -type f -a \! \( -name "*.py" \
|
||||
# -o -name "Makefile" \
|
||||
# -o -name "typeids.txt" \
|
||||
# -o -name "dynamic-symbols-*" \) -delete
|
||||
|
||||
# Install JIT trace mode for Emacs:
|
||||
install -Dm644 rpython/jit/tool/pypytrace-mode.el %{buildroot}%{_datadir}/emacs/site-lisp/pypytrace-mode.el
|
||||
# Install JIT trace VIM syntax file:
|
||||
install -Dm644 rpython/jit/tool/pypytrace.vim %{buildroot}%{_datadir}/vim/site/syntax/jinja.vim
|
||||
# Install RPM macros:
|
||||
install -Dm644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/rpm/macros.pypy
|
||||
|
||||
%fdupes -s %{buildroot}/%{pypyprefix}/lib-python/%{py_ver}/
|
||||
%fdupes -s %{buildroot}/%{pypyprefix}/lib_pypy
|
||||
|
||||
%check
|
||||
%if %{with tests}
|
||||
time %{buildroot}/%{pypyprefix}/pypy pytest.py pypy/ || :
|
||||
%endif
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc LICENSE README.rst
|
||||
%{_bindir}/pypy
|
||||
%{pypyprefix}/pypy
|
||||
%{_libdir}/libpypy-c.so
|
||||
|
||||
%files libs
|
||||
%defattr(-,root,root,-)
|
||||
%doc LICENSE
|
||||
%dir %{pypyprefix}
|
||||
%{pypyprefix}/lib-python/
|
||||
%{pypyprefix}/lib_pypy/
|
||||
%exclude %{pypyprefix}/lib_pypy/testcapi_long.h
|
||||
%exclude %{pypyprefix}/lib_pypy/_testcapimodule.c
|
||||
%exclude %{pypyprefix}/lib_pypy/_ctypes_test.c
|
||||
%{pypyprefix}/site-packages/
|
||||
#testsuite
|
||||
%exclude %{pypyprefix}/lib-python/%{py_ver}/ctypes/test/
|
||||
%exclude %{pypyprefix}/lib-python/%{py_ver}/distutils/tests/
|
||||
%exclude %{pypyprefix}/lib-python/%{py_ver}/json/tests/
|
||||
%exclude %{pypyprefix}/lib-python/%{py_ver}/lib-tk/test/
|
||||
%exclude %{pypyprefix}/lib-python/%{py_ver}/lib2to3/tests/
|
||||
%exclude %{pypyprefix}/lib-python/%{py_ver}/sqlite3/test/
|
||||
%exclude %{pypyprefix}/lib-python/%{py_ver}/test/
|
||||
#tk
|
||||
%exclude %{pypyprefix}/lib-python/%{py_ver}/lib-tk/
|
||||
%exclude %{pypyprefix}/lib_pypy/_tkinter/
|
||||
#idle
|
||||
%exclude %{pypyprefix}/lib-python/%{py_ver}/idlelib/
|
||||
# more required exclude related to "E: devel-file-in-non-devel-package"
|
||||
%exclude %{pypyprefix}/lib_pypy/_audioop_cffi.c
|
||||
%exclude %{pypyprefix}/lib_pypy/_curses_cffi.c
|
||||
%exclude %{pypyprefix}/lib_pypy/_gdbm_cffi.c
|
||||
%exclude %{pypyprefix}/lib_pypy/_pwdgrp_cffi.c
|
||||
%exclude %{pypyprefix}/lib_pypy/_sqlite3_cffi.c
|
||||
%exclude %{pypyprefix}/lib_pypy/_syslog_cffi.c
|
||||
%exclude %{pypyprefix}/lib_pypy/cffi/_cffi_include.h
|
||||
%exclude %{pypyprefix}/lib_pypy/cffi/parse_c_type.h
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
%{pypyprefix}/include/
|
||||
%{pypyprefix}/lib_pypy/testcapi_long.h
|
||||
%{pypyprefix}/lib_pypy/_testcapimodule.c
|
||||
%{pypyprefix}/lib_pypy/_ctypes_test.c
|
||||
%{_sysconfdir}/rpm/macros.pypy
|
||||
|
||||
%files testsuite
|
||||
%defattr(0644,root,root,0755)
|
||||
%{pypyprefix}/lib-python/%{py_ver}/ctypes/test/
|
||||
%{pypyprefix}/lib-python/%{py_ver}/distutils/tests/
|
||||
%{pypyprefix}/lib-python/%{py_ver}/json/tests/
|
||||
%{pypyprefix}/lib-python/%{py_ver}/lib-tk/test/
|
||||
%{pypyprefix}/lib-python/%{py_ver}/lib2to3/tests/
|
||||
%{pypyprefix}/lib-python/%{py_ver}/sqlite3/test/
|
||||
%{pypyprefix}/lib-python/%{py_ver}/test/
|
||||
%{pypyprefix}/lib-python/%{py_ver}/email/test/
|
||||
%{pypyprefix}/lib-python/%{py_ver}/lib2to3/fixes/__init__.py
|
||||
# last one only to avoid dangling-symlink warning related to fdupes call
|
||||
|
||||
%files idle
|
||||
%defattr(644, root, root, 755)
|
||||
%{pypyprefix}/lib-python/%{py_ver}/idlelib/
|
||||
|
||||
%files tk
|
||||
%defattr(644, root, root, 755)
|
||||
%{pypyprefix}/lib-python/%{py_ver}/lib-tk/
|
||||
%{pypyprefix}/lib_pypy/_tkinter/
|
||||
|
||||
%files emacs
|
||||
%defattr(-,root,root,-)
|
||||
%{_datadir}/emacs/site-lisp/pypytrace-mode.el*
|
||||
|
||||
%files vim
|
||||
%defattr(-,root,root,-)
|
||||
%{_datadir}/vim
|
||||
|
||||
%changelog
|
||||
@@ -0,0 +1,22 @@
|
||||
<constraints>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<!-- Actually we only need >4G on x86_64, 2G should be sufficient on 32-bit machines -->
|
||||
<size unit="G">8</size>
|
||||
</physicalmemory>
|
||||
<disk>
|
||||
<size unit="G">30</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>i586</arch>
|
||||
<arch>x86_64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<cpu>
|
||||
<flag>sse2</flag>
|
||||
</cpu>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
||||
@@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
@@ -0,0 +1 @@
|
||||
.osc
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
rpython/translator/platform/__init__.py | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
Index: pypy-2.4.0-src/rpython/translator/platform/__init__.py
|
||||
===================================================================
|
||||
--- pypy-2.4.0-src.orig/rpython/translator/platform/__init__.py
|
||||
+++ pypy-2.4.0-src/rpython/translator/platform/__init__.py
|
||||
@@ -139,6 +139,8 @@ class Platform(object):
|
||||
self._handle_error(returncode, stdout, stderr, outname)
|
||||
|
||||
def _handle_error(self, returncode, stdout, stderr, outname):
|
||||
+ for line in stdout.splitlines():
|
||||
+ log.message(line)
|
||||
if returncode != 0:
|
||||
errorfile = outname.new(ext='errors')
|
||||
errorfile.write(stderr, 'wb')
|
||||
@@ -0,0 +1,9 @@
|
||||
%__pypy /usr/bin/pypy
|
||||
%pypy_ver %(%{__pypy} -c "import sys; v=sys.version_info[:2]; print '%%d.%%d'%%v" 2>/dev/null || echo PYTHON-NOT-FOUND)
|
||||
%pypy_sitelib %(%{__pypy} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
|
||||
%pypy_sitearch %(%{__pypy} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")
|
||||
|
||||
%pypy_prefix %(%{__pypy} -c "import sys; print sys.prefix" 2>/dev/null || echo PYTHON-NOT-FOUND)
|
||||
%pypy_libdir %{pypy_prefix}/%{_lib}/pypy%{pypy_ver}
|
||||
%pypy_incdir %{pypy_prefix}/include/pypy%{pypy_ver}
|
||||
%pypy_sitedir %{pypy_libdir}/site-packages
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0db58d7a75c0d3ed81a88269e717f49bb59551dd29d5d4d25860c0e410375634
|
||||
size 3433008
|
||||
@@ -0,0 +1,17 @@
|
||||
Index: pypy-5.1.0-src/rpython/tool/ansi_print.py
|
||||
===================================================================
|
||||
--- pypy-5.1.0-src.orig/rpython/tool/ansi_print.py
|
||||
+++ pypy-5.1.0-src/rpython/tool/ansi_print.py
|
||||
@@ -67,11 +67,7 @@ class AnsiLogger(object):
|
||||
|
||||
def dot(self):
|
||||
"""Output a mandelbrot dot to the terminal."""
|
||||
- global wrote_dot
|
||||
- if not wrote_dot:
|
||||
- mandelbrot_driver.reset()
|
||||
- wrote_dot = True
|
||||
- mandelbrot_driver.dot()
|
||||
+ pass
|
||||
|
||||
def debug(self, info):
|
||||
"""For messages that are dropped. Can be monkeypatched in tests."""
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:16bab9501e942c0704abbf9cd6c4e950c6a76dc226cf1e447ea084916aef4714
|
||||
size 17349112
|
||||
@@ -0,0 +1,44 @@
|
||||
Index: pypy-2.6.1-src/lib_pypy/_curses_build.py
|
||||
===================================================================
|
||||
--- pypy-2.6.1-src.orig/lib_pypy/_curses_build.py
|
||||
+++ pypy-2.6.1-src/lib_pypy/_curses_build.py
|
||||
@@ -1,5 +1,9 @@
|
||||
from cffi import FFI
|
||||
+import sys, os
|
||||
|
||||
+incdirs = []
|
||||
+if os.path.isfile("/usr/include/ncurses/panel.h"):
|
||||
+ incdirs = ["/usr/include/ncurses/"]
|
||||
ffi = FFI()
|
||||
|
||||
ffi.set_source("_curses_cffi", """
|
||||
@@ -41,7 +45,7 @@ int _m_ispad(WINDOW *win) {
|
||||
void _m_getsyx(int *yx) {
|
||||
getsyx(yx[0], yx[1]);
|
||||
}
|
||||
-""", libraries=['ncurses', 'panel'])
|
||||
+""", libraries=['ncurses', 'panel'], include_dirs=incdirs)
|
||||
|
||||
|
||||
ffi.cdef("""
|
||||
Index: pypy-2.6.1-src/lib_pypy/_tkinter/tklib_build.py
|
||||
===================================================================
|
||||
--- pypy-2.6.1-src.orig/lib_pypy/_tkinter/tklib_build.py
|
||||
+++ pypy-2.6.1-src/lib_pypy/_tkinter/tklib_build.py
|
||||
@@ -24,10 +24,15 @@ elif sys.platform == 'darwin':
|
||||
else:
|
||||
for _ver in ['', '8.6', '8.5', '']:
|
||||
incdirs = ['/usr/include/tcl' + _ver]
|
||||
- linklibs = ['tcl' + _ver, 'tk' + _ver]
|
||||
libdirs = []
|
||||
if os.path.isdir(incdirs[0]):
|
||||
break
|
||||
+ for _ver in ['', '8.6', '8.5', '']:
|
||||
+ for arch in ['', '64', '32', '']:
|
||||
+ linklibs = ['tcl' + _ver, 'tk' + _ver]
|
||||
+ if os.path.isfile(
|
||||
+ os.path.join('/usr/lib' + arch, 'lib' + linklibs[0] + '.so')):
|
||||
+ break
|
||||
|
||||
config_ffi = FFI()
|
||||
config_ffi.cdef("""
|
||||
@@ -0,0 +1,7 @@
|
||||
# RPM macros are not meant to be modifiable:
|
||||
addFilter("non-conffile-in-etc /etc/rpm/macros.pypy")
|
||||
# ignore duplicates of pyc/pyo files
|
||||
# a) /usr/bin/pypy itself is 44MB (on 64bits), so we can't gain anything reasonable
|
||||
# b) it confuses testing
|
||||
addFilter("files-duplicate.*pyc")
|
||||
addFilter("files-duplicate.*pyo")
|
||||
Reference in New Issue
Block a user