cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | the secret reason for us trying to get PyPy users: to test the JIT well enough that we're somewhat confident about it
bbot2 has quit [Killed (Sigyn (Spam is off topic on freenode.))]
altendky has joined #pypy
Levex has joined #pypy
Levex has quit [Remote host closed the connection]
jcea has quit [Quit: jcea]
bairdmich has joined #pypy
bairdmich has quit [Remote host closed the connection]
Adran15 has joined #pypy
Adran15 has quit [Remote host closed the connection]
ceridwen has quit [Ping timeout: 265 seconds]
ceridwen has joined #pypy
_whitelogger has joined #pypy
lritter_ has joined #pypy
lritter has quit [Ping timeout: 248 seconds]
dddddd has quit [Remote host closed the connection]
urdh28 has joined #pypy
urdh28 has quit [Remote host closed the connection]
dindon7 has joined #pypy
altendky has quit [Quit: Connection closed for inactivity]
dindon7 has quit [Ping timeout: 268 seconds]
forgottenone has joined #pypy
BWBellairs11 has joined #pypy
BWBellairs11 has quit [Ping timeout: 256 seconds]
arigato has joined #pypy
energizer has quit [Ping timeout: 256 seconds]
energizer has joined #pypy
sulvone2 has joined #pypy
sulvone2 has quit [Remote host closed the connection]
tayfun26 has joined #pypy
Zoddo26 has joined #pypy
Zoddo26 has quit [Remote host closed the connection]
glyph has quit [Quit: End of line.]
glyph has joined #pypy
arigato has quit [Ping timeout: 256 seconds]
glyph has quit [Ping timeout: 240 seconds]
glyph has joined #pypy
arigato has joined #pypy
oberstet has joined #pypy
forgottenone has quit [Ping timeout: 272 seconds]
ThiefMaster7 has joined #pypy
moei has quit [Quit: Leaving...]
ThiefMaster7 has quit [Remote host closed the connection]
realitix has joined #pypy
<Cheery>
I consider doing bit of interval arithmetic with varying rounding modes.
<Cheery>
but I think that.. JIT in rpython is doing stuff with floating point arithmetic?
<Cheery>
so if I design the switching of rounding mode wrong, then the JIT won't be aware of it, and it'll clobber my rounding modes.
<fijal>
JIT does very little with floating point arithmetics
<fijal>
because you cannot do stuff without some bound proves and stuff
<fijal>
generally speaking, optimization is only valid if it produces (provably) the same result bit-wise
<fijal>
not mathematics-wise
<Cheery>
so if I do a wrapper that switches the rounding mode through a C call to fesetround, then do the computation like a+b and then restore the previous rounding mode, that should be okay?
<Cheery>
the JIT does not attempt to move the computation over the call to fesetround ?
<arigato>
no, the JIT assumes that something like "a+b" produces always the same result, and is movable
<arigato>
e.g. if you do 40.0 + 2.0 it will definitely replace it with 42.0 in the code
<Cheery>
that is expected
<Cheery>
except, if the constant folding goes over the fesetenv boundary
<arigato>
I'm saying that it will move the runtime addition to a random point in time, which is when the JIT runs its optimizations
<arigato>
it might also do optimizations like assume "a+b" is the same as this other "a+b" computed much earlier
<Cheery>
so we'd need fadd(a, b, rounding=+/-/~/0)
<Cheery>
that's a bit bad, because it needs to be done for every float operation.
<Cheery>
I'd like to try write a prolog variant with constraint arithmetic on real intervals.
<arigato>
likely, you need some functions in C that operates over pairs of "double", and which is completely opaque to both the JIT and the rest of RPython
<Cheery>
the rough idea is that if we construct intervals from floating points instead of using them directly, then a prolog interpreter can do constraint logic programming using floating point arithmetic
<arigato>
right
<arigato>
it's probably useful in Python too, but for that I'd imagine you'd simply use cffi to call the C functions operating on the "pair-of-double" structs
<arigato>
and then write some Python class overloading many operators
genera4 has joined #pypy
genera4 has quit [Remote host closed the connection]
forgottenone has joined #pypy
arigato has quit [Quit: Leaving]
dddddd has joined #pypy
realitix_ has joined #pypy
realitix_ is now known as realitix
realitix has quit [Ping timeout: 240 seconds]
marky1991 has joined #pypy
realitix has joined #pypy
realitix has quit [Client Quit]
Cld has joined #pypy
<Cld>
Hi
danmackay26 has joined #pypy
altendky has joined #pypy
adamg has joined #pypy
danmackay26 has quit [Read error: Connection reset by peer]
adamg has quit [K-Lined]
<simpson>
Hi.
arigato has joined #pypy
<arigato>
Cheery: note that if you write it as C functions operating on pair-of-doubles, then you can wrap *that* inside an RPython wrapper function that is marked as @jit.elidable
<arigato>
you'd get some of the same basic arithmetic optimisations, like constant-folding
arigato has quit [Client Quit]
realitix has joined #pypy
<Cheery>
maybe I'll do that.
jamesaxl has joined #pypy
jcea has joined #pypy
marky1991 has quit [Quit: Saliendo]
marky1991 has joined #pypy
marky1991 has quit [Remote host closed the connection]
marky1991 has joined #pypy
realitix has quit [Quit: realitix]
mt10 has joined #pypy
mt10 has quit [Remote host closed the connection]
marky1991 has quit [Ping timeout: 240 seconds]
adamholmberg has joined #pypy
ffernand28 has joined #pypy
ffernand28 has quit [Remote host closed the connection]
Rhy0lite has joined #pypy
marky1991 has joined #pypy
forgottenone has quit [Ping timeout: 240 seconds]
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
realitix has joined #pypy
realitix has quit [Client Quit]
realitix has joined #pypy
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
ketralnis has joined #pypy
ketralnis has quit [Remote host closed the connection]
adamholmberg has quit [Remote host closed the connection]
adamholmberg has joined #pypy
Algernop22 has joined #pypy
Algernop22 has quit [Remote host closed the connection]
realitix has quit [Quit: realitix]
realitix has joined #pypy
realitix has quit [Client Quit]
realitix has joined #pypy
realitix has quit [Client Quit]
forgottenone has joined #pypy
marky1991 has quit [Ping timeout: 240 seconds]
marky1991 has joined #pypy
tayfun26 has quit [Remote host closed the connection]