cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | "the modern world where network packets and compiler optimizations are effectively hostile"
<arigato>
note that 351e1a58f5ac disables _vmprof on Windows
<arigato>
if it ever worked, it needs fixing
<exarkun>
arigato: yea, sorry. I think I know how it happened so maybe it won't happen again. I tried to fix it but guess I didn't manage to.
<arigato>
exarkun: various version control systems can be a bit puzzling
<fijal>
you don't say...
<arigato>
in this case, you did a small change on top of py3.5, but called it the default branch, so we ended up with two very different "default" branch heads
<arigato>
and "hg update default" would pick the most recent one, I think, which made buildbot grab essentially py3.5 for the nighly
<arigato>
runs
<arigato>
exarkun: ah, an important hg tick: never *never* run the command "hg push -f"
<arigato>
which I think you had to do, to push two heads for the default branch
<fijal>
despite hg nagging you to do so...
<exarkun>
I did something much weirder which I've now decided not to do anymore
<exarkun>
I used git-remote-hg
<exarkun>
And then `git push` on the py3.5 branch (when I was supposed to do `git push origin py3.5:branches/py3.5` but that's weird so I forgot)
<fijal>
ah :)
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
nimaje is now known as Guest2083
nimaje has joined #pypy
jamesaxl has joined #pypy
Guest2083 has quit [Ping timeout: 260 seconds]
ronan has joined #pypy
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]
marr has quit [Ping timeout: 240 seconds]
raynold has quit [Quit: Connection closed for inactivity]
antocuni has joined #pypy
altendky has joined #pypy
Tiberium has quit [Remote host closed the connection]
Tiberium has joined #pypy
rokujyouhitoma has joined #pypy
jamesaxl has quit [Ping timeout: 248 seconds]
rokujyouhitoma has quit [Ping timeout: 246 seconds]
HTTP_____GK1wmSU has joined #pypy
HTTP_____GK1wmSU has left #pypy [#pypy]
<kenaan>
arigo cffi/cffi 50aa734652c8 /doc/source/overview.rst: Mention that ffi.dlopen(None) does not work on Python 3 on Windows.
<kenaan>
arigo cffi/cffi 281124d85f28 /doc/source/cdef.rst: Another note about performance
jamesaxl has joined #pypy
<kenaan>
arigo cffi/cffi 8a874e1b7a32 /doc/source/whatsnew.rst: Another note about performance, this time in whatsnew.rst
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 246 seconds]
realtime has joined #pypy
<mjacob>
arigato: hi! did you see my message from a few days ago about revdb and dynamic libraries still get loaded at random addresses on arch linux?
<arigato>
mjacob: hi! not really
<arigato>
"works for me" on arch linux
<mjacob>
even "setarch `uname -m` --addr-no-randomize cat /proc/self/maps" prints different addresses each run
<mjacob>
which kernel version do you use?
<arigato>
this command prints the same thing every time for me
<mjacob>
for me "uname -a" is "Linux z210 4.12.4-1-ARCH #1 SMP PREEMPT Fri Jul 28 18:54:18 UTC 2017 x86_64 GNU/Linux"
<arigato>
Linux catsnake 4.11.2-1-ARCH #1 SMP PREEMPT Mon May 22 06:53:49 CEST 2017 x86_64 GNU/Linux
cwillu has joined #pypy
<arigato>
does it work to write 0 into /proc/sys/kernel/randomize_va_space ?
<arigato>
actually, what value do you have there?
<mjacob>
arigato: it's 2 on my machine by default, but even forcing it to 0 didn't really help
* mjacob
is restarting with an updated kernel version
<arigato>
it looks like a kernel 4.12 bug, because it's not documented anywhere (that I can find) that 4.12 changes the behaviour to ignore addr-no-randomize
<arigato>
try also to see if "man personality" has anything to say about 4.12
<mjacob>
indeed downgrading to 4.11.9-1-ARCH solved the issue
<arigato>
unsure what to do then
<mjacob>
translating with --no-shared solved the problem for me
<mjacob>
since we're not using legacy layout by default i think
<arigato>
I'll mention it in the error message. Note that --no-shared prevent cpyext from working, afaik
<kenaan>
arigo reverse-debugger 136c8d30b2d7 /rpython/translator/revdb/src-revdb/revdb.c: Update the ASLR failure message
<mjacob>
arigato: my other question (which i don't think i actually sent) was whether / when you plan to merge the branch to default
<mjacob>
(e.g. to get support for it in the py3.5 branch)
<arigato>
mjacob: I don't really plan to merge it to default
<arigato>
we could first try to make a revdb-3.5 branch
<mjacob>
yes, sure
<mjacob>
any specific reason you don't want to merge it?
<mjacob>
i'd really like to see adoption of revdb of the "default method of debugging"
<mjacob>
having it in a release would help package maintainers to bring it to distributions
<arigato>
I suppose it's true, even if it doesn't make sense from my point of view
<mjacob>
if you want to clean up / refactor things before a merge i can help with that
<mjacob>
i agree that it's a cannon, but i'd say it's precise enough to just take down the fly ;)
<arigato>
:-)
<mjacob>
one thing i planned was to write a pytest plugin that automatically starts revdb when a test fails
<mjacob>
the problem is that normally you would want pytest to run with cpython and then on a rerun the pypy-revdb process would need the same packages
<mjacob>
(and there could be subtle differences as well)
rokujyouhitoma has joined #pypy
<arigato>
right, it's not that easy, but at least you can start pypy-revdb on "py.test -k xxx" manually
<arigato>
although usually you need to hack a bit at the test itself
<arigato>
e.g. to call os._exit(1) as soon as you detect something bogus
<arigato>
but maybe a nicer plugin would call __pypy__.revdb_stop()
<arigato>
in general, yes, it might be a good idea to clean up and merge into default
<arigato>
I think the cleanups involved are mostly of the kind: checking that it has no effect when not enabled
<arigato>
notably, I think that right now, even if you translate a non-revdb pypy in that branch, you get something that can tokenize ``$42``, which might be unexpected
rokujyouhitoma has quit [Ping timeout: 248 seconds]
<mjacob>
there are two things i don't like about the implementation: that the support of metavariables is in the parser and that there are approximate implementations of e.g. strtod
<arigato>
(it fails with SyntaxError if we try to compile that)
<mjacob>
yes, you can't really have a "if config..." in the generated tokenizer
<arigato>
note that it was done this way, with a new bytecode, so that it has not horrible performance when we need to evaluate repeatedly a watchpoint expression
<arigato>
in fact that's also why we have a special syntax, and not e.g. ``_(42)`` or something
<mjacob>
mhh yes, i can't really image a fast way without a special bytecode
<arigato>
ah, maybe we can inject "_42" inside the globals
<arigato>
it's more involved though
<mjacob>
well, you have "many globals"
<mjacob>
about the strtod issue: i could image being able to mark functions as "pure but sets errno" and then we can just call the c function with enough hacking of the errno variable
<mjacob>
(this would also reduce the size of the log a bit)
<arigato>
the lltype.malloc() in rpython.rlib.rdtoa.strtod() is already a problem
rokujyouhitoma has joined #pypy
rokujyouhitoma has quit [Ping timeout: 240 seconds]