Carl Friedrich Bolz-Tereick pushed to branch branch/gcref-based-type-erasure at 
PyPy / pypy


Commits:
3810a2d2 by Carl Friedrich Bolz-Tereick at 2022-05-20T20:25:45+02:00
a new branch that is supposed to contain a really minimal version of 
record-known-result

--HG--
branch : record-known-result-2

- - - - -
4e418c89 by Carl Friedrich Bolz-Tereick at 2019-09-30T14:18:49+02:00
do a bit of cleanup, as I am about to touch this file

--HG--
branch : record-known-result-2

- - - - -
cdfb98d4 by Carl Friedrich Bolz-Tereick at 2019-09-30T16:20:40+02:00
implement a new hint jit.record_known_result

can be used to express general properties of elidable functions, eg two
functions being inverses of each other, or a function being idempotent.

--HG--
branch : record-known-result-2

- - - - -
73105138 by Carl Friedrich Bolz-Tereick at 2019-10-01T13:47:25+02:00
(cfbolz porting, yodada did the actual work) implement record_exact_value by
stealing the code from the record-exact-value branch. it's another
rlib.jit.record_* hint, this one can be used to tell the JIT about a known
constant value

--HG--
branch : record-known-result-2

- - - - -
68d1c6a7 by Carl Friedrich Bolz-Tereick at 2019-10-01T15:20:25+02:00
support for integer values in record_exact_value

--HG--
branch : record-known-result-2

- - - - -
f713df86 by Carl Friedrich Bolz-Tereick at 2019-10-18T13:52:35+02:00
missing canrun=True

--HG--
branch : record-known-result-2

- - - - -
f735ca68 by Armin Rigo at 2019-10-24T13:53:14+02:00
Test and fix annotation for record_exact_value()

--HG--
branch : record-known-result-2

- - - - -
5d57e05f by Carl Friedrich Bolz-Tereick at 2020-02-07T14:40:47+01:00
add missing op

--HG--
branch : record-known-result-2

- - - - -
934facff by Carl Friedrich Bolz-Tereick at 2019-10-01T10:52:18+02:00
another record_known_result: the content of W_UnicodeObject is known to be a 
valid utf8 string

--HG--
branch : record-known-result-2

- - - - -
23d29722 by Carl Friedrich Bolz-Tereick at 2019-10-18T10:00:27+02:00
tell the jit that the result of str.(r)find is always smaller than the length
of the string

--HG--
branch : record-known-result-2

- - - - -
76a1fba8 by Carl Friedrich Bolz-Tereick at 2021-03-12T21:55:00+01:00
(in-progress) another attempt: try to slice up too huge traces into trace chunks

already working: trace chunk for the original trace, ends with
guard_always_fails (and a fake finish). next step: support attaching a chunky
bridge to that guard

--HG--
branch : open-ended-traces

- - - - -
9e92bb94 by Carl Friedrich Bolz-Tereick at 2021-03-13T15:39:38+01:00
a solution for bridges, but probably the wrong one

--HG--
branch : open-ended-traces

- - - - -
76553ee8 by Carl Friedrich Bolz-Tereick at 2021-03-13T21:32:41+01:00
slightly different approach for dealing wwith too long bridges:

- when finding a too long bridge, mark the loop token as "has extra-long
  bridges"
- when tracing a bridge from such a loop token, produce a segmented trace if
  necessary

--HG--
branch : open-ended-traces

- - - - -
58dd078f by Carl Friedrich Bolz-Tereick at 2021-03-13T21:33:20+01:00
rewrite guard_always_fails away

--HG--
branch : open-ended-traces

- - - - -
0a2dbbbd by Carl Friedrich Bolz-Tereick at 2021-03-13T21:42:31+01:00
add x86 test

--HG--
branch : open-ended-traces

- - - - -
f5736c98 by Carl Friedrich Bolz-Tereick at 2021-03-14T14:32:41+01:00
something still going wrong in the real pypy. this seems to help: there are
actually tag overflows sometimes (but still another problem left)

--HG--
branch : open-ended-traces

- - - - -
a0602f98 by Carl Friedrich Bolz-Tereick at 2021-03-14T14:38:38+01:00
factor out into its own method

--HG--
branch : open-ended-traces

- - - - -
59129cc5 by Carl Friedrich Bolz-Tereick at 2021-03-14T19:38:06+01:00
another hard to test, real-world change: sometimes we are in a bridge, but
*also* found some merge points. mark the bridge for segmented tracing in that
case anyway

--HG--
branch : open-ended-traces

- - - - -
d78131ca by Carl Friedrich Bolz-Tereick at 2021-03-14T22:20:19+01:00
move to a method

--HG--
branch : open-ended-traces

- - - - -
423fc6e9 by Carl Friedrich Bolz-Tereick at 2021-03-14T22:29:47+01:00
clarification

--HG--
branch : open-ended-traces

- - - - -
9f479f75 by Carl Friedrich Bolz-Tereick at 2021-03-15T09:26:30+01:00
fix important problem: so far the segmented traces didn't have a label, 
which
means that loops would never be closed!

--HG--
branch : open-ended-traces

- - - - -
2939cb37 by Carl Friedrich Bolz-Tereick at 2021-03-15T12:30:10+01:00
somewhat hacky fix for virtualizables

--HG--
branch : open-ended-traces

- - - - -
30d31c47 by Carl Friedrich Bolz-Tereick at 2021-03-15T20:15:31+01:00
remove test, it's now in test_tracelimit

--HG--
branch : open-ended-traces

- - - - -
d8f4c315 by Carl Friedrich Bolz-Tereick at 2021-03-17T14:48:18+01:00
rename for easier tab completion

--HG--
branch : open-ended-traces

- - - - -
68498532 by Carl Friedrich Bolz-Tereick at 2021-03-19T13:01:28+01:00
fix jit-summary parsing

--HG--
branch : open-ended-traces

- - - - -
4abd07ca by Carl Friedrich Bolz-Tereick at 2021-07-20T12:29:34+02:00
merge default

--HG--
branch : open-ended-traces

- - - - -
1af3dfab by Maciej Fijalkowski at 2021-11-30T18:53:16+02:00
Start a branch to port stuff to m1 platform

--HG--
branch : m1

- - - - -
1ccf7b65 by Maciej Fijalkowski at 2021-11-30T20:03:40+02:00
fix c99

--HG--
branch : m1

- - - - -
2c6b1051 by fijal at 2022-01-02T10:23:39+02:00
small changes to improve the tests on m1 mac

--HG--
branch : m1

- - - - -
159ed77a by fijal at 2022-01-02T10:39:36+02:00
skip for bugs in libffi

--HG--
branch : m1

- - - - -
43793cb6 by fijal at 2022-01-02T11:26:16+02:00
small fixes

--HG--
branch : m1

- - - - -
eab78751 by fijal at 2022-01-03T08:45:21+02:00
small fixes, not ready yet

--HG--
branch : m1

- - - - -
8ab78bc0 by fijal at 2022-01-03T09:50:26+02:00
first go at write protect

--HG--
branch : m1

- - - - -
a499ebca by fijal at 2022-01-03T10:18:43+02:00
skip one test and use some write_protect

--HG--
branch : m1

- - - - -
2023ff9c by fijal at 2022-01-03T10:51:12+02:00
call write_protect around the callback write here

--HG--
branch : m1

- - - - -
81a54302 by fijal at 2022-03-26T09:10:49+02:00
merge default

--HG--
branch : m1

- - - - -
aaef50e9 by Matti Picus at 2022-04-25T14:47:37+03:00
underline not needed on windows for hypot, copysign anymore

- - - - -
eb1b2835 by Carl Friedrich Bolz-Tereick at 2022-04-26T22:22:32+02:00
ouch: caching of reference constants in JitCodes was broken

(this also leads to worse code produced in the frontend, because eg the
heapcache thinks its different constants)

- - - - -
7d891067 by Maciej Fijalkowski at 2022-04-27T10:29:10+03:00
Skip those tests on OS X as the ctypes layer does not work well for variadic 
calls (and other problems)

--HG--
branch : m1

- - - - -
0083418b by Carl Friedrich Bolz-Tereick at 2022-04-29T12:39:24+02:00
make the exception transformer not introduce calls to ll_issubclass, instead
emit the correct int_between for the type check directly

it runs after inlining, so the direct call is not removed. it shows up in
profiles for some weird programs.

- - - - -
1789fa64 by Carl Friedrich Bolz-Tereick at 2022-04-29T17:59:39+02:00
remove very old comments

- - - - -
6e937871 by Maciej Fijalkowski at 2022-05-02T11:55:58+03:00
try a bit harder to run more tests on OS X

--HG--
branch : m1

- - - - -
37f01813 by Maciej Fijalkowski at 2022-05-02T12:24:43+03:00
skip a bunch more tests

--HG--
branch : m1

- - - - -
6c32161f by Maciej Fijalkowski at 2022-05-02T12:30:28+03:00
skip one more

--HG--
branch : m1

- - - - -
f17e5a60 by Carl Friedrich Bolz-Tereick at 2022-05-03T12:23:30+02:00
remove repeated live instructions

--HG--
branch : liveness-as-instruction

- - - - -
fef49dd2 by Carl Friedrich Bolz-Tereick at 2022-05-03T21:34:22+02:00
switch the way that liveness is representend in the jitcodes. so far it is done
as a dict mapping pc to a shared triple of shared strings. Those dicts take up
a lot of static space, lookups in them show up in profiles of the jit.

instead, represent liveness as an instruction. the instruction is skipped when
tracing and blackholing, but is read when producing and consuming resume data.
The instruction's argument is an offset into a single global big string, 
that
compactly encodes the sets of live registers.

intermediate checkin

--HG--
branch : liveness-as-instruction

- - - - -
e725e0f8 by Carl Friedrich Bolz-Tereick at 2022-05-05T19:33:22+02:00
fix vmprof

--HG--
branch : liveness-as-instruction

- - - - -
05357b28 by Matti Picus at 2022-05-05T20:39:23+03:00
update openssl downloads

- - - - -
89afccb8 by fijal at 2022-05-11T12:14:46+02:00
bump min OS X version

--HG--
branch : m1

- - - - -
7b9ba05a by fijal at 2022-05-11T12:14:56+02:00
use proper API for managing closures and not our own

--HG--
branch : m1

- - - - -
0452d4b7 by Matti Picus at 2022-05-05T20:39:23+03:00
update openssl downloads

--HG--
branch : m1

- - - - -
d569179d by Carl Friedrich Bolz-Tereick at 2022-05-06T10:34:24+02:00
fix codewriter tests

--HG--
branch : liveness-as-instruction

- - - - -
ac241c2c by Carl Friedrich Bolz-Tereick at 2022-05-06T12:23:29+02:00
fix tests

--HG--
branch : liveness-as-instruction

- - - - -
6bdc7cc5 by Carl Friedrich Bolz-Tereick at 2022-05-06T12:38:07+02:00
more fixes

--HG--
branch : liveness-as-instruction

- - - - -
8c5b8a45 by Carl Friedrich Bolz-Tereick at 2022-05-08T20:54:47+02:00
remove debugging attributes

--HG--
branch : liveness-as-instruction

- - - - -
a12d2f1a by Carl Friedrich Bolz-Tereick at 2022-05-08T21:50:15+02:00
two byte offsets are big enough (the pypy liveness string is 9650 bytes, so
plenty of margin to 65536)

--HG--
branch : liveness-as-instruction

- - - - -
4a586737 by Carl Friedrich Bolz-Tereick at 2022-05-09T20:28:54+02:00
add a passing test for pypy2

- - - - -
302adc8b by Carl Friedrich Bolz-Tereick at 2022-05-09T21:46:24+02:00
merge liveness-as-instructions:

instead of encoding the liveness of local registers in each jitcode as a dict
mapping pc to a (shared) instance of a class with three strings, do the
following: add a live instruction in the jitcode that that has as its argument
an offset into a string that compactly encodes liveness.

This makes the pypy binary about 7MB smaller, which is ~9% of its size: there
are about 15000 jitcodes, and 15k dicts take a lot of memory.

- - - - -
598a01f2 by Carl Friedrich Bolz-Tereick at 2022-05-10T21:28:09+02:00
issue #3732: jit calling the key function

(does not help enough, unfortunately. the profile shows the comparison being
the slow thing in my example benchmark)

- - - - -
e8bd5fbf by Ronan Lamy at 2022-05-11T03:14:34+01:00
rm obsolete code

- - - - -
f23f981b by Matti Picus at 2022-05-11T06:18:25+03:00
on releases, build OWN + JIT

- - - - -
ced9ba84 by Carl Friedrich Bolz-Tereick at 2022-05-11T21:45:19+02:00
try to revive this very old mechanism for understanding the amount of static
data

- - - - -
15478763 by fijal at 2022-05-12T19:22:40+02:00
enough fixes to call callbacks. Remove closureHeap

--HG--
branch : m1

- - - - -
31c78115 by Carl Friedrich Bolz-Tereick at 2022-05-13T19:56:10+02:00
don't use a dict for duplicate mode checking

(this is actually the only place in all of pypy that uses dicts of type
char: None, so let's just remove that)

- - - - -
db59857d by Carl Friedrich Bolz-Tereick at 2022-05-14T12:42:33+02:00
small fix: make the pattern 'string[0]' to convert a str to a char work 
also
when string is already a char (before it would convert the char to a str to a
char)

- - - - -
af5e69b4 by Carl Friedrich Bolz-Tereick at 2022-05-13T21:43:30+02:00
use dict_to_switch to get rid of this constant dict

(maybe there could be an rpython optimization for that too)

- - - - -
1505badf by Carl Friedrich Bolz-Tereick at 2022-05-13T22:04:10+02:00
remove unused field

- - - - -
5aec960c by Carl Friedrich Bolz-Tereick at 2022-05-13T22:16:13+02:00
another single-use dictionary type in cpyext flags initialization

instead of looking up function pointers in a dict, unroll the loop

- - - - -
6657cab9 by Carl Friedrich Bolz-Tereick at 2022-05-13T23:01:20+02:00
another dict type

- - - - -
6e74d271 by Carl Friedrich Bolz-Tereick at 2022-05-13T23:09:11+02:00
remove dead global

- - - - -
ec2f5411 by Carl Friedrich Bolz-Tereick at 2022-05-14T13:22:44+02:00
move dict_to_switch to objectmodel, use it in micronumpy

- - - - -
494e1594 by Carl Friedrich Bolz-Tereick at 2022-05-14T15:55:00+02:00
a few more constant dicts in the JIT

- - - - -
28727482 by Carl Friedrich Bolz-Tereick at 2022-05-14T16:24:27+02:00
some more dicts in micronumpy

- - - - -
d06eeb03 by Carl Friedrich Bolz-Tereick at 2022-05-14T19:25:56+02:00
merge default

--HG--
branch : open-ended-traces

- - - - -
0b2d30e3 by Carl Friedrich Bolz-Tereick at 2022-05-14T19:30:34+02:00
fix open-ended-traces in combination with liveness-as-instructions

--HG--
branch : open-ended-traces

- - - - -
4cd8bdde by Matti Picus at 2022-05-14T22:55:16+03:00
more micronumpy dict fixes for some NumPy C-API implementation pieces

- - - - -
72c282d1 by Matti Picus at 2022-05-14T23:11:08+03:00
test, fix PyDict_Contains (issue 3742)

- - - - -
95349b79 by Matti Picus at 2022-05-15T07:35:22+03:00
fix test

- - - - -
c4efbbfa by Carl Friedrich Bolz-Tereick at 2022-05-15T13:07:09+02:00
merge open-ended-traces to default

it has been on py3.8/3.9 for a while to see whether it was stable, then I
forgot about it. seems it's stable.

- - - - -
0f8ed1aa by Matti Picus at 2022-05-15T22:34:32+03:00
fix translation on windows

- - - - -
85872ac0 by Carl Friedrich Bolz-Tereick at 2022-05-16T09:58:56+02:00
rename file

- - - - -
9d1d641d by Carl Friedrich Bolz-Tereick at 2022-05-16T11:07:54+02:00
fix two test. behaviour with segmented traces looks good! the first one had to
be rewritten to do the recursion via the portal, not in some random interp
level function

- - - - -
5dd7dbea by fijal at 2022-05-16T11:25:05+02:00
write a test that sometimes fails

--HG--
branch : m1

- - - - -
29ecee9d by fijal at 2022-05-16T11:43:38+02:00
(fijal, arigo) fix the test

--HG--
branch : m1

- - - - -
26b7b3c0 by fijal at 2022-05-16T12:31:07+02:00
fix _rawffi to accept variadic arguments

--HG--
branch : m1

- - - - -
9c774bf0 by Carl Friedrich Bolz-Tereick at 2022-05-16T13:20:43+02:00
#3744 make list.count use the same fast paths as list.index

- - - - -
61122db1 by Carl Friedrich Bolz-Tereick at 2022-05-16T20:21:14+02:00
small improvement to int.bit_length for the jit: expose unwrapping and
rewrapping to tracing

- - - - -
90a0fd0f by Carl Friedrich Bolz-Tereick at 2022-05-16T22:24:11+02:00
preallocate the digit list in a plausible size in rbigint.frombytes

- - - - -
3e3e6bf4 by Carl Friedrich Bolz-Tereick at 2022-05-16T23:17:44+02:00
#3733: add a fast path for getrandbits(n) where n <= 31: this doesn't 
turn the
random bits into a bytes, then into an rbigint, only to discover that it fits
into a word-sized integer

- - - - -
37fc2605 by Carl Friedrich Bolz-Tereick at 2022-05-17T11:01:21+02:00
this part of sqlite3 is just wrong: converters are for converting the results
coming from the db to Python objects, not for converting the parameters. The
condition was useless, because the converters dict uses str keys, whereas the
lookup used a type as a key, always returning None (expensively)

- - - - -
6c1eec8f by fijal at 2022-05-18T12:32:22+02:00
pass the parameters forever everywhere until we get the right call to 
variadic_args

--HG--
branch : m1

- - - - -
3766bd2b by fijal at 2022-05-18T17:24:11+02:00
more progress towards variadic calls in ll2ctypes

--HG--
branch : m1

- - - - -
dbf27c1b by Carl Friedrich Bolz-Tereick at 2022-05-18T18:14:01+02:00
merge default

--HG--
branch : m1

- - - - -
a63fddf3 by Carl Friedrich Bolz-Tereick at 2022-05-19T17:28:31+02:00
very annoying, fix test that runs out of stack space (obscurely)

- - - - -
965ec925 by Carl Friedrich Bolz-Tereick at 2022-05-20T20:53:49+02:00
fix test, add one for rfind

--HG--
branch : record-known-result-2

- - - - -
03881c74 by Carl Friedrich Bolz-Tereick at 2022-05-20T22:52:24+02:00
add a test_pypy_c test that now passes

--HG--
branch : record-known-result-2

- - - - -
b1363bdf by Carl Friedrich Bolz-Tereick at 2022-05-20T23:12:28+02:00
another one

--HG--
branch : record-known-result-2

- - - - -
972e03be by Carl Friedrich Bolz-Tereick at 2022-05-20T23:22:30+02:00
small improvement, don't even record exact values that are known to be 
tracers in the constant

--HG--
branch : record-known-result-2

- - - - -
a3c8a5d8 by Carl Friedrich Bolz-Tereick at 2022-05-21T10:46:23+02:00
add a docstring

--HG--
branch : record-known-result-2

- - - - -
2a356375 by Carl Friedrich Bolz-Tereick at 2022-05-21T10:53:41+02:00
merge record-known-result-2: adds two new hints to rlib.jit

- record_exact_value(var, const) tells the JIT that the box var must contain
  the value const.

- record_known_result(result, func, *args) is a way to encode knowledge about
  the result of elidable functions. the hint means that the JIT can assume that
  if func(*args) will be called later, the outcome is 'result'

  typical usecases of this are: you can express this way that functions are
  inverses of each other, or that a function is idempotent.

Both hints need to be used very carefully, because getting them wrong can
really lead to miscompilation and crashes. They are only used in two places
right now (but much more are possible that I want to add successively later):

- record_exact_value is used in rpython to express that string.find(x) <
  len(string) by writing record_exact_value(res < len(string), True). This
  means the bounds check can be removed if the resulting position is used to
  index into the string.

- record_known_result is used when reading the ._utf8 string out of a
  W_UnicodeObject to tell the JIT that it is indeed a valid utf-8 encoding. So
  if it is re-decoded later, this turns into a no-op.

- - - - -
ab597702 by Carl Friedrich Bolz-Tereick at 2022-05-21T11:36:56+02:00
fix and unify the error paths

- - - - -
3dc61dbe by fijal at 2022-05-21T15:30:38+02:00
slightly better JIT approach here

--HG--
branch : m1

- - - - -
7e98ef14 by fijal at 2022-05-21T16:15:48+02:00
remap to RPython

--HG--
branch : m1

- - - - -
091ac577 by fijal at 2022-05-21T19:44:51+02:00
fix rpython and put nesting into write protection

--HG--
branch : m1

- - - - -
4a83f730 by fijal at 2022-05-21T21:23:26+02:00
GAH

--HG--
branch : m1

- - - - -
739e906d by fijal at 2022-05-22T08:23:16+02:00
frame info wrtiing is updating assembler

--HG--
branch : m1

- - - - -
76cf7a4b by fijal at 2022-05-23T08:14:54+02:00
I think enough to make mac asm happy

--HG--
branch : m1

- - - - -
e85d810d by fijal at 2022-05-23T08:30:28+02:00
add aarch64 on OS X support

--HG--
branch : m1

- - - - -
43fdf735 by fijal at 2022-05-23T08:36:05+02:00
fix running of the tests

--HG--
branch : m1

- - - - -
c675b478 by fijal at 2022-05-23T09:15:41+02:00
merge m1 branch - adds support for aarch64 on apple silicon

- - - - -
98803d44 by fijal at 2022-05-23T09:15:56+02:00
close to be merge branch

--HG--
branch : m1

- - - - -
4915c836 by fijal at 2022-05-23T09:16:07+02:00
merge closed branch

- - - - -
e0e6bcc6 by Carl Friedrich Bolz-Tereick at 2022-05-23T13:21:52+02:00
the helper function is elidable too, of course

- - - - -
bcf00aaf by fijal at 2022-05-23T13:46:06+02:00
remove the hacks

- - - - -
edeb5a91 by Carl Friedrich Bolz-Tereick at 2022-05-23T19:26:06+02:00
ouch: the pycode was not promoted before doing the whole lnotable decoding

- - - - -
483c4c81 by Carl Friedrich Bolz-Tereick at 2022-05-23T19:28:44+02:00
ouch (2): _search is elidable of course

- - - - -
0275a6f9 by Carl Friedrich Bolz-Tereick at 2022-05-23T20:52:56+02:00
and of course everything in life is more complicated (this function is also
used on buffers, and for those it cannot be elidable)

- - - - -
e6065a2e by fijal at 2022-05-24T07:41:52+02:00
merge

- - - - -
950d0636 by Carl Friedrich Bolz-Tereick at 2022-05-26T09:12:31+02:00
undo version change to unblock merge to py3.8

- - - - -
b5f49371 by Carl Friedrich Bolz-Tereick at 2022-05-25T11:16:39+02:00
backport b0441aa4fa0a to default: hide structseqfield.__get__

- - - - -
b71a9195 by Carl Friedrich Bolz-Tereick at 2022-05-25T11:31:15+02:00
add at least a few more structseq tests

- - - - -
bcd560f9 by Carl Friedrich Bolz-Tereick at 2022-05-25T11:37:41+02:00
some safety checking for defaults (but the feature is maybe unused in pypy?)

- - - - -
f9f67a2a by Carl Friedrich Bolz-Tereick at 2022-05-25T11:40:17+02:00
dont make an extra copy of the dict

- - - - -
c0c83fdd by Carl Friedrich Bolz-Tereick at 2022-05-25T18:11:17+02:00
compatibility, but also more efficient in _structseq:
- ignore any extra keys in the dict
- stop changing the .__dict__ away from a MapDict!

- - - - -
93c943c1 by Carl Friedrich Bolz-Tereick at 2022-05-25T18:13:28+02:00
add a test that a structseq uses a mapdict

- - - - -
caf7e302 by Carl Friedrich Bolz-Tereick at 2022-05-25T18:32:18+02:00
very carefully don't mutate instances of structseqfield

this way, immutability tracking of instance fields lets reads from the
instances be folded away, because the instances are in a class, so we have
constant references to them.

- - - - -
a7c83b43 by Carl Friedrich Bolz-Tereick at 2022-05-25T18:42:36+02:00
show immutability in repr of maps (visible via __pypy__.strategy(obj))

- - - - -
52ab5874 by Carl Friedrich Bolz-Tereick at 2022-05-25T22:39:31+02:00
make __name__ immutable too

- - - - -
18bdce13 by Carl Friedrich Bolz-Tereick at 2022-05-26T10:10:07+02:00
speed up posix.stat calls a lot

don't go via the messy applevel structdef_new, instead just construct the
object directly. Allows to keep it virtual and speed up something like islink a
lot, that just wants one field.

- - - - -
3cd5f7bc by Carl Friedrich Bolz-Tereick at 2022-05-26T13:15:47+02:00
add a test

- - - - -
5a5030f1 by Carl Friedrich Bolz-Tereick at 2022-05-26T15:21:07+02:00
fix test on pypy

--HG--
branch : gcref-based-type-erasure

- - - - -
b9a4fb48 by Carl Friedrich Bolz-Tereick at 2022-05-26T21:38:11+02:00
don't use gcrefs when using refcounting, it can't work

--HG--
branch : gcref-based-type-erasure

- - - - -
24766744 by Carl Friedrich Bolz-Tereick at 2022-05-26T21:38:27+02:00
merge default

--HG--
branch : gcref-based-type-erasure

- - - - -


30 changed files:

- extra_tests/ctypes_tests/_ctypes_test.c
- extra_tests/ctypes_tests/test_functions.py
- + extra_tests/test_structseq.py
- lib_pypy/_ctypes/function.py
- lib_pypy/_sqlite3.py
- lib_pypy/_structseq.py
- lib_pypy/pypy_tools/build_cffi_imports.py
- pypy/doc/build.rst
- pypy/interpreter/astcompiler/misc.py
- pypy/interpreter/baseobjspace.py
- pypy/interpreter/executioncontext.py
- pypy/module/_cffi_backend/ccallback.py
- pypy/module/_io/interp_io.py
- pypy/module/_random/interp_random.py
- pypy/module/_random/test/test_random.py
- pypy/module/_rawffi/alt/interp_funcptr.py
- pypy/module/_rawffi/callback.py
- pypy/module/_rawffi/interp_rawffi.py
- pypy/module/_rawffi/test/test__rawffi.py
- pypy/module/cpyext/api.py
- pypy/module/cpyext/dictobject.py
- pypy/module/cpyext/ndarrayobject.py
- pypy/module/cpyext/test/test_dictobject.py
- pypy/module/exceptions/test/test_exc.py
- pypy/module/micronumpy/casting.py
- pypy/module/micronumpy/descriptor.py
- pypy/module/posix/app_posix.py
- pypy/module/posix/interp_posix.py
- pypy/module/pypyjit/test_pypy_c/test_misc.py
- pypy/module/pypyjit/test_pypy_c/test_string.py


View it on Heptapod: 
https://foss.heptapod.net/pypy/pypy/-/compare/1ddec8ed535a90e56849d55234209cf43e872a3f...24766744efacd5b0250512aa51e566d46522dedf

-- 
View it on Heptapod: 
https://foss.heptapod.net/pypy/pypy/-/compare/1ddec8ed535a90e56849d55234209cf43e872a3f...24766744efacd5b0250512aa51e566d46522dedf
You're receiving this email because of your account on foss.heptapod.net.


_______________________________________________
pypy-commit mailing list -- pypy-commit@python.org
To unsubscribe send an email to pypy-commit-le...@python.org
https://mail.python.org/mailman3/lists/pypy-commit.python.org/
Member address: arch...@mail-archive.com

Reply via email to