1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
|
======================
What's new in PyPy 5.0
======================
.. this is a revision shortly after release-4.0.1
.. startrev: 4b5c840d0da2
Fixed ``_PyLong_FromByteArray()``, which was buggy.
Fixed a crash with stacklets (or greenlets) on non-Linux machines
which showed up if you forget stacklets without resuming them.
.. branch: numpy-1.10
Fix tests to run cleanly with -A and start to fix micronumpy for upstream numpy
which is now 1.10.2
.. branch: osx-flat-namespace
Fix the cpyext tests on OSX by linking with -flat_namespace
.. branch: anntype
Refactor and improve exception analysis in the annotator.
.. branch: posita/2193-datetime-timedelta-integrals
Fix issue #2193. ``isinstance(..., int)`` => ``isinstance(..., numbers.Integral)``
to allow for alternate ``int``-like implementations (e.g., ``future.types.newint``)
.. branch: faster-rstruct
Improve the performace of struct.unpack, which now directly reads inside the
string buffer and directly casts the bytes to the appropriate type, when
allowed. Unpacking of floats and doubles is about 15 times faster now, while
for integer types it's up to ~50% faster for 64bit integers.
.. branch: wrap-specialisation
Remove unnecessary special handling of space.wrap().
.. branch: compress-numbering
Improve the memory signature of numbering instances in the JIT. This should massively
decrease the amount of memory consumed by the JIT, which is significant for most programs.
.. branch: fix-trace-too-long-heuristic
Improve the heuristic when disable trace-too-long
.. branch: fix-setslice-can-resize
Make rlist's ll_listsetslice() able to resize the target list to help
simplify objspace/std/listobject.py. Was issue #2196.
.. branch: anntype2
A somewhat random bunch of changes and fixes following up on branch 'anntype'. Highlights:
- Implement @doubledispatch decorator and use it for intersection() and difference().
- Turn isinstance into a SpaceOperation
- Create a few direct tests of the fundamental annotation invariant in test_model.py
- Remove bookkeeper attribute from DictDef and ListDef.
.. branch: cffi-static-callback
.. branch: vecopt-absvalue
- Enhancement. Removed vector fields from AbstractValue.
.. branch: memop-simplify2
Simplification. Backends implement too many loading instructions, only having a slightly different interface.
Four new operations (gc_load/gc_load_indexed, gc_store/gc_store_indexed) replace all the
commonly known loading operations
.. branch: more-rposix
Move wrappers for OS functions from `rpython/rtyper` to `rpython/rlib` and
turn them into regular RPython functions. Most RPython-compatible `os.*`
functions are now directly accessible as `rpython.rposix.*`.
.. branch: always-enable-gil
Simplify a bit the GIL handling in non-jitted code. Fixes issue #2205.
.. branch: flowspace-cleanups
Trivial cleanups in flowspace.operation : fix comment & duplicated method
.. branch: test-AF_NETLINK
Add a test for pre-existing AF_NETLINK support. Was part of issue #1942.
.. branch: small-cleanups-misc
Trivial misc cleanups: typo, whitespace, obsolete comments
.. branch: cpyext-slotdefs
.. branch: fix-missing-canraise
.. branch: whatsnew
.. branch: fix-2211
Fix the cryptic exception message when attempting to use extended slicing
in rpython. Was issue #2211.
.. branch: ec-keepalive
Optimize the case where, in a new C-created thread, we keep invoking
short-running Python callbacks. (CFFI on CPython has a hack to achieve
the same result.) This can also be seen as a bug fix: previously,
thread-local objects would be reset between two such calls.
.. branch: globals-quasiimmut
Optimize global lookups.
.. branch: cffi-static-callback-embedding
Updated to CFFI 1.5, which supports a new way to do embedding.
Deprecates http://pypy.readthedocs.org/en/latest/embedding.html.
.. branch: fix-cpython-ssl-tests-2.7
Fix SSL tests by importing cpython's patch
.. branch: remove-getfield-pure
Remove pure variants of ``getfield_gc_*`` operations from the JIT. Relevant
optimizations instead consult the field descriptor to determine the purity of
the operation. Additionally, pure ``getfield`` operations are now handled
entirely by `rpython/jit/metainterp/optimizeopt/heap.py` rather than
`rpython/jit/metainterp/optimizeopt/pure.py`, which can result in better codegen
for traces containing a large number of pure getfield operations.
.. branch: exctrans
Try to ensure that no new functions get annotated during the 'source_c' phase.
Refactor sandboxing to operate at a higher level.
.. branch: cpyext-bootstrap
.. branch: vmprof-newstack
Refactor vmprof to work cross-operating-system.
.. branch: seperate-strucmember_h
Seperate structmember.h from Python.h Also enhance creating api functions
to specify which header file they appear in (previously only pypy_decl.h)
.. branch: llimpl
Refactor register_external(), remove running_on_llinterp mechanism and
apply sandbox transform on externals at the end of annotation.
.. branch: cffi-embedding-win32
.. branch: windows-vmprof-support
vmprof should work on Windows.
.. branch: reorder-map-attributes
When creating instances and adding attributes in several different orders
depending on some condition, the JIT would create too much code. This is now
fixed.
.. branch: cpyext-gc-support-2
Improve CPython C API support, which means lxml now runs unmodified
(after removing pypy hacks, pending pull request)
.. branch: look-inside-tuple-hash
Look inside tuple hash, improving mdp benchmark
.. branch: vlen-resume
Compress resume data, saving 10-20% of memory consumed by the JIT
.. branch: issue-2248
.. branch: ndarray-setitem-filtered
Fix boolean-array indexing in micronumpy
.. branch: numpy_partition
Support ndarray.partition() as an app-level function numpy.core._partition_use,
provided as a cffi wrapper to upstream's implementation in the pypy/numpy repo
|