<lesshaste>
"The 3.8 version of the release contains a beta-quality improvement to the JIT, that we are trying to gain confidence in as well. The improvement tries to better deal with situations where a lot of Python code from the same function is turned into machine code, without any inlining. This kind of situation can occur when Python code gets automatically generated, for example by a string templating engine. Previously, this would
<lesshaste>
prevent compilation of the function and lead to very bad compilation times regardless, leading to much worse performance in such situations than even the interpreter. In the released 3.8 version we solve this problem by chunking up the function into smaller pieces and compiling them step by step."
<lesshaste>
that looks very cool
<vstinner>
lesshaste: ther are also PyPy devs who work on HPy which is also actively developed
<lesshaste>
vstinner, yes. I was usedto more regular updates
<lesshaste>
hpy is even on github!
<vstinner>
i don't know who manages the PyPy releases. i'm not part of the PyPy development
<lesshaste>
vstinner, do you contribute code?
<vstinner>
lesshaste: only to CPython
<lesshaste>
it's an interesting time as pyston and cinder (re)appeared
<lesshaste>
vstinner, oh cool. Which parts do you work on?
<vstinner>
lesshaste: i'm not sure of the future of the cinder project. instagram released the code. that's all
<lesshaste>
vstinner, actually maybe you can answer my question. I am implementing fast levenshtein distance code in C. If I use ctypes it seems there is an overhead but I am not sure how large
<lesshaste>
I would really like it to be in nanoseconds
<lesshaste>
this seems a relevant question for you :)
<vstinner>
right now, i'm working on a hard problem: convert #define Py_TYPE(obj) (obj->ob_type) to a static inline function: static inline PyTypeObject* Py_TYPE(PyObject *obj) { return obj->ob_type; } ... i don't get a crash on Windows with a debug build, because the compiler doesn't optimize it :-(
<lesshaste>
wow"
<lesshaste>
!
<vstinner>
lesshaste: if you use PyPy, you better have to not use C, but only pure Python, no?
<lesshaste>
vstinner, well that's an option but I was really asking a general cpython question
<lesshaste>
there is cython, cffi and ctypes
<vstinner>
lesshaste: i don't think that #pypy is a good place to ask questions about CPython
<lesshaste>
I think for pypy you are supposed to use cffi
<vstinner>
lesshaste: you _can_ use cffi, but unless pure Python code is way too slow, you should "start" with Python if you use PyPy
<lesshaste>
thanks
<Hodgestar>
lesshaste: There is enough HPy already that writing an extension with one function that does "levenshtein(s1, s2)" seems very possible if you feel like playing with early alpha quality things and giving us feed back. I'm not in any way recommending to do this for anything other than fun or curiosity, because HPy is still influx, but it should work (or work with some small additions to HPy).
<lesshaste>
Hodgestar, cool thanks. Can I expect an overhead of less than a microsecond?
<Hodgestar>
lesshaste: The big picture is that on CPython there should be the same amount of overhead as with the existing / old C API and on PyPy and GraalPython there should be less.
<lesshaste>
I wanted something more exact :)
<vstinner>
lesshaste: you should run your own benchmark for that
<lesshaste>
yes
lesshaste has quit [Quit: Leaving]
fotis has joined #pypy
fotis has quit [Ping timeout: 245 seconds]
Atque has joined #pypy
jacob22 has joined #pypy
Atque has quit [Ping timeout: 276 seconds]
fotis has joined #pypy
fotis has quit [Ping timeout: 252 seconds]
fotis has joined #pypy
fotis has quit [Ping timeout: 256 seconds]
greedom has joined #pypy
fotis has joined #pypy
fotis has quit [Ping timeout: 250 seconds]
greedom has quit [Remote host closed the connection]
greedom has joined #pypy
greedom has quit [Remote host closed the connection]