Hello Guilers, The sixth release candidate of the upcoming GNU G-Golf 0.8.0 release is now available for testing: * Tarball and a GPG detached signature [*]: http://ftp.gnu.org/gnu/g-golf/g-golf-0.8.0-rc6.tar.gz http://ftp.gnu.org/gnu/g-golf/g-golf-0.8.0-rc6.tar.gz.sig * Install Dependencies and complete installation instructions are given in the distributed INSTALL file, or here: https://www.gnu.org/software/g-golf/install.html * Noteworthy changes in 0.8.0-rc6 Here is a summary of the noteworthy changes in this release, also available in NEWS file and on the G-Golf website. ** New interfaces *** New (g-golf support color) module A color management module has been added. Documented under the Support Canyon -> Color Hollow section. *** Adding derived class custom layout-manager support Derived class now support a #:layout-manager define-class option. *** nil Users need a way to inform g-golf to not process some callback ffi 'out argument(s) (which can't be by using #f, as this mught be a valid ffi 'out arg value). To solve this, g-golf now defines a global nil variable (defined as 'nil). See the newly added layout manager demo for a concrete example of such a need and usage. ** Examples *** Gtk-4 - Layout Manager The upstream gtk4-demo layout-manager (transition) example has been ported to g-golf. *** Adwaita Demo The following Adwaita Demo pages have been added: AdwDemoPageButtons AdwDemoPageToasts AdwDemoPageBanners AdwDemoPageAbout ** Bug fixing *** instances must hold a reference to the instance (not the instance). *** next-vfunc Fixed to retreive the vfunc pointer offset from one of the class-direct-supers, recursively if needed, then grab and unlesss NULL, call the immediate direct super vfunc. *** g-golf-vfunc-closure Enhanced to accept and (use if passed) an optional argument, vfunc-long-name, as vfunc callback instances must be cached against their long name, i.e. gdk-paintable-get-flags, gdk-paintable-snapshot ... (not get-flags, snapshot ...). *** g-callable-info-make-closure When calling g-callable-info-create-closure (fixed to work with the new libffi api), we also need to call (and return the result of) g-callable-info-get-closure-native-address, as the native-ptr. *** ffi 'out arg values scm->gi-argument has been enhanced to properly ignore ffi 'out args for which the value is nil. scm->gi-argument has been fixed, when that applies, to properly set the (dereferenced) foreign (ffi 'out arg) pointer to its value. *** g-object-import-with-supers For some still misterious reason, when automatically importing an object dependency, such as, for example, importing GtkApplication will trigger the import of (among many others ofc) the GtkLayoutManager, unless we call g-base-info-ref upon the info, those info maybe gc'ed. Although this should actually never happen, as g-golf doesn't unref any GIObjectInfo instances (but it did 'misteriously' happen), to be on the safe side of things, g-golf (core) now calls g-base-info-ref upon the result of calling g-object-info-get-parent. * You can help 1. Testing by installing from the tarball, or from the source if you prefer, on the distro of your choice. 2. By running the distributed examples. Ultimately, one of the best way to test, and participate, is to select G-Golf to develop the next application of your dream! Here is an overview of the GNOME platform libraries [1], accessible using G-Golf. In particular, libadwaita [2] provides a number of widgets that change their layout based on the available space. This can be used to make applications adapt their UI between desktop and mobile devices (as shown in the G-Golf port of the "Adwaita demo"). * Contact Consider joining us on irc [3], where you may ask for help or report a problem [4]. However, if you prefer: G-Golf uses the guile-user@gnu.org mailing list Report bugs to bug-g-golf@gnu.org Thanks! David [*] Use a .sig file to verify that the corresponding file (without the .sig suffix) is intact. First, be sure to download both the .sig file and the corresponding tarball. Then, run a command like this: gpg --verify g-golf-0.8.0-rc6.tar.gz If that command fails because you don't have the required public key, then run this command to import it: gpg --keyserver keys.gnupg.net --recv-keys A3057AD7 and rerun the 'gpg --verify' command [1] https://developer.gnome.org/documentation/introduction/overview/libraries.html [2] https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/ [3] https://www.gnu.org/software/g-golf/contact.html [4] When reporting a problem, or if you think you found a bug, it is very important that you prepare a minimal reproducible example (MRE), sometimes also referred to as a short self-contained correct example (SSCCE) http://www.sscce.org/ https://en.wikipedia.org/wiki/Minimal_reproducible_example Also, on irc, we chat :), so please do not write code snipsets directly in the channel, unless 2 or 3 lines of code, nor (long/huge) error messages of course - for more then 2 or 3 lines of code, or error messages, always use a tor-friendly paste service (avoid those that track its visitors and require javascript, thanks!).