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 | the pypy angle is to shrug and copy the implementation of CPython as closely as possible, and staying out of design decisions
<tumbleweed> hexology-: yeah, I just bootstrap with cpython these days
<tumbleweed> (for debian)
<tumbleweed> we used to have a pypy (2.7) package, and I built pypy3 with that while it existed, to save memory. But that isn't worth the effort if we don't provide pypy 2.7 to users
<tumbleweed> it still builds fast enough, and memory isn't currently a problem
<hexology-> tumbleweed: i didn't realize pypy 2.7 was no longer provided publicly
<hexology-> how long / how much memory does it take on a modern machine? perhaps an m1 macbook at the office :)
hexology- is now known as hexology
jcea has quit [Ping timeout: 246 seconds]
<tumbleweed> hexology: I mean, it isn't available publicly in Debian
<tumbleweed> it'll build comfortably on 4GiB RAM machines
<tumbleweed> that used to be a lot on the more embedded architectures, but now it's not something I worry about
<hexology> tumbleweed: good to know. got a sense of how long it takes?
<tumbleweed> the majority of the build is the test suite, these days. 2hrs total
<tumbleweed> https://buildd.debian.org/status/package.php?p=pypy3 click on Installed to see the build log, with timings
<hexology> i see
<hexology> thanks
<hexology> still a bit long in case i make a mistake :)
<hexology> that's with pypy building or cpython?
<tumbleweed> cpython2.7 then pypy3.9
<tumbleweed> (we don't carry cpython2.7 any more either, so we bootstrap it in the build)
<hexology> i see
Guest60 has joined #pypy
<Guest60> So my `gcd` test, with an execution pattern of (A|B)*, runs afoul of the unpredictable branching mentioned in https://tratt.net/laurie/blog/2012/fast_enough_vms_in_fast_enough_time.html
<Guest60> It's not a big deal for me at this point, because the JIT still manages to come in within a factor of 2 of handwritten rpython, but I was wondering if there are any known workarounds (or declarations?) that would enable me to suggest to the JIT that if it generates one code path, it might as well trace and generate bridges for sibling code paths
<Guest60> while it's at it?
Guest60 has quit [Quit: Client closed]
commandoline has quit [Quit: Bye!]
commandoline has joined #pypy
commandoline has quit [Client Quit]
commandoline has joined #pypy
<cfbolz> Guest60: two things you should do: IntBox also needs _attrs_ = []
<cfbolz> Guest60: and could use a @jit.elidable
Dejan has joined #pypy
Dejan has quit [Client Quit]
<cfbolz> Guest60: sorry, that was truncated! *fail* could use a @jit.elidable
Guest60 has joined #pypy
<Guest60> aha, thanks for the clarification. will try later today
<Guest60> I hadn't noticed `fail` in the traces and had assumed it was automatically getting elided due to `pc` being green. but I guess it's the call_i with a numeric identifier?
Guest60 has quit [Ping timeout: 246 seconds]
<cfbolz> Guest60: yep, exactly
Dejan has joined #pypy
ronan__ has joined #pypy
pjenvey_ has joined #pypy
glyph_ has joined #pypy
graingert__ has joined #pypy
glyph has quit [*.net *.split]
pjenvey has quit [*.net *.split]
graingert has quit [*.net *.split]
ronan has quit [*.net *.split]
ronan__ is now known as ronan
pjenvey_ is now known as pjenvey
graingert__ is now known as graingert
glyph_ is now known as glyph
Guest60 has joined #pypy
<Guest60> cfbolz: suggested changes made.
<Guest60> In case anyone else is interested, I've written up what I learned while playing with `gcd` at https://github.com/demaere-oiie/rptoy/blob/main/gcdthoughts.md
Guest60 has quit [Ping timeout: 246 seconds]
jcea has joined #pypy