On 8/27/2011 11:29 AM, Mike Wey wrote:
GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL
license.

New in this Release:
* wraps GTK+ 2.22.x series api (and relative libraries: glib, cairo,
pango, etc.)
* Improved memory management.
* Implements GtkBuildable.
* Brought Gstreamer up to date with the rest of the bindings, including
64bits support.

GtkD 1.4 is now available, get it from dsource:
http://www.dsource.org/projects/gtkd/



Nice!  A few issues, though:

Small feature request: Could the GNUMakeFile include a multilib option that builds both 32-bit and 64-bit libs on a 64-bit system? I run performance-critical scientific code on 64-bit Linux, and use GtkD to plot results. If I don't need 64 bits of address space and the code uses a lot of pointers, I sometimes compile it as 32-bit to make it more cache efficient. I've been manually editing the make file to compile both 32- and 64-bit binaries, but it would be nice if I didn't need to.

Why was SvgSurface.create changed to the much more verbose and completely redundant SvgSurface.svgSurfaceCreate? Was this by accident?

Please recompile the documentation, as the docs at the dsource site are outdated.

gtkD doesn't build on D2 for one trivial reason: You forgot a super call for the Thread class you're inheriting from in glib\Spawn.d. (I tried it with Git head DMD and druntime. Maybe it works for some reason on 2.054.) Fix: Change run() to return void instead of int and pass its delegate to super. Starting on line 270 of Spawn.d:

                this(FILE* file, bool delegate (string) read )
                {
                        this.file = file;
                        this.read = read;
                        
                        version(druntime)
                        {
                                super(&run);
                        }
                }
                
                version(druntime)
                {
                        public void run()
                        {
                                string line = readLine(file);
                                while( line !is null )
                                {
                                        ++lineCount;
                                        if ( read !is null )
                                        {
                                                read(line);
                                        }
                                        line = readLine(file);
                                }
                        }
                }

Reply via email to