cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://quodlibet.duckdns.org/irc/pypy/latest.log.html#irc-end ) | use cffi for calling C | if a pep adds a mere 25-30 [C-API] functions or so, it's a drop in the ocean (cough) - Armin
CrazyPython has quit [Read error: Connection reset by peer]
<kenaan>
mattip py3.6 399112d66ce0 /pypy/doc/: merge default into branch
tsaka__ has quit [Ping timeout: 240 seconds]
forgottenone has joined #pypy
lritter has joined #pypy
forgottenone has quit [Read error: Connection reset by peer]
nimaje has quit [Ping timeout: 245 seconds]
nimaje has joined #pypy
tsaka__ has joined #pypy
rjarry_ has joined #pypy
rjarry has quit [Ping timeout: 265 seconds]
rjarry_ has quit [Read error: Connection reset by peer]
rjarry has joined #pypy
hsaliak has quit [Ping timeout: 276 seconds]
hsaliak has joined #pypy
jcea has joined #pypy
hsaliak has quit [Ping timeout: 240 seconds]
hsaliak has joined #pypy
tsaka__ has quit [Ping timeout: 240 seconds]
tsaka__ has joined #pypy
dddddd has joined #pypy
<antocuni>
is there a way to check if the result of lltype.malloc(..., flavor='raw') has been correctly freed, inside a test?
forgottenone has joined #pypy
forgottenone has quit [Ping timeout: 240 seconds]
forgottenone has joined #pypy
<arigato>
Antocuni: yes, it should even be on by default
<antocuni>
what do you mean?
<arigato>
There is a track... argument to malloc that defaults to True
<antocuni>
ah I see, there is a leakfinder
<arigato>
It tracks the malloc and the frees and reports at the end of the test run
<arigato>
Yes
<antocuni>
is there a more direct way? Like "assert has_been_freed(ptr)?"
<arigato>
Yes, try to access something from the struct or array, and put it in "with raises RuntimeError
<antocuni>
ok, thanks
<antocuni>
unrelated: any preference on how to call "the things to run when we close a handle"? Finalizer, destructor, any other name?
<antocuni>
(I'm using finalizer right now)
jvesely has joined #pypy
<arigato>
It's more like the exit in a with statement
<antocuni>
"HandleExiter" is very ugly though :)
<arigato>
However that is called....
<antocuni>
quickly reading PEP 343, it doesn't seem to have a name. They always say "the __exit__ method"
<antocuni>
HandleReleaser?
<arigato>
Yes why not
* antocuni
looks up the thesaurus
<antocuni>
apparently the thesaurus says that "leak" is a synonymous of "release". Let's call it HandleLeaker
<antocuni>
HandleSurrenderer
<tos9>
throw that thesaurus away :)
<antocuni>
HandleDismantler
<antocuni>
HandleSabotager
<antocuni>
we should invent thesaurus-driven programming, it would be funny
<antocuni>
ok, I think I'll call the class "HandleReleaseCallback" and the method "attach_release_callback", it sounds the clearest
<antocuni>
btw, it seems I get a segfault whenever I raise a exception (either interp-level or app-level) from HPyBytes_AsString. From the other functions raising exceptions seems to work fine
<antocuni>
I wonder whether it has something to do with the fact that the return type if const char* and maybe ll2ctypes is not 100% happy about that?
<antocuni>
also: it seems that if I declare a function to return an "int", I need to "return rffi.cast(rffi.INT_real, x)", else ll2ctypes complain about the result type. Is there a way to solve this in a general way?
<antocuni>
it's a bit weird/ugly to have to do "return rffi.cast(rffi.INT_real, 0)"
forgottenone has quit [Ping timeout: 276 seconds]
forgottenone has joined #pypy
created has joined #pypy
<created>
I see pypy3 doesn't have vmprof?
forgottenone has quit [Ping timeout: 240 seconds]
<ronan>
created: you have to install it, same as on pypy2
<created>
Oh
<created>
But no, it doesn't help
<created>
ModuleNotFoundError: No module named '_vmprof'
<created>
After installing it via pip
<antocuni>
created: what happens if you try to "import _vmprof" manually at the prompt?
<created>
Same
<antocuni>
where did you get your pypy from?
<created>
Windows binary from official site
<antocuni>
ah, it might be that vmprof doesn't work on windowd on pypy3
<antocuni>
"might" in the sense that I have no idea :)
<antocuni>
on linux it works
<created>
Hmm
<created>
Maybe
<created>
I suppose I could always use cProfile
<created>
Though I understand it's not too accurate with pypy
<antocuni>
ah no
<created>
Especially when it claims a function has been executing for many orders of magnitudes longer than the program was alive
<antocuni>
looking at the source, it seems that we don't even try to compile vmprof on windows on pypy (either pypy2 or pypy3)
<created>
Oh
<antocuni>
although vmprof IS supported on cpython+windows
<created>
Is it using dark linux magic, or something?
<antocuni>
so the machinery probably works. It's likely that we don't support it simply because nobody ever tried
<antocuni>
generally speaking, we lack windows developers so our windows support is lagging behind linux and other OSes
<antocuni>
created: vmprof uses a bit of dark magic, but since it works on cpython+windows, there is no reason why it couldn't work on pypy+windows
<antocuni>
it's "just" a matter of trying to enable it and fixing all the shallow issues which pops up