[Python-Dev] Re: About Pyrex (original) (raw)

David Abrahams David Abrahams" <david.abrahams@rcn.com
Wed, 10 Apr 2002 01:00:09 -0500


----- Original Message ----- From: "Ralf W. Grosse-Kunstleve" <rwgk@cci.lbl.gov>

The most important feature for me is that both the compiled code and the interpreted code look nice and are extensible. The second most important feature is that all you need is Python and C++. There is no third (little) language to learn (as with SWIG).

As libraries start to take more advantage of template metaprogramming techniques, their interface starts to approach a language definition. How different, really, is the following from being an IDL?

BOOST_PYTHON_MODULE_INIT(back_reference_ext) { module("back_reference_ext") .def("copy_Y", copy_Y, return_value_policy()) .def("copy_Z", copy_Z, return_value_policy()) .def("x_instances", &X::count) .add( class_("Y") .def_init(args()) .def("value", &Y::value) .def("set", &Y::set) )

    .add(
        class_<Z,std::auto_ptr<Z> >("Z")
        .def_init(args<int>())
        .def("value", &Z::value)
        .def("set", &Z::set)
        )
    ;

}

The real advantage to using the C++ compiler as opposed to intermediate language is that we can be sure it is up to the job of dealing with any C/C++ language constructs we throw at it.

-Dave