[pypy-dev] Call rpython from outside

Aleksandr Koshkin tinysnippets at gmail.com
Tue Jul 11 12:33:28 EDT 2017


So ok, I have to specify headers containing my structs and somehow push it
to rpython toolchain, if I got you correctly.
0. Why? This structures are already described in the vm file as a bunch of
ffi.CStruct objects.
1. If I have to, how would I do that, is there any example of embedding
rpython into something? I saw an example "how to embed PyPy" but it looked
a bit too PyPy specific.
Thanks

2017-07-11 19:15 GMT+03:00 Maciej Fijalkowski <fijall at gmail.com>:

> you're missing #includes
>
> On Tue, Jul 11, 2017 at 8:00 PM, Aleksandr Koshkin
> <tinysnippets at gmail.com> wrote:
> > Thanks for your reply. I have reworked my code a bit - now it uses
> CStruct
> > instead of Struct.
> > https://github.com/magniff/rere/blob/master/rere/vm/vm_main.py#L92
> > Now it fails with a rather obscure error https://pastebin.com/MZkni9bU
> > Anyway, Maciej, see you at PyConRu 17)
> >
> > 2017-07-11 18:20 GMT+03:00 Maciej Fijalkowski <fijall at gmail.com>:
> >>
> >> Sorry wrong, lltype.GcStruct is GC managed, lltype.Struct should work.
> >>
> >> However, please use rffi.CStruct (as it's better defined) and
> >> especially rffi.CArray, since lltype.Array contains length field
> >>
> >> On Tue, Jul 11, 2017 at 6:49 PM, Maciej Fijalkowski <fijall at gmail.com>
> >> wrote:
> >> > lltype.Struct is a GC-managed struct, you don't want to have this as a
> >> > part of API (use CStruct)
> >> >
> >> > On Mon, Jul 10, 2017 at 6:15 PM, Aleksandr Koshkin
> >> > <tinysnippets at gmail.com> wrote:
> >> >> Here is a link to a function that buggs me.
> >> >> https://github.com/magniff/rere/blob/master/rere/vm/vm_main.py#L110
> >> >> I am using this headers for CFFI:
> >> >> https://github.com/magniff/rere/blob/master/rere/build/vm_headers.h
> >> >>
> >> >> 2017-07-10 17:03 GMT+03:00 Aleksandr Koshkin <tinysnippets at gmail.com
> >:
> >> >>>
> >> >>> Sup, guys.
> >> >>> I want my rpython function to be invokable from outside world
> >> >>> specifically
> >> >>> be python. I have wrapped my function with entrypoint_highlevel and
> it
> >> >>> appeared in shared object. So far so good. As a first argument this
> >> >>> function
> >> >>> takes a pointer to a C struct, and there is a problem. I have
> >> >>> precisely
> >> >>> recreated this struct in RPython as a lltypes.Struct (not
> >> >>> rffi.CStruct) and
> >> >>> annotated by this object my entrypoint signature, but it seams that
> >> >>> some
> >> >>> fields of the passed struct are messed up (shifted basically). Could
> >> >>> it be
> >> >>> because I used Struct instead of CStruct? I am using CFFI as a
> binding
> >> >>> generator.
> >> >>>
> >> >>> --
> >> >>> Kind regards, Aleksandr Koshkin.
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Kind regards, Aleksandr Koshkin.
> >> >>
> >> >> _______________________________________________
> >> >> pypy-dev mailing list
> >> >> pypy-dev at python.org
> >> >> https://mail.python.org/mailman/listinfo/pypy-dev
> >> >>
> >
> >
> >
> >
> > --
> > Kind regards, Aleksandr Koshkin.
>



-- 
Kind regards, Aleksandr Koshkin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20170711/1163eb19/attachment.html>


More information about the pypy-dev mailing list