[C++-sig] Pyste: feature requests

Nicodemus nicodemus at globalite.com.br
Sat Jul 5 18:20:30 CEST 2003


Hi Prabhu,

Prabhu Ramachandran wrote:

>>>>>>"N" == nicodemus  <nicodemus at globalite.com.br> writes:
>>>>>>            
>>>>>>
>
>    >> 1. Something like the C compiler's '-c' option.  In this case
>    >>    Pyste
>    >> should simply generate the wrapper code and none of the module
>    >> code i.e. for an invocation like so:
>    >>
>    >> pyste.py --out build --multiple -c file1.pyste
>
>    N> I don't understand exactly what you are saying. Are you
>    N> suggesting that instead of generating:
>
>    N> #include <...>
>    N> BOOST_PYTHON_MODULE(module) {
>    N>     class_<A>(...);
>    N> }
>
>    N> You want to be able to generate just this:
>    N>     class_<A>(...);
>    N> ?
>
>    N> How does that help you handle dependencies?
>
>No, what I mean is 'pyste.py --multiple -c file.pyste' should generate
>this (edited for brevity):
>
>// ------------ _file.cpp ----------
>// Includes =====
>#include <boost/python.hpp>
>// Using =======
>using namespace boost::python;
>// Declarations ====
>namespace  {
>struct test_A_Wrapper: test::A
>{
>[...]
>};
>[ other wrappers etc. ]
>// Module ===========
>void _Export_file_pyste()
>{
>     class_<...>
>}
>// ------------ _file.cpp ----------
>
>And without -c this command:
>      pyste.py --module=test --multiple file1.pyste file2.pyste
>should *only* generate:
>
>// ---------- test.cpp ----------
>// Include ==============
>#include <boost/python.hpp>
>// Exports ===============
>void _Export_file_pyste();
>
>// Module ================
>BOOST_PYTHON_MODULE(test)
>{
>    _Export_file_pyste();
>}
>// ---------- test.cpp ----------
>
>I hope this is clear.  I think you will see what I am getting at here.
>This way if file.pyste changes then only _file.cpp changes.  None of
>the other wrapper code sources will change and pyste will run faster
>since all you need to process is one of the pyste files.  Its much
>easier for users to use and incrementally wrap their libraries and
>very convenient for development.
>

I see. Unfortunately this breaks backward compability. 8/
But notice that Pyste only overwrites files if they changed, otherwise 
it leaves them intact, so as to not disturb build systems out there that 
depend on time-stamps.

I think a good option would be something like --xml-cache=<dir>, where 
Pyste would get the generated gccxml files, or write them there in case 
they are not found. The bottleneck with Pyste is always GCCXML, since it 
has to basically compile the source files. What do you think?

Regards,
Nicodemus.






More information about the Cplusplus-sig mailing list