unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
* guile_gi-0.3.2 released
       [not found] <Yc0zvRh/ePBuloS9.ref@spikycactus.com>
@ 2021-12-30  4:21 ` Mike Gran
  2021-12-30 15:40   ` Matt Wette
  0 siblings, 1 reply; 6+ messages in thread
From: Mike Gran @ 2021-12-30  4:21 UTC (permalink / raw)
  To: guile-user

On behalf of the Guile-GI team, I am pleased to announce the release
of Guile-GI v0.3.2.

This library hopes to make GTK and WebKit available to Guile.

guile-gi is a library that generates GNU Guile bindings for GObject
libraries that provide typelib files.  GObject is a standard way of
writing C-language libraries with headers and introspection
information.  Typelib files are GObject's standard way to provide that
introspection information.  Among the GObject libraries are GTK3 and
WebKitGTK2, two popular GUI libraries.

Guile-GI is of beta quality.  Its API is stabilizing, but is not
stable.

This release, in particular, is just a snapshot where the code was
as before we begin a long-overdue refactor of the type system.

2021-12-29: version 0.3.2
 - SCM GObject arguments should better preserve their type when
   passing through function calls, and not downgrade to the argument's
   required type (#104)
 - Handle GVariant arguments
 - Handle GBoxed module variables
 - Initial handling of Gtk4's GtkExpression and other new, fundamental
   types
 - More verbose warnings
 - More stringent typechecks
 - Avoid crashes cause by calling callbacks in non-guile mode
 - Avoid Unicode combining character in test case

Thanks to
 - LordYuuma
 - Bob131
 - Danny Milosavljevic <daym>
 - Lloyd Konneker <bootchk>

A tarball, sha256, and gpg sig can be downloaded from
 https://github.com/spk121/guile-gi/releases/download/v0.3.2/guile_gi-0.3.2.tar.gz
 SHA256 7e35b9b661e331a45bc44f4e4093b748693c603de94d728098a7a8e71f5c3505

 https://github.com/spk121/guile-gi/releases/download/v0.3.2/guile_gi-0.3.2.tar.gz.sha256
 https://github.com/spk121/guile-gi/releases/download/v0.3.2/guile_gi-0.3.2.tar.gz.sig

If you prefer a Javascript-free download site, you can use
 https://lonelycactus.com/tarball/guile_gi-0.3.2.tar.gz
 https://lonelycactus.com/tarball/guile_gi-0.3.2.tar.gz.sha256
 https://lonelycactus.com/tarball/guile_gi-0.3.2.tar.gz.sig

There are some docs at
  https://spk121.github.io/guile-gi/
  
To get an idea of what this library is supposed to do.
  https://spk121.github.io/guile-gi/The-Concept-of-Operations.html  

The repository and bug tracker can be found at
  https://github.com/spk121/guile-gi

If you're uncomfortable using the bug tracker or have any objection to
the websites used, you can always e-mail me directly for help or bug
reports.

Regards,
Mike Gran



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: guile_gi-0.3.2 released
       [not found] <mailman.29786.1640838091.18144.guile-user@gnu.org>
@ 2021-12-30  5:40 ` Andy Tai
  2021-12-30 11:56   ` Chris Vine
  2021-12-30 16:45   ` Mike Gran
  0 siblings, 2 replies; 6+ messages in thread
From: Andy Tai @ 2021-12-30  5:40 UTC (permalink / raw)
  To: guile-user, Mike Gran

Curious if this covers all the common GNOME APIs on GNOME 3?

Also is there plan to cover gtk 4?   Also to makg GObject appear as
GOOPS objects?

> Date: Wed, 29 Dec 2021 20:21:17 -0800
> From: Mike Gran <spk121@yahoo.com>
> To: guile-user@gnu.org
> Subject: guile_gi-0.3.2 released
> Message-ID: <Yc0zvRh/ePBuloS9@spikycactus.com>
> Content-Type: text/plain; charset=us-ascii
>
> On behalf of the Guile-GI team, I am pleased to announce the release
> of Guile-GI v0.3.2.
>
> This library hopes to make GTK and WebKit available to Guile.
>
> guile-gi is a library that generates GNU Guile bindings for GObject
> libraries that provide typelib files.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: guile_gi-0.3.2 released
  2021-12-30  5:40 ` guile_gi-0.3.2 released Andy Tai
@ 2021-12-30 11:56   ` Chris Vine
  2021-12-30 16:45   ` Mike Gran
  1 sibling, 0 replies; 6+ messages in thread
From: Chris Vine @ 2021-12-30 11:56 UTC (permalink / raw)
  To: guile-user

On Wed, 29 Dec 2021 21:40:56 -0800
Andy Tai <atai@atai.org> wrote:
> Curious if this covers all the common GNOME APIs on GNOME 3?
> 
> Also is there plan to cover gtk 4?

guile-gi should work with any library that has a gobject-introspection
typelib installed, including gtk4 if you have that one installed.  The
examples directory in the git repository gives you examples of how to
do it.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: guile_gi-0.3.2 released
  2021-12-30  4:21 ` Mike Gran
@ 2021-12-30 15:40   ` Matt Wette
  2021-12-30 17:10     ` Mike Gran
  0 siblings, 1 reply; 6+ messages in thread
From: Matt Wette @ 2021-12-30 15:40 UTC (permalink / raw)
  To: guile-user

Thanks for the effort, Mike et al.

I'll be digging in, curious to see how you worked the GObject system in.
I've spent some time trying to understand how GObject is laid out, as
the use of C macros makes it quite obtuse and I could not find a lot on
it.  If you are interested in my perspective let me know.

On 12/29/21 8:21 PM, Mike Gran wrote:
> On behalf of the Guile-GI team, I am pleased to announce the release
> of Guile-GI v0.3.2.
>
> This library hopes to make GTK and WebKit available to Guile.
>
> guile-gi is a library that generates GNU Guile bindings for GObject
> libraries that provide typelib files.  GObject is a standard way of
> writing C-language libraries with headers and introspection
> information.  Typelib files are GObject's standard way to provide that
> introspection information.  Among the GObject libraries are GTK3 and
> WebKitGTK2, two popular GUI libraries.
>




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: guile_gi-0.3.2 released
  2021-12-30  5:40 ` guile_gi-0.3.2 released Andy Tai
  2021-12-30 11:56   ` Chris Vine
@ 2021-12-30 16:45   ` Mike Gran
  1 sibling, 0 replies; 6+ messages in thread
From: Mike Gran @ 2021-12-30 16:45 UTC (permalink / raw)
  To: Andy Tai; +Cc: guile-user

On Wed, Dec 29, 2021 at 09:40:56PM -0800, Andy Tai wrote:
> Curious if this covers all the common GNOME APIs on GNOME 3?
> 
> Also is there plan to cover gtk 4?   Also to makg GObject appear as
> GOOPS objects?

Like Chris noted, the bindings are generated at run-time by reading a
typelib file that describes a C library. Many GNOME libraries provide
typelib files.  You might have some in a directory such as
"/usr/lib/girepository-1.0" or somesuch.

I have yet to try to use Gtk4 beyond making sure that its typelib can
be parsed.  There is some functionality that Gtk4 requires that
guile-gi can't handle yet, such as vfuncs.

The generated bindings do use GOOPS but GOOPS is bolted on top of
GObject's own class hierarchy, so it is a bit of a hybrid.

-Mike Gran



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: guile_gi-0.3.2 released
  2021-12-30 15:40   ` Matt Wette
@ 2021-12-30 17:10     ` Mike Gran
  0 siblings, 0 replies; 6+ messages in thread
From: Mike Gran @ 2021-12-30 17:10 UTC (permalink / raw)
  To: Matt Wette; +Cc: guile-user

On Thu, Dec 30, 2021 at 07:40:50AM -0800, Matt Wette wrote:
> Thanks for the effort, Mike et al.
> 
> I'll be digging in, curious to see how you worked the GObject system in.
> I've spent some time trying to understand how GObject is laid out, as
> the use of C macros makes it quite obtuse and I could not find a lot on
> it.� If you are interested in my perspective let me know.

Hi Matt,

It is mostly GOOPS classes holding pointers to GObjects, and then
relying on GOOPS to sort out getting the right method to the right
GObject.

The code is a tangle: especially all the FFI necessary to make it
work.

I wanted to get this release out there, even though it is rough, as
the state of the code before a refactoring begins. The type system
needs to be reconstructed. guile-gi expects that the GLib and GObject
to which it is linked compile time is compatible with the GObject and
GLib it finds at run-time, which may not be true.

Please feel free to send any advice.

There is a parallel effort -- g-golf -- which tries to provide
typelib-generated bindings in a more schemey, user-friendly way.  It
also tries to minimize the amount of C.  guile-gi has a lot of C, and
its goal (not that we've really discussed a vision) is to be a fairly
direct dump of GObject methods into GOOPS classes, for better or for
worse.

-Mike Gran



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-12-30 17:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <mailman.29786.1640838091.18144.guile-user@gnu.org>
2021-12-30  5:40 ` guile_gi-0.3.2 released Andy Tai
2021-12-30 11:56   ` Chris Vine
2021-12-30 16:45   ` Mike Gran
     [not found] <Yc0zvRh/ePBuloS9.ref@spikycactus.com>
2021-12-30  4:21 ` Mike Gran
2021-12-30 15:40   ` Matt Wette
2021-12-30 17:10     ` Mike Gran

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).