<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]