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