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