cfbolz changed the topic of #pypy to: PyPy, the flexible snake (IRC logs: https://botbot.me/freenode/pypy/ ) | use cffi for calling C | the secret reason for us trying to get PyPy users: to test the JIT well enough that we're somewhat confident about it
marr has quit [Ping timeout: 260 seconds]
jaffachief has joined #pypy
oberstet has quit [Ping timeout: 248 seconds]
<kenaan>
tdziopa py3.6 cd4db20fa471 /pypy/interpreter/pyparser/parsestring.py: Fix default values for first_escape_error_char This PR fixes the RPython annotation errors for PyString_DecodeEscape.
<kenaan>
rlamy py3.6 0bfc5e908da5 /pypy/: fix test and a typo
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
jaffachief has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<kenaan>
arigo default bae7d61d060c /pypy/objspace/std/: Fix a case where the list strategy leaks to the user
* arigato
reviews a88536a in light of #2805
<arigato>
indeed, it's not safe
<antocuni>
I suppose it's my fault
<antocuni>
what's the problem?
<antocuni>
ok, I try to guess what's happening, based on my poor knowledge of rawrefcount; rawrefcount called dealloc_callback whenever we do a minor collection
<antocuni>
s/called/calls
<antocuni>
if it happens the following, we get the AssertionError: 1) we free a rrc object; 2) minor collection, which calls dealloc_callback, and appends PyObjectDeallocAction to the list; 3) we free another rrc object; 4) another minor collection
<antocuni>
if we don't have the chance to run the AsyncAction at some time between 2 and 4, we try to fire PyObjectDeallocAction twice
<antocuni>
if my theory is correct, it should be enough to check whether PyObjectDeallocAction was already fire()d, before firing it again
<arigato>
it would likely break in obscure ways without rawrefcount
<arigato>
the problem was that action.perform() might call fire() again on the same action
<antocuni>
arigato: so the problem was if we call fire() while we are in the middle of perform()?
<arigato>
yes
<arigato>
so we need to read action._next before
<antocuni>
yes, obscure but obvious once you think about it
<antocuni>
shouldn't we add a test for it?
<arigato>
maybe
<arigato>
can you add a test? thanks :-)
* antocuni
regrets having used "we" :)
<antocuni>
sure, I'm doing it
<arigato>
thanks
marr has quit [Ping timeout: 276 seconds]
<mattip>
that was quick thanks all
lritter has joined #pypy
<antocuni>
arigato: I'm not sure that your fix is what you intended
<antocuni>
what should happen if we try to fire PyObjecDealloc while we are doing a perform()? Should we just ignore it, or append it to the end of the list? (and it will be performed at the next run)
<arigato>
add it at the end of the list
<antocuni>
ok, then it's what it does :)
<arigato>
fire() means "please run perform() soon"
<antocuni>
ok, then probably I should also check that if we call fire() when the action is already in the list but not perform()ed yet, it should do nothing
<arigato>
ideally
<arigato>
of course, make sure that the test fails before 321aff47be74
<antocuni>
yes, that's what I'm doing
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<kenaan>
antocuni default 05d4bb2624e8 /pypy/interpreter/test/test_executioncontext.py: add a test for 321aff47be74
* arigato
still fighting windows to try to build _cffi_ssl and failing
<arigato>
"Unable to find vcvarsall.bat" for the hundredth time, I think I'll give up for now
<mattip>
arigato: it is tricky, since you cannot use setuptools. Perhaps just manually run vcvarsall.bat?
<mattip>
I tried to document what I did on the windows build page, I had to mess with environment variables
<mattip>
you cannot use setuptools since you cannot use pip to do it, since pip requires ssl
<arigato>
it's a different issue, I have setuptools installed in my pypy3 already
<mattip>
and you have the correct vc compiler?
<arigato>
seems not?
<arigato>
what is pypy3 doing in distutils's msvc9compiler.py??
<arigato>
I have 14.0 installed
<mattip>
pypy3 is trying to bootstrap compiling _cffi_ssl without setuptools
<mattip>
I tried to make it backward compatible, patches welcome
<arigato>
I have not the slightest clue what is going on
<mattip>
I added a breakpoint just after running vcvarsall.bat to see what stderr, stdout were, it turns out the errors are printed to stdout if I remember correctly
raynold has quit [Quit: Connection closed for inactivity]
<mattip>
and silently ignored
<mattip>
so even though vcvarsall runs, it does not supply the needed PATH, INCLUDE, LIBS environment variables
<mattip>
but, maybe you are on a new error path
<arigato>
running build_cffi_imports.py (after hacking it to ignore the fact that _ssl already appears built) goes farther, and I have no clue why
<arigato>
LINK : fatal error LNK1104: cannot open file '.\_pypy_openssl.pypy3-510-win32.pyd'
<mattip>
it is holding it open, so it cannot rewrite it?
<arigato>
there is no such file around in my pypy checkout
<arigato>
I'm trying pdb.set_trace() but that seems to just hang the process---maybe it has got stdout redirected
dmalcolm has joined #pypy
<arigato>
as usual I go into a rabbit hole of nested problems
<arigato>
ImportError: bad magic number in 'datetime': b'\n\xf3\r\n'
<mattip>
find . -name '*.pyc' rm '{}' ';'
<arigato>
no, that didn't help
<arigato>
but I'm through now, success
<arigato>
I don't know why, but every time it's the same 30-min fighting obscure problems on Windows, and every time different
<arigato>
now: LINK : fatal error LNK1181: cannot open input file 'python35.lib'
<mattip>
we need a windows sprint - everyone bring a windows machine and try to build a cffi module
<Rotonen>
i'd be up for that
<arigato>
I give up
<Rotonen>
or we host a windows server and everyone RDPs to it
<mattip>
no, the point is that every environment is slightly different
<Rotonen>
k
<mattip>
so only one works out of the box, the one on the build slave in my room
<arigato>
uh, no clue why. it works out of the box in another repo
<arigato>
fine, I'll use that one
mcyprian has quit [Ping timeout: 264 seconds]
lazka has quit [Quit: Leaving]
illume has joined #pypy
* arigato
writes enum_certificates() and enum_crls()
<mattip>
something like 2 hours to set up a dev environment
* mattip
off
mcyprian has joined #pypy
asmeurer has joined #pypy
mcyprian has left #pypy [#pypy]
AndrewBC_ has joined #pypy
marr has joined #pypy
AndrewBC has quit [Ping timeout: 265 seconds]
<kenaan>
arigo py3.5 b129a34163ac /lib_pypy/: Implement the win32 function ssl.enum_certificates()
<kenaan>
arigo py3.5 2a637a86bcba /lib_pypy/_cffi_ssl/: Implement ssl.enum_crls() for win32
energizer has joined #pypy
asmeurer has quit [Quit: asmeurer]
asmeurer_ has joined #pypy
hotpot33 has joined #pypy
lritter has quit [Ping timeout: 276 seconds]
illume has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
bizulk has joined #pypy
<bizulk>
Can someone tell me if it is possible to tell cdef that data is 4 bytes aligned ?
<bizulk>
I'm getting troubles with a struct that only have short :"ffi.error: struct cache_site: wrong total alignment (cdef says 2, but C compiler says 4). fix it or use "...;" in the cdef for struct cache_site to make it flexible"
hotpot33 has quit [Ping timeout: 256 seconds]
hotpot33 has joined #pypy
<bizulk>
OK, I finally add a int32_t reserverd in the concerned struct to force cdef to align 4
<bizulk>
when printing a struct member that is a char array I am getting : <cdata 'char[32]' 0x7f31019b4054>
<bizulk>
how to I print the content plz ?
tbodt has joined #pypy
<bizulk>
git it !!! ffi.string()
bizulk has quit [Quit: Page closed]
jaffachief has joined #pypy
antocuni has quit [Ping timeout: 256 seconds]
jaffachief has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
devwatchdog has joined #pypy
devwatchdog has quit [Max SendQ exceeded]
devwatchdog has joined #pypy
hotpot33 has quit [Remote host closed the connection]
devwatchdog has quit [Max SendQ exceeded]
devwatchdog has joined #pypy
marky1991 has joined #pypy
devwatchdog has quit [Max SendQ exceeded]
devwatchdog has joined #pypy
tbodt has joined #pypy
tito_ is now known as tito
tito has quit [Changing host]
tito has joined #pypy
nimaje has quit [Remote host closed the connection]
nimaje has joined #pypy
tbodt has quit [Quit: My Mac has gone to sleep. ZZZzzz…]