aboutsummaryrefslogtreecommitdiff
blob: fa298cbd7f0e0ea50eb7d5ed4be3302ecb4af1d6 (plain)
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
=========================
What's new in PyPy2.7 5.3
=========================

.. this is a revision shortly after release-5.1
.. startrev: aa60332382a1

.. branch: techtonik/introductionrst-simplify-explanation-abo-1460879168046

.. branch: gcheader-decl

Reduce the size of generated C sources.


.. branch: remove-objspace-options

Remove a number of options from the build process that were never tested and
never set. Fix a performance bug in the method cache.

.. branch: bitstring

JIT: use bitstrings to compress the lists of read or written descrs
that we attach to EffectInfo.  Fixes a problem we had in
remove-objspace-options.

.. branch: cpyext-for-merge

Update cpyext C-API support After this branch, we are almost able to support 
upstream numpy via cpyext, so we created (yet another) fork of numpy at 
github.com/pypy/numpy with the needed changes. Among the significant changes 
to cpyext:

  - allow c-snippet tests to be run with -A so we can verify we are compatible
  - fix many edge cases exposed by fixing tests to run with -A
  - issequence() logic matches cpython
  - make PyStringObject and PyUnicodeObject field names compatible with cpython
  - add prelminary support for PyDateTime_*
  - support PyComplexObject, PyFloatObject, PyDict_Merge, PyDictProxy,
    PyMemoryView_*, _Py_HashDouble, PyFile_AsFile, PyFile_FromFile,
  - PyAnySet_CheckExact, PyUnicode_Concat
  - improve support for PyGILState_Ensure, PyGILState_Release, and thread
    primitives, also find a case where CPython will allow thread creation
    before PyEval_InitThreads is run, dissallow on PyPy 
  - create a PyObject-specific list strategy
  - rewrite slot assignment for typeobjects
  - improve tracking of PyObject to rpython object mapping
  - support tp_as_{number, sequence, mapping, buffer} slots

(makes the pypy-c bigger; this was fixed subsequently by the
share-cpyext-cpython-api branch)

.. branch: share-mapdict-methods-2

Reduce generated code for subclasses by using the same function objects in all
generated subclasses.

.. branch: share-cpyext-cpython-api

.. branch: cpyext-auto-gil

CPyExt tweak: instead of "GIL not held when a CPython C extension module
calls PyXxx", we now silently acquire/release the GIL.  Helps with
CPython C extension modules that call some PyXxx() functions without
holding the GIL (arguably, they are theorically buggy).

.. branch: cpyext-test-A

Get the cpyext tests to pass with "-A" (i.e. when tested directly with
CPython).

.. branch: oefmt

.. branch: cpyext-werror

Compile c snippets with -Werror in cpyext

.. branch: gc-del-3

Add rgc.FinalizerQueue, documented in pypy/doc/discussion/finalizer-order.rst.
It is a more flexible way to make RPython finalizers.

.. branch: unpacking-cpython-shortcut

.. branch: cleanups

.. branch: cpyext-more-slots

.. branch: use-gc-del-3

Use the new rgc.FinalizerQueue mechanism to clean up the handling of
``__del__`` methods.  Fixes notably issue #2287.  (All RPython
subclasses of W_Root need to use FinalizerQueue now.)

.. branch: ufunc-outer

Implement ufunc.outer on numpypy

.. branch: verbose-imports

Support ``pypy -v``: verbose imports.  It does not log as much as
cpython, but it should be enough to help when debugging package layout
problems.

.. branch: cpyext-macros-cast

Fix some warnings when compiling CPython C extension modules

.. branch: syntax_fix

.. branch: remove-raisingops

Remove most of the _ovf, _zer and _val operations from RPython.  Kills
quite some code internally, and allows the JIT to do better
optimizations: for example, app-level code like ``x / 2`` or ``x % 2``
can now be turned into ``x >> 1`` or ``x & 1``, even if x is possibly
negative.

.. branch: cpyext-old-buffers

Generalize cpyext old-style buffers to more than just str/buffer, add support for mmap

.. branch: numpy-includes

Move _numpypy headers into a directory so they are not picked up by upstream numpy, scipy
This allows building upstream numpy and scipy in pypy via cpyext

.. branch: traceviewer-common-merge-point-formats

Teach RPython JIT's off-line traceviewer the most common ``debug_merge_point`` formats.

.. branch: cpyext-pickle

Enable pickling of W_PyCFunctionObject by monkeypatching pickle.Pickler.dispatch
at cpyext import time

.. branch: nonmovable-list

Add a way to ask "give me a raw pointer to this list's
items".  Only for resizable lists of primitives.  Turns the GcArray
nonmovable, possibly making a copy of it first.

.. branch: cpyext-ext

Finish the work already partially merged in cpyext-for-merge. Adds support
for ByteArrayObject using the nonmovable-list, which also enables
buffer(bytearray(<some-list>))