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 | insert pithy quote here
lritter_ has quit [Ping timeout: 272 seconds]
lritter_ has joined #pypy
<smarr> ok, making `array_layout` quasi immutable, instead of immutable prevents the issue. Though, I don't understand why it used to work for the `array_class` field before, which isn't quasi immutable either.
<smarr> ```
<smarr> and the assignments aren't very different, there's just a "field read" in between:
<smarr> self.array_layout = self.array_class.get_layout_for_instances()
<smarr> self.array_class = self.new_system_class()
<smarr> ```
smarr has quit [Quit: Connection closed for inactivity]
kor1 has quit [Ping timeout: 268 seconds]
lritter_ has quit [Quit: Leaving]
Julian has joined #pypy
smarr has joined #pypy
ambv has joined #pypy
Julian has quit [Ping timeout: 268 seconds]
Julian has joined #pypy
fotis has joined #pypy
Julian has quit [Quit: leaving]
fotis has quit [Ping timeout: 258 seconds]
ambv has quit [Ping timeout: 272 seconds]
fotis has joined #pypy
fotis has quit [Ping timeout: 245 seconds]
ambv has joined #pypy
Julian has joined #pypy
[Arfrever] has quit [Ping timeout: 255 seconds]
fotis has joined #pypy
stkrdknmibalz has quit [Quit: WeeChat 3.0.1]
fotis has quit [Ping timeout: 252 seconds]
<bbot2> Started: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/7766 [antocuni: force build, py3.7]
<arigato> smarr: we'd need to see a complete example to be sure
<arigato> smarr: in theory, _immutable_fields_ means that the field is completely immutable from the first time a read occurs
<arigato> but it's not impossible that, say, in some situation some optimization moves the read earlier, before the write---it shouldn't occur but it's not impossible
<arigato> an example I can think of: 'universe' refers to a prebuilt instance (one created before translation) but where the field has no value, and you only assign a value at runtime
<arigato> in that case, translation itself will think it's fine to constant-fold the reads of the field, and it will read NULL if the field is not initialized yet
[Arfrever] has joined #pypy
* arigato looks at issue 3515, re.sub
<smarr> arigato: I think I figured it out. what confused me was that in the other, very similar case, the folding didn't happen. Though there the method with the access was called with different parameters. in the new case, the method in question was called always with the same global and then the read folded to `NULL`. Marking things quasi immutable, which seems more correct, fixed it.
<arigato> cool
<bbot2> Failure: http://buildbot.pypy.org/builders/pypy-c-jit-linux-x86-64/builds/7766 [antocuni: force build, py3.7]
fotis has joined #pypy
fotis has quit [Ping timeout: 258 seconds]
kor1 has joined #pypy
stkrdknmibalz has joined #pypy
Julian has quit [Ping timeout: 255 seconds]
Julian has joined #pypy
Julian has quit [Ping timeout: 258 seconds]
Julian has joined #pypy
Julian has quit [Ping timeout: 258 seconds]
fotis has joined #pypy
fotis has quit [Ping timeout: 245 seconds]
Julian has joined #pypy
Julian has quit [Ping timeout: 246 seconds]
Julian has joined #pypy
ambv has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Julian has quit [Quit: leaving]
Corbin has joined #pypy
ambv has joined #pypy
fotis has joined #pypy
fotis has quit [Ping timeout: 255 seconds]
Corbin has quit [Ping timeout: 252 seconds]
fotis has joined #pypy
fotis has quit [Ping timeout: 265 seconds]
dmalcolm__ has quit [Remote host closed the connection]
dmalcolm has joined #pypy
fotis has joined #pypy
fotis has quit [Ping timeout: 255 seconds]
fotis has joined #pypy
[Arfreve1] has joined #pypy
[Arfrever] has quit [Ping timeout: 258 seconds]
fotis has quit [Ping timeout: 252 seconds]