From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: David Pirotte Newsgroups: gmane.lisp.guile.user Subject: Re: GNU G-Golf 0.8.0-rc-3 available for testing Date: Tue, 30 Apr 2024 21:51:02 -0300 Message-ID: <20240430215102.2f6f74b7@tintin> References: <20240417025615.0b6c50f5@tintin> <871q73vcz4.fsf@pelzflorian.de> <20240418192132.245200a9@tintin> <87cyql1e56.fsf@pelzflorian.de> <20240420015158.50031f08@tintin> <877cgepwm1.fsf@pelzflorian.de> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/P3eLDbRzEEVPZAG4Gv_Fqeh"; protocol="application/pgp-signature"; micalg=pgp-sha512 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22354"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-user To: "pelzflorian (Florian Pelz)" Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Wed May 01 02:52:11 2024 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1s1yCf-0005aD-IN for guile-user@m.gmane-mx.org; Wed, 01 May 2024 02:52:09 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s1yC6-0002Fo-Ec; Tue, 30 Apr 2024 20:51:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s1yC3-0002Fc-C0 for guile-user@gnu.org; Tue, 30 Apr 2024 20:51:32 -0400 Original-Received: from moses.all2all.org ([79.99.200.14]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s1yBn-0008Vk-2O for guile-user@gnu.org; Tue, 30 Apr 2024 20:51:31 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by moses.all2all.org (Postfix) with ESMTP id 0D81567C007A; Wed, 1 May 2024 02:51:11 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at moses.all2all.org Original-Received: from moses.all2all.org ([127.0.0.1]) by localhost (moses.all2all.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JKuXQ3xKIbDi; Wed, 1 May 2024 02:51:10 +0200 (CEST) Original-Received: from tintin (unknown [168.227.184.177]) by moses.all2all.org (Postfix) with ESMTPSA id 7C7E067C0074; Wed, 1 May 2024 02:51:09 +0200 (CEST) In-Reply-To: <877cgepwm1.fsf@pelzflorian.de> X-Mailer: Claws Mail 4.2.0 (GTK 3.24.41; x86_64-pc-linux-gnu) Received-SPF: pass client-ip=79.99.200.14; envelope-from=david@altosw.be; helo=moses.all2all.org X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.user:19570 Archived-At: --Sig_/P3eLDbRzEEVPZAG4Gv_Fqeh Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hello Florian, > To develop with G-golf and GTK as in G-Golf=E2=80=99 > examples/adw-1/hello-world.scm or examples/gtk-4/hello-world.scm, the > Guix commands must (at the time of writing) be used with the > =E2=80=9C--no-grafts=E2=80=9D option, because G-Golf first when loading r= uns > g_typelib_symbol on GdkPixbuf functions from Guix=E2=80=99 normal gdk-pix= buf > package, but later when it presents the GTK window, GTK tries to load > GdkPixbuf functions from a mostly identical replacement gdk-pixbuf > package ... Wow :) - A bit scary! fwiw, g-golf doesn't load/import/invoke/call nor the GdkPixbuf typelib, nor any of its functions/methods 'on its own', nor does any example, this occurs as part of the Gtk/Gdk/Gsk 'engine' - it is not g-golf that 'runs g_typelib_symbol on GdkPixbuf functions; Fwiw, debian 'generally' has two pkg for 'those situations', one with the library itself and one for the debug symbols: david@... ~ 1 $ lpkg gdk-pixbuf ii libgdk-pixbuf-2.0-0:amd64 2.42.1= 0+dfsg-3+b3 amd64 GDK Pixbuf library ii libgdk-pixbuf-2.0-0-dbgsym:amd64 2.42.1= 0+dfsg-3+b3 amd64 debug symbols for libgdk-pi= xbuf-2.0-0 ii libgdk-pixbuf-2.0-dev:amd64 2.42.1= 0+dfsg-3+b3 amd64 GDK Pixbuf library (develop= ment files) ii libgdk-pixbuf-xlib-2.0-0:amd64 2.40.2= -3+b2 amd64 GDK Pixbuf library (depreca= ted Xlib integration) ii libgdk-pixbuf-xlib-2.0-dev:amd64 2.40.2= -3+b2 amd64 GDK Pixbuf library (develop= ment files) ii libgdk-pixbuf2.0-0:amd64 2.40.2= -3+b2 amd64 GDK Pixbuf library (transit= ional package) ii libgdk-pixbuf2.0-bin 2.42.1= 0+dfsg-3+b3 amd64 GDK Pixbuf library (thumbna= iler) ii libgdk-pixbuf2.0-common 2.42.1= 0+dfsg-3 all GDK Pixbuf library - data f= iles ii libgdk-pixbuf2.0-dev:amd64 2.40.2= -3+b2 amd64 GDK Pixbuf library (transit= ional development files) ii libgdk-pixbuf2.0-doc =20 [ did paste the all list of *gdk-pixbuf* pkgs just in case, but [ i was refering to the two first listed pkgs in my comment ofc ... > If a G-Golf using GTK app were to be packaged for Guix, the package > would have to use tricks to reference GTK=E2=80=99s gdk-pixbuf package an= d not > normal gdk-pixbuf. (Guix only has one G-Golf app packaged currently, > the nomad web browser, which is broken in current Guix.) You (the guix team) should fix Guix, not the g-golf app(s). > The second issue is the vfuncs when running > examples/gtk-4/drawing-widget.scm. This segfaults at > gtk_widget_snapshot_child when run. But why (does it works fine on debian (and other distros) and fails on guix (it fails on homebrew as well, fwiw)), is the question - Again, g-golf doesn't call gtk_widget_snapshot_child 'on its own', this occurs as part of the upstream [Gsk] snapshot implementation ... so this particular method is called by the gobject/gtk[gsk actually] engine, not g-golf - g-golf 'merely' installs the snapshot closure pointer in the derived class it defines. > Similarly examples/gtk-4/peg-solitaire.scm segfaults at > gtk_image_set_from_paintable called from g_callable_info_invoke. It probably is a different bug, the peg-solitaire does call set-from-painta= ble, we can(should) probably separate this from the vfunc related bug, though the peg-solitare also define vfunc (it has to ...) > segfaults at least with guile and guile-next Guile versions 3.0.9 and > 3.0.9-0.db7efa5. this has nothing to do with guile - fwiw, it should even work with guile 2.0.14 > I do not understand the cause or the vfunc implementation in > G-Golf=E2=80=99s g-golf/hl-api/vfunc.scm file. Please read the doc, follow the upstream link(s) proposed, and let me know if there is still something you do not understand after done so: https://www.gnu.org/software/g-golf/manual/html_node/VFunc-Alley.html =09 > I will try to compare it with Vala-generated C code and try to make > it fail similarly. What about pygobject? Not familiar with Vala, but i am familiar with some of the pygobject code, and if necessary, i can ask for some help in #introspection (on matrix, not irc anymore). > examples/gtk-4/simple-paintable.scm fails at (add-to-load-path > (dirname (current-filename)). I have not yet spent time to debug > this one further. It needs to do so to in order to import the (nuclear-icon) module, which sits next to ... but that module calls define-vfunc, so we should first and above all fix the define-vfunc problem in guix, and for this we should use the examples/gtk-4/drawing-widget.scm, which is 'dead simple'. > I have not run adw1-demo.scm successfully, because the modules it > needs are not in the load path. I guess this is the same small issue. Definitely, it needs to find all its modules ... i wonder why (dirname (current-filename)) works for debian and fails for guix (?) - Any other projects ever report this? In conclusion, my recommendations: 1- fix guix to have one gdk-pixbuf module 2- let's try to fix the vfunc problem in guix, using the examples/gtk-4/drawing-widget.scm ... or some even easier vfunc test code i could write if necessary Thanks, David --Sig_/P3eLDbRzEEVPZAG4Gv_Fqeh Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEhCJlRZtBM3furJHe83T9k6MFetcFAmYxkfYACgkQ83T9k6MF eteipgf7BHk8TQEDUDnn9tcBks237U7wCvwG1BMDtHG9JeSVOxk9lB8oei3HG5z6 ip10MB1w7bMlb/bfCsJL56LWZQwgz+AO3X5rfDbLwGbsU5M5Q/H3ptvTzvKua50u c2V0cEY4QOmyasYNVHIKXtCYEtuYJoG9/y5PZ6GAXUB5X4ghxqYAJTCrZWHvqj4I tVwuOgUxjRUMTNm0UHOv8hGb203uUq//tzQQoGsNcuGL8l/ghV6g2JEM6hep4Qs2 OEeqx8g31N7b5ocK3dYXQK0oE/VJTFGMhrFDIImFRHlhrY9VGEJNltVPOWbwba9G DAAT71IdZxW8kflSHqvBGZhOcK9GiA== =E61D -----END PGP SIGNATURE----- --Sig_/P3eLDbRzEEVPZAG4Gv_Fqeh--