[C++-sig] Pyste-generated extentsion Aborts Python

Nicodemus nicodemus at globalite.com.br
Fri Jul 4 02:26:17 CEST 2003


Hi Jim!

Jim Wilson wrote:

> Nicodemus,
>
> I got the CVS, and it seemed to fix the "overloaded bar(char**)"
> problem I mentioned before.  My goal was to wrap (at least a portion
> of) the Fast Light ToolKit (FLTK: http://www.fltk.org ).  Others are
> attempting this with SWIG ( http://pyfltk.sourceforge.net/ ), but I
> was hoping Pyste would simplify the job.
>
> Alas, I'm not sure I can simplify the files I'm wrapping, but my wrapper
> is quite lightweight.  Since I didn't want to figure out all those 
> "needs-
> a-policy" complaints, I wrote a small header which exposed only the 
> routines
> I needed from FLTK Version 1.1.4.


This does not seems like a good idea... the policies are *really* 
needed. If you want to expose only a few functions, then you can always 
exclude() the ones that you don't want.

>   I'm not sure you want this, but here it is:
>
> fltk.h:
>
>     class Fl {    // A class masquerading as a namespace,
>       public:    //   Fl is essentially a buch of static methods
>         static int run();
>     };
>     #include <.../Fl_Window.H>    // This will be instanciated
>
> fltk.pyste:
>
>     Class("Fl", "fltk.h")
>     w = Class("Fl_Window", "fltk.h")
>     exclude(w.icon)        # Easier to exclude than use the
>     exclude(w.child)    # trick I did with class Fl, since
>     exclude(w.current)    # I may want to *do* something with
>     exclude(w.array)    # my Fl_Window!
>     exclude(w.resizable)
>     exclude(w._ddfdesign_kludge)
>
> (In fltk.h, <...> was the path prefix my the directory holding 
> Fl_Window.h.)
>
> I pysted, beat bjam into submission, and got a clean compile and 
> link.  Now
> came python:
>
>     >>>from fltk import Fl, Fl_Window
>     >>>w = Fl_Window(0,0, 600,400)
>     >>>w.show()
>     >>>Fl.run()
>     Abort
>
> The "w = ..." line, creates a window in the upper left corner (0,0) of 
> size
> 600x400 pixels.  The next draws it on the screen, the last one fires 
> up the
> event loop.  The window is momentarily displayed before it immediately
> vanishes and "Abort" appears (followed by the bash prompt).


Hmm... could you post the code generated?

> The running python is half as big as the SWIG version though ;D.


Indeed? I always thought that SWIG would need less memory (not 
necessarily faster), since it is autogenerated C... congratulations to 
Boost.Python then. 8)

Regards,
Nicodemus.





More information about the Cplusplus-sig mailing list