[pypy-dev] cppyy fails to build on gcc 5 and clang

Tobias Oberstein tobias.oberstein at gmail.com
Wed Jan 18 12:27:06 EST 2017


Hi Antonio,

> The only exception are strings: getting a text attribute means to take a
> slice of the buffer. However, if the returned value is short-lived, the JIT
> might be able to optimize the slicing away.
> (note: there is no automatic conversion to unicode, although I might add an
> option for that in the future).

Are you aware of

https://github.com/alex/zero_buffer

?

This emulates Python strings using zero-copy read-only buffer views.

I think zero_buffer only supports byte strings not unicode.

But for that, maybe it would be cool to have capnpy return zero_buffers 
upon byte string attribute access, because that should finally provide 
zero copy ..

Caveat: this is a hypothesis I haven't really explored / thought through ..

--

Holy grail for me (use case being IPC) would be:

Python process 1 mmap's a file shared with Python process 2.

Python process 1 puts a string into mmap'ed file, pointer to that is 
"somehow transferred" to process 2 (eg pushing the index into the 
mmap'ed file over Unix domain socket .. a single uint64), and Python 
code in process 2 can do stuff with this string _without_ copying - 
probably via zero_buffer.

> I don't understand what you mean by dicts are there are no dictionaries in
> capnproto.

Right. Structs.

>
> Note also that capnpy is serialization only: there is no support for RPC
> stuff.

That's fine .. I don't need RPC (we have WAMP for that in 
Autobahn/Crossbar.io).

>> Note: I am purely interested in performance on PyPy ..
>>
>> In general: I thought it would be a good idea to use capnproto C++
>> generator, and then cppyy to get the best performance (on pypy). Given
>> there is "antocuni/capnpy", do you think this is a pointless endeavour?
>>
>
> The original goal of capnpy was to be as fast as possible on PyPy. However,
> if you find that C++ + cppyy is faster, I'd be very interested to know :).

Sure .. right now I cannot progress on cppyy as I can't get the basic 
example running..

Cheers,
/Tobias

> ciao,
> Anto
>



More information about the pypy-dev mailing list