Hi Tobias,

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: <class '__main__.::'> object has no attribute 'gInterpreter' (details: "function 'cppyy_get_template' not found in library 'libcppyy_backend.so'")

okay, problem understood: the version of pypy-c that you have does not
support the Cling backend (there is no release of that yet: next pypy).

See, 'cppyy_get_template' is from the Reflex era: it no longer exists. So
in your case the cppyy module (the RPython portion inside pypy-c) is doing
Reflex-thingies while being fed Cling-thingies from the (C++) backend.

The real bug here is that I need to have a version check in cppyy. I did
plan to, but didn't get around implementing it. Sorry about that!

Btw., if it interests you: the reason that 'cppyy_get_template' disappeared
is that Cling supports proper overloading of templated and non-templated
methods (including instantiation if necessary). So a returned method may
well be templated, and thus the relevant question is "is_template". That is,
if a method exists, it may be either templated or not, but an additional
call to look for a templated method would be pointless.

As for ABI-compatibility, it's not that bad: contemporary compilers on the
same OS are designed to be compatible. Their standard libraries are a
different matter. That said, cppyy per se should not be hampered by that,
as all the offsets are provided to the module by the backend at runtime.

Best regards,
           Wim
--
wlavrij...@lbl.gov    --    +1 (510) 486 6411    --    www.lavrijsen.net
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to