cfbolz changed the topic of #pypy to: #pypy PyPy, the flexible snake | IRC logs: and | the pypy angle is to shrug and copy the implementation of CPython as closely as possible, and staying out of design decisions
derpydoo has joined #pypy
jcea has quit [Ping timeout: 258 seconds]
derpydoo has quit [Ping timeout: 245 seconds]
derpydoo has joined #pypy
mattip has quit [Ping timeout: 264 seconds]
mattip has joined #pypy
<cfbolz> cool, the pypy binary got 800KB smaller :-)
jcea has joined #pypy
<arigato> gcref-based-type-erasure? great, finally :-)
<cfbolz> arigato: yep, it's pretty cool :-)
<cfbolz> before, we had an rpython type "list of strings" and one "list of instances"
<cfbolz> now it's all the same
<cfbolz> and similarly for dicts (for values in general, and for keys that are identity-based too)
<arigato> do all tests now require a non-'ref' gc?
<cfbolz> arigato: no, just the very specific ones that test the type erasure
<cfbolz> arigato: the llinterp tests are anyway fine, but if you want to generate C code with refcounting you can't do the gcref type erasure
<cfbolz> I am not really sure keeping refcounting around is actually that sensible in general
<arigato> agreed, but what occurs now? it falls back to the old more limited erasure in case of 'ref'?
<cfbolz> arigato: yes, exactly
<arigato> cool, but also meh, more kinda-pointless logic
<cfbolz> yes, maybe it's time to kill refcounting
<cfbolz> arigato: nowadays it would also make sense to make all the GcStructs have a typeptr, even those of str and list etc. it doesn't cost extra space for incminimark and it would remove a bunch of strange cases a bit everywhere. plus it would make all pointers inspectable in the same way
<cfbolz> I was saying nonsense above, of course. for dict *keys*, only instances can be type erased, and that was always the case. all other gcrefs either have specific equality and hashing, like strings and tuples, or they are unhashable, like lists. so nothing changes for keys. but for values the gcref-based type erasure still applies, and helps quite a bit to reduce the number of dict variants
derpydoo has quit [Ping timeout: 250 seconds]
otisolsen70 has joined #pypy
Techcable has quit [Remote host closed the connection]
Techcable has joined #pypy
otisolsen70 has quit [Quit: Leaving]
pjenvey has quit [Server closed connection]
pjenvey has joined #pypy
jean-paul[m] has joined #pypy
marmoute has joined #pypy
derpydoo has joined #pypy
Lightsword has quit [Server closed connection]
Lightsword has joined #pypy