I'm happy to upstream (though I've taken some more extreme decisions in some areas in regards to prior compatibility). Unfortunately, I don't believe there's an active maintainer for the pycapnp github repo so it's currently a bit futile. :(
On Friday, November 29, 2019 at 12:48:46 AM UTC-8, pepijn de vos wrote: > > Thanks for the link. > While I'm not actually interested in RPC or async at all, this fork > actually works. > Any chance this will be upstreamed? > > Pepijn > > On Fri, Nov 29, 2019 at 7:27 AM Jacob Alexander <[email protected] > <javascript:>> wrote: > >> While I haven't gotten all the tests working yet (there are some issues >> with some of the timer functions on Windows it seems), I spent a bunch of >> time getting asyncio working with pycapnp (it was the most reasonable way >> to get native Python TLS support working). >> I've fixed a lot of bugs, removed a lot of the deprecated C++ functions >> (the warnings were hiding a lot of serious issues). >> >> https://github.com/haata/pycapnp-async >> >> I'll be using this for a cross-platform tool I've been working so I'll at >> least be maintaining it for basic client functionality (server stuff works >> as well, minus a few Windows tests). My main use case is a TLS connection >> between a Rust server and Python clients (this is currently working using >> tokio-rustls). >> >> It does require Python 3.7 and higher (3.8 also works). I discovered some >> bugs in asyncio that make porting difficult to 3.5 and 3.6 (though it's >> likely possible with a bunch of effort). >> >> -HaaTa >> >> On Thursday, November 28, 2019 at 6:24:08 AM UTC-8, Pepijn de Vos wrote: >>> >>> Actually, it appears that the library contains a pointer, whereas the >>> Python lib tries to use a reference. >>> I'm not sure where this difference came from, but it's clearly incorrect. >>> >>> (env) [apicula]$ nm -gD /usr/lib/libkj-async-0.7.0.so | grep >>> TransformPromiseNodeBase >>> 000000000002b1e0 T >>> _ZN2kj1_24TransformPromiseNodeBase7onReadyEPNS0_5EventE >>> (env) [apicula]$ c++filt >>> _ZN2kj1_24TransformPromiseNodeBase7onReadyEPNS0_5EventE >>> kj::_::TransformPromiseNodeBase::onReady(kj::_::Event*) >>> (env) [apicula]$ c++filt >>> _ZN2kj1_24TransformPromiseNodeBase7onReadyERNS0_5EventE >>> kj::_::TransformPromiseNodeBase::onReady(kj::_::Event&) >>> >>> >>> >>> On Thursday, 28 November 2019 15:17:40 UTC+1, Pepijn de Vos wrote: >>>> >>>> Hey all, >>>> >>>> I'm exploring serialization libraries, so I installed the Python lib >>>> and got the following error >>>> >>>> ImportError: [...]capnp.cpython-38-x86_64-linux-gnu.so: undefined >>>> symbol: _ZN2kj1_24TransformPromiseNodeBase7onReadyERNS0_5EventE >>>> >>>> Which is definitely a thing, and has been for two years: >>>> https://github.com/capnproto/capnproto/blame/master/c%2B%2B/src/kj/async-inl.h#L392 >>>> >>>> It also seems to be linked correctly >>>> >>>> $ ldd [...]capnp.cpython-38-x86_64-linux-gnu.so >>>> linux-vdso.so.1 (0x00007ffe675cf000) >>>> libcapnpc-0.7.0.so => /usr/lib/libcapnpc-0.7.0.so ( >>>> 0x00007f7dc5173000) >>>> libcapnp-rpc-0.7.0.so => /usr/lib/libcapnp-rpc-0.7.0.so ( >>>> 0x00007f7dc5090000) >>>> libcapnp-0.7.0.so => /usr/lib/libcapnp-0.7.0.so (0x00007f7dc4ff4000 >>>> ) >>>> libkj-async-0.7.0.so => /usr/lib/libkj-async-0.7.0.so ( >>>> 0x00007f7dc4f60000) >>>> libkj-0.7.0.so => /usr/lib/libkj-0.7.0.so (0x00007f7dc4eda000) >>>> libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f7dc4cf0000) >>>> libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f7dc4cd4000) >>>> libc.so.6 => /usr/lib/libc.so.6 (0x00007f7dc4b0d000) >>>> libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f7dc4aeb000) >>>> libm.so.6 => /usr/lib/libm.so.6 (0x00007f7dc49a5000) >>>> /usr/lib64/ld-linux-x86-64.so.2 (0x00007f7dc540e000) >>>> >>>> >>>> So the system library version is 0.7, and the latest Python library is >>>> 0.6.4, not sure if the versions are just mismatched somehow. >>>> I tried installing from git with the same result, is the Python library >>>> just outdated? >>>> Or maybe the Arch package is just broken, because it doesn't contain >>>> the required symbol? >>>> >>>> Cheers, >>>> Pepijn >>>> >>> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "Cap'n Proto" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/capnproto/1x8_5_RC9wU/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/capnproto/f8decb16-f304-4d80-9e2c-7df4946df458%40googlegroups.com >> >> <https://groups.google.com/d/msgid/capnproto/f8decb16-f304-4d80-9e2c-7df4946df458%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "Cap'n Proto" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/812fa7a9-0bf3-4eb4-b483-e20f8ebb33c0%40googlegroups.com.
