yes, you need a serializer protocol, like JSON (or protobuf or anything). You generally need to express stuff in a way C can understand and read it in python
On Fri, Aug 7, 2015 at 2:06 PM, Yicong Huang <hengha....@gmail.com> wrote: > The problem is we might need to support several kinds of collection objects: > list, dict, tuple. > In addition, we might not know what is exact type of objects stored in the > collections. A list might store int, string, double. > So it might involve a lot of work to write the python wrapper. > Do you have any good ideas? > > On Fri, Aug 7, 2015 at 7:46 PM, Maciej Fijalkowski <fij...@gmail.com> wrote: >> >> you really can't convert it to the C stuff like that. You need to do: >> >> foo = ffi.new("int[]", 13) >> foo[0] = 12 >> foo[1] = 55 >> >> etc. >> >> You can write nice python wrapper around those things too, if the data >> is too bare bone. >> >> On Fri, Aug 7, 2015 at 1:09 PM, Yicong Huang <hengha....@gmail.com> wrote: >> > Hi Maciej, >> > >> > Could you provide some details on how to use cffi buffers? (a simple >> > demo >> > code or documents) >> > I tried the below code but it did not work. >> > >> > #python list >> > x=[1,2,3,4] >> > #intend to convert to c++ char*, but failed >> > p=ffi.from_buffer(x) >> > #intend to covert back to python list, but failed >> > y=ffi.buffer(p) >> > >> > Thanks! >> > >> > -Ethan >> > >> > On Fri, Aug 7, 2015 at 6:24 PM, Maciej Fijalkowski <fij...@gmail.com> >> > wrote: >> >> >> >> you can use cffi buffers (e.g. cffi char*) that you manipulate from >> >> python using wrappers. They would behave (sort of) like python objects >> >> and the wrapper code is really not a performance penalty in most cases >> >> >> >> On Fri, Aug 7, 2015 at 12:19 PM, Yicong Huang <hengha....@gmail.com> >> >> wrote: >> >> > Hi, >> >> > >> >> > Are there any good methods to serialize Pypy object to C++ char* and >> >> > deserialize to Pypy object from C++ char*? >> >> > >> >> > Our scenario like this: >> >> > We have at least two C++ process running, and each process embeded >> >> > Pypy >> >> > to >> >> > execute some functions. >> >> > And we woule like to reuse Pypy object from one process to another >> >> > process. >> >> > For primitive objects, int/char/bool/double etc., we could use cffi >> >> > to >> >> > pass >> >> > objects. >> >> > Pypy object -> c++ process 1 -> c++ process 2 -> Pypy object >> >> > >> >> > But for complex objects, e.g. list/array/dict/tuple, are there any >> >> > methods? >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > >> >> > _______________________________________________ >> >> > pypy-dev mailing list >> >> > pypy-dev@python.org >> >> > https://mail.python.org/mailman/listinfo/pypy-dev >> >> > >> > >> > > > _______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev