From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Chris Vine Newsgroups: gmane.lisp.guile.user Subject: Re: understanding guile-gi Date: Mon, 17 Jan 2022 02:08:24 +0000 Message-ID: <20220117020824.9d6359e9a29e8392d69024ee@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24682"; mail-complaints-to="usenet@ciao.gmane.io" To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Mon Jan 17 03:08:51 2022 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 1n9HRz-0006G1-78 for guile-user@m.gmane-mx.org; Mon, 17 Jan 2022 03:08:51 +0100 Original-Received: from localhost ([::1]:44950 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9HRx-00059J-LE for guile-user@m.gmane-mx.org; Sun, 16 Jan 2022 21:08:49 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:57970) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9HRS-00058x-0F for guile-user@gnu.org; Sun, 16 Jan 2022 21:08:18 -0500 Original-Received: from [2a00:1450:4864:20::32b] (port=45932 helo=mail-wm1-x32b.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9HRQ-00071r-8R for guile-user@gnu.org; Sun, 16 Jan 2022 21:08:17 -0500 Original-Received: by mail-wm1-x32b.google.com with SMTP id c126-20020a1c9a84000000b00346f9ebee43so19316104wme.4 for ; Sun, 16 Jan 2022 18:08:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:subject:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=JOFX/OXCzXX73WKuv1Xci8Z6I2ZXe4hCwbDdJ/6ScY0=; b=nwvjf+KLpYayW70kaWaZ6wFJ5K22UDbJKswbHcWu9RQ/Sz5AgsTu3PgAP4u2BOM5fE n3+aUaGwnU7/bT6N1Fxx8iDr7N5JqAwneoAoiRD3R1zNwMmEGKXOpZWJ4bu3oi9i0NYo lUsV31iS3TN4Sf+ECHsyaAa+ENph1qNBNMlu72tJfz7Ttq5lU2vUVCg817bNHeNT8/76 9JIrbGSTuslGjEhNNZ63yh/lTs/j005PKQoPyRAmn/yikxKXytI8F++OdgaQt1dr1/az tZ4IcZKfpJenGW+AQ41QEHb4oqn2TAXO4wZXMIubdpdaCmlbZ6WxSKOfp/Mto0PebKTC fdNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JOFX/OXCzXX73WKuv1Xci8Z6I2ZXe4hCwbDdJ/6ScY0=; b=FIgMqhSsTJRHLtp3LIFb7alGpLgls1L5ngX9alWL3a9ya+ZCvDWnfpCJvXzJUj6M8q be+/jyHRlQkkoFTznt+RvgzwnvYcEvpyNAIB5VoncVkCOYE3baXPKF7+QMByGADGbdMy g2np1N70UujUohmP3U2q2P5ItBtu5x5nTW4fZYGMc8O1F6R809blnRRcXTif3u7WqfqO 847TlWxh4AAuBxIOS9j2vwSuhaNCVSFDI4nYmPjR7dGicCXcVeia79YnSaRloiQOIDFj zZ0Y54tGLpHwn3W/3wvHQfqmaBqN9DklVFTGFwbSeb+ykhDT3X22Ie8uR+RtVLxkCNGP 3FTw== X-Gm-Message-State: AOAM533aQyHKcO7I3rqbZVp5LusmwwYrrfRgWUAcCynlUrFMcEFqhKl5 nlKeDU8BOIu/MLHm1KgzipB1wYyhkqk= X-Google-Smtp-Source: ABdhPJz86DSy2lHVrH1wecxTpbR81XYjgjGB+zbJqSFnNLEsrdQiACg7x0kCp670TCA90Cdn7188Hg== X-Received: by 2002:adf:8023:: with SMTP id 32mr16701054wrk.136.1642385294454; Sun, 16 Jan 2022 18:08:14 -0800 (PST) Original-Received: from bother.homenet ([2.27.184.177]) by smtp.gmail.com with ESMTPSA id i8sm12064630wru.26.2022.01.16.18.08.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 16 Jan 2022 18:08:14 -0800 (PST) Original-Received: from bother.homenet (localhost [127.0.0.1]) by bother.homenet (Postfix) with SMTP id D9A65260923 for ; Mon, 17 Jan 2022 02:08:24 +0000 (GMT) In-Reply-To: X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-unknown-linux-gnu) X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32b (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=vine35792468@gmail.com; helo=mail-wm1-x32b.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, NICE_REPLY_A=-0.001, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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" Xref: news.gmane.io gmane.lisp.guile.user:17960 Archived-At: On Sun, 16 Jan 2022 13:37:02 +0000 Zelphir Kaltstahl wrote: > Hello Guile Users! > > I would like to understand guile-gi better, hopefully at some point I will be > able to create GTK applications using Guile. But perhaps my understanding is > wrong, so I want to ask a few things: > > guile-gi – I think this stands for "Guile Gnome(?) Introspection"? The "gi" stands for gobject-introspection. > gi – I think this "introspection" part of the name is about inspecting sources > and deriving code from that, to make use of Gnome libraries. Or is it for GTK? Instrospection is available for any library with a gobject-introspection typelib. That includes glib and GTK and most of the gnome stack. /usr/lib[64]/girepository-1.0/ will contain the typelibs available on your distribution. There will be many of them. > Which things are part of GTK and which things are part of Gnome? Currently my > picture is: GTK contains all the GUI things and Gnome the data things. For > example: GTK might contain some date picker dialog or popup or whatever, but the > datatype for date itself would be part of Gnome. "GDate". As such Gnome provides > a sort of common datatypes basis, which could be used by other frameworks as > well (and maybe is?). No. > So guile-gi makes use of introspection to give access to Gnome datatypes, or > does it create bindings via FFI for an already existing C code base, which is > the actual introspection for Gnome stuff? I am not certain what you mean but gobject-introspection provides bindings for C libraries written to GObject conventions which make them available to higher level languages such as python (pygobject), javascript (gjs) and guile scheme (guile-gi and g-golf). pygobject is widely used; gjs is used by gnome-shell amongst others. > And finally: Is my expectation correct, that I will be able to make GTK > applications using Guile, if I learn to use guile-gi? It will mainly work although I believe there are a few missing pieces which you are unlikely to encounter. Look at some of the examples in the guile-gi repository. Also look at g-golf.