cfbolz changed the topic of #pypy to: #pypy PyPy, the flexible snake https://pypy.org | IRC logs: https://quodlibet.duckdns.org/irc/pypy/latest.log.html#irc-end and https://libera.irclog.whitequark.org/pypy | Matti: I made a bit of progress, the tests now only segfault towards the end
slav0nic has joined #pypy
lritter has joined #pypy
<Corbin> How can I convince rerased that I don't have a nullable pointer? I have this UnionError https://bpa.st/MVSA suggesting that an erased pointer is nullable, but I don't see the issue in the relevant code: https://bpa.st/BENQ
<Corbin> I also had this class raising a similar error just a minute ago, but it looks like it's non-deterministic which block raises the error. https://bpa.st/WAVQ
<Corbin> I tested by running my REPL without translation, and it appears to work just fine. I need to write a pretty-printer for erased values, but I know the types, so it's just a matter of writing vistors and etc.
<Corbin> (And yes, I enabled tagged pointers by passing --translation-taggedpointers.)
<cfbolz> Corbin: I don't think you can double erase something
<cfbolz> Also note that tagged pointers don't work with the JIT
<cfbolz> Ah, you don't double erase
<cfbolz> I wonder whether it's the assert is not None
<Corbin> I added the `is not None` to try to figure out what's wrong. Before, it was just `return wrapPair(...)`
<Corbin> FWIW I'm trying to replicate a memory model that I was going to implement with QBE; I just want to put all my values into an untagged union, instead of the typical tagged union with subclasses. The tagged union worked, but might be slow.
<cfbolz> Corbin: "might be slow" is conjecture though
<Corbin> Oh yeah, this is 100% exploratory.
<cfbolz> Corbin: particularly since you lose the jit
<Corbin> Yeah, good point. Could I trade tagged pointers for JIT? The only value I store with tagged pointers is small ints; I could use bigints instead.
<cfbolz> that sounds not the right trade of
<cfbolz> just use boxes ;-)
<Corbin> My current exploratory question is about whether I could avoid boxing and just mix everything together. I feel a little silly for doing static type-checking and then not using it to disambiguate the memory layout.
<Corbin> But yeah, you're right; my actual question should be about speed, not memory layout.
<cfbolz> Corbin: sure, but the GC needs to distinguish too
<cfbolz> anyway, you *can* get rid of boxing in many places
<cfbolz> eg have an "IntPair"
greedom has joined #pypy
lritter has quit [Quit: Leaving]
slav0nic has quit [Ping timeout: 260 seconds]
Lightsword has quit [Quit: ZNC]
Lightsword has joined #pypy
Atque has joined #pypy
greedom has quit [Remote host closed the connection]