digitalmars.D.announce - GtkD 3.5.0, GTK+ with D.
- Mike Wey (16/16) Jan 06 2017 GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL
- Joakim (4/20) Jan 06 2017 Hey Mike, any interest in providing a library for Android? You
- Mike Wey (4/7) Jan 07 2017 There would first need to be a GTK version for Android.
- dlang user (5/19) Jan 07 2017 When I compile the HelloWorld.d demo code on version 3.4.1 in debug mode...
- Gerald (14/19) Jan 07 2017 As you are probably aware, GtkD auto-generates code.
- dlang user (4/21) Jan 07 2017 No, the size increase isn't a concern for me at all. It was just an
- Mike Wey (9/26) Jan 07 2017 I didn't expect a jump in size of that magnitude, but i didn't check for...
GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL license. Close to the 3.4 release, but the new functionality to now also remove registered signal handlers added by Gerald Nunn warrants a new release. Signal handles can be removed with the `gobject.Signals.Signals.handlerDisconnect` function. ``` gulong id = addOnDraw(&myHandler); Signals.handlerDisconnect(this, id); ``` Users who previously removed there handlers from the internal array used by GtkD will need to update there code to the new system. Changelog: http://gtkd.org/changelog.html Download: http://gtkd.org/Downloads/sources/GtkD-3.5.0.zip -- Mike Wey
Jan 06 2017
On Friday, 6 January 2017 at 22:00:55 UTC, Mike Wey wrote:GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL license. Close to the 3.4 release, but the new functionality to now also remove registered signal handlers added by Gerald Nunn warrants a new release. Signal handles can be removed with the `gobject.Signals.Signals.handlerDisconnect` function. ``` gulong id = addOnDraw(&myHandler); Signals.handlerDisconnect(this, id); ``` Users who previously removed there handlers from the internal array used by GtkD will need to update there code to the new system. Changelog: http://gtkd.org/changelog.html Download: http://gtkd.org/Downloads/sources/GtkD-3.5.0.zipHey Mike, any interest in providing a library for Android? You can try out my ldc cross-compiler for Android: https://github.com/joakim-noah/android/releases
Jan 06 2017
On 01/07/2017 08:24 AM, Joakim wrote:Hey Mike, any interest in providing a library for Android? You can try out my ldc cross-compiler for Android: https://github.com/joakim-noah/android/releasesThere would first need to be a GTK version for Android. -- Mike Wey
Jan 07 2017
On Saturday, 7 January 2017 at 11:06:14 UTC, Mike Wey wrote:On 01/07/2017 08:24 AM, Joakim wrote:There is a repo for it: https://github.com/eugals/GTKAndroid But if Gtk doesn't really bother supporting Android and you don't want to mess with it either, that's fine.Hey Mike, any interest in providing a library for Android? You can try out my ldc cross-compiler for Android: https://github.com/joakim-noah/android/releasesThere would first need to be a GTK version for Android.
Jan 07 2017
On 01/07/2017 02:46 PM, Joakim wrote:On Saturday, 7 January 2017 at 11:06:14 UTC, Mike Wey wrote:Maybe when the android support is more mature. -- Mike WeyOn 01/07/2017 08:24 AM, Joakim wrote:There is a repo for it: https://github.com/eugals/GTKAndroid But if Gtk doesn't really bother supporting Android and you don't want to mess with it either, that's fine.Hey Mike, any interest in providing a library for Android? You can try out my ldc cross-compiler for Android: https://github.com/joakim-noah/android/releasesThere would first need to be a GTK version for Android.
Jan 07 2017
On 01/06/2017 04:00 PM, Mike Wey wrote:GtkD is a D binding and OO wrapper of Gtk+ and is released on the LGPL license. Close to the 3.4 release, but the new functionality to now also remove registered signal handlers added by Gerald Nunn warrants a new release. Signal handles can be removed with the `gobject.Signals.Signals.handlerDisconnect` function. ``` gulong id = addOnDraw(&myHandler); Signals.handlerDisconnect(this, id); ``` Users who previously removed there handlers from the internal array used by GtkD will need to update there code to the new system. Changelog: http://gtkd.org/changelog.html Download: http://gtkd.org/Downloads/sources/GtkD-3.5.0.zipWhen I compile the HelloWorld.d demo code on version 3.4.1 in debug mode the resulting file size is 26.4MB, when I compile the same code with 3.5.0 the file size is 70.7MB, that is quite a jump in size. I am using DMD V2.072.2 on 64bit Debian testing.
Jan 07 2017
On Saturday, 7 January 2017 at 16:46:38 UTC, dlang user wrote:When I compile the HelloWorld.d demo code on version 3.4.1 in debug mode the resulting file size is 26.4MB, when I compile the same code with 3.5.0 the file size is 70.7MB, that is quite a jump in size. I am using DMD V2.072.2 on 64bit Debian testing.As you are probably aware, GtkD auto-generates code. Unfortunately, adding the ability to remove event handlers generated an increase in the size of code, instead of just tracking the delegate directly it now uses a wrapper class to also track the connect flags and returned handlerId. Right now a unique wrapper class is generated for each event handler which I suspect is the primary culprit for the increase in size. If this size increase is a major concern, one option might be for me to try to use a generic wrapper class instead of a generating a unique one. This would mean converting the generated code to cast the delegate before using it. I'll let Mike chime in with his thoughts first though before looking too much into it.
Jan 07 2017
On 01/07/2017 11:32 AM, Gerald wrote:On Saturday, 7 January 2017 at 16:46:38 UTC, dlang user wrote:No, the size increase isn't a concern for me at all. It was just an observation that I made using the new version, and I wasn't sure if it was expected or not.When I compile the HelloWorld.d demo code on version 3.4.1 in debug mode the resulting file size is 26.4MB, when I compile the same code with 3.5.0 the file size is 70.7MB, that is quite a jump in size. I am using DMD V2.072.2 on 64bit Debian testing.As you are probably aware, GtkD auto-generates code. Unfortunately, adding the ability to remove event handlers generated an increase in the size of code, instead of just tracking the delegate directly it now uses a wrapper class to also track the connect flags and returned handlerId. Right now a unique wrapper class is generated for each event handler which I suspect is the primary culprit for the increase in size. If this size increase is a major concern, one option might be for me to try to use a generic wrapper class instead of a generating a unique one. This would mean converting the generated code to cast the delegate before using it. I'll let Mike chime in with his thoughts first though before looking too much into it.
Jan 07 2017
On 01/07/2017 06:32 PM, Gerald wrote:On Saturday, 7 January 2017 at 16:46:38 UTC, dlang user wrote:I didn't expect a jump in size of that magnitude, but i didn't check for it either. In release builds the size difference is smaller, and the best results are with ldc. (-O -release + strip) With ldc the HelloWorld demo is just 2.4MB (2.2MiB) a 0.2MB increase from the previous release. For the library itself this is a bit more with a 30% increase in size. -- Mike WeyWhen I compile the HelloWorld.d demo code on version 3.4.1 in debug mode the resulting file size is 26.4MB, when I compile the same code with 3.5.0 the file size is 70.7MB, that is quite a jump in size. I am using DMD V2.072.2 on 64bit Debian testing.As you are probably aware, GtkD auto-generates code. Unfortunately, adding the ability to remove event handlers generated an increase in the size of code, instead of just tracking the delegate directly it now uses a wrapper class to also track the connect flags and returned handlerId. Right now a unique wrapper class is generated for each event handler which I suspect is the primary culprit for the increase in size. If this size increase is a major concern, one option might be for me to try to use a generic wrapper class instead of a generating a unique one. This would mean converting the generated code to cast the delegate before using it. I'll let Mike chime in with his thoughts first though before looking too much into it.
Jan 07 2017