These are chat archives for dropbox/pyston

20th
Nov 2015
Kevin Modzelewski
@kmod
Nov 20 2015 00:04
oh yeah, the threading is a good point
Sun
@Daetalus
Nov 20 2015 00:39
and then I ported CPython's integer freelist, and it is 3x faster than the GC version :)
You mean use refcounting with freelist and jemalloc faster than use mark-sweep with jemalloc?
Kevin Modzelewski
@kmod
Nov 20 2015 00:44
well, it's more like
refcounting + jemalloc is slower than mark-sweep with our allocator
but refcounting + freelist (doesn't hit jemalloc) is faster than mark-sweep + our allocator
the allocator for our GC is somewhat tuned for the GC itself, but it might be usable as an allocator in the refcounting system
so one thing I want to try is refcounting + our allocator
Sun
@Daetalus
Nov 20 2015 00:57
I see. Thanks!
Rudi Chen
@rudi-c
Nov 20 2015 09:23
@kmod Yes you're right, the error was already set prior to calling the function. I'm going to change the assert to ASSERT(!PyErr_Occurred() || already_had_error, "%p", chosen_cf->code); instead.
Wait actually that's only in some of the cases.
Rudi Chen
@rudi-c
Nov 20 2015 10:19
Is the talk going on Youtube?
Kevin Modzelewski
@kmod
Nov 20 2015 20:58
oh, I wasn't planning on uploading it (trying to dogfood our own video hosting) but I can do that if it's nicer
also, I would have guessed that already_had_error would be a bug -- usually when we run into this, we have to add assert(!PyErr_Occurred()) all over the place until we find the one that let an exception propagate unchecked