unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: David Malcolm <dmalcolm-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Basile Starynkevitch
	<basile-VdE74OAlGqnvXjIo7pOF+l6hYfS7NtTn@public.gmane.org>,
	Nala Ginrut <nalaginrut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Hakan Candar
	<hakancandar-g/b1ySJe57IN+BqQ9rBEUg@public.gmane.org>
Cc: "guile-user-mXXj517/zsQ@public.gmane.org"
	<guile-user-mXXj517/zsQ@public.gmane.org>,
	jit-/MQLu3FmUzdAfugRpC6u6w@public.gmane.org
Subject: Re: Running Compiled Guile Objects
Date: Sat, 14 Dec 2024 18:02:11 -0500	[thread overview]
Message-ID: <fd04850b1d1b2b5e0c909b5b05d1d6a29a5cbd10.camel@redhat.com> (raw)
In-Reply-To: <769073d434c2ed5fb7937c85da240aa5df4d854a.camel-VdE74OAlGqnvXjIo7pOF+l6hYfS7NtTn@public.gmane.org>

On Sat, 2024-12-14 at 18:11 +0100, Basile Starynkevitch wrote:
> On Sat, 2024-12-14 at 09:15 +0900, Nala Ginrut wrote:
> > Hi Hakan!
> > The current Guile is not AOT yet. Although the object file is ELF,
> > it's
> > just bytecode wrapped ELF header. So you can't run it as a regular
> > executable file.
> > 
> 

[Sorry if I'm missing context here, I'm only seeing the part of the
thread where Basile CCed the jit-/MQLu3FmUzdAfugRpC6u6w@public.gmane.org mailing list]

> Those willing to contribute a proper ahead-of-time compiler to GNU
> guile could use the GNU CC libgccjit library which is part of the GCC
> compiler.
> https://gcc.gnu.org/onlinedocs/jit/

...and https://gcc.gnu.org/wiki/JIT

Indeed, it turns out that everyone using libgccjit is using it for
ahead-of-time compilation, rather than jit-compilation.  Sorry about
picking a bad name :)

Probably of most interest to guile developers might be the gccemacs
project here:
  https://akrl.sdf.org/gccemacs.html
since AFAIK that has successfully used libgccjit from within a lisp-
like language to get noticeable speedups.  But guile developers
probably know more about this than I do; I confess I don't know much
about the lisp/scheme world.
> 
> This libgccjit layer of the GCC compiler is stable and maintained C
> API
> and has some obsolete C++ API (which seems unmaintained in december
> 2024). Most of the libgccjit code is internally coded (under GPL
> license) in C++, but the stable API is for C.

Indeed, it is gcc's code generation source code (which is C++), wrapped
in a C API and header (it looks like a frontend to the rest of gcc, and
like an API to the client code).

Hope this is constructive
Dave

> 
> I am using the C API of libgccjit in the RefPerSys open source
> inference engine project (GPLv3+ licensed) on
> https://github.com/RefPerSys/RefPerSys/
> 
> Both libgccjit and GNU lightning (see
> https://www.gnu.org/software/lightning/ ...) could be a basis for
> adding a genuine compilation layer to GNU guile. And RefPerSys uses
> both.
> 
> I guess a significant issue would be to use libgccjit (or GNU
> lightning) with GUILE's garbage collector (which seems to be Boehm
> conservative GC).
> 
> The RefPerSys project has a precise garbage collector and some
> persistence (to textual files). Since it is GPLv3+ licensed, its code
> could be reused in a future GUILE major version. RefPerSys is mostly
> coded in C++.
> 
> I did contribute to GCC long time ago and hope that RefPerSys could
> become a GNU project (but don't know how to make that happen)
> 
> Regards from near Paris in France.
> 



  parent reply	other threads:[~2024-12-14 23:02 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-13 20:34 Running Compiled Guile Objects Hakan Candar via General Guile related discussions
2024-12-14  0:15 ` Nala Ginrut
2024-12-14  1:14   ` Keith Wright
2024-12-14  2:33     ` Nala Ginrut
2024-12-14  2:43       ` Nala Ginrut
2024-12-14 13:01         ` Maxime Devos via General Guile related discussions
2024-12-14 14:37           ` Nala Ginrut
2024-12-14 14:53             ` Maxime Devos via General Guile related discussions
2024-12-14 15:20               ` Nala Ginrut
2024-12-14 16:10                 ` Maxime Devos via General Guile related discussions
2024-12-14 16:20                   ` Nala Ginrut
2024-12-14 16:26                     ` Nala Ginrut
2024-12-14 16:31                       ` Nala Ginrut
2024-12-14 16:50                       ` Maxime Devos via General Guile related discussions
2024-12-14 17:03                         ` Nala Ginrut
2024-12-14 17:48                           ` Maxime Devos via General Guile related discussions
2024-12-14 18:17                             ` Nala Ginrut
     [not found]   ` <CAPjoZofH2QuH_ekSk2L=-sUtVTAfEBpsJS0HkXwA_J9y+Wmg0Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2024-12-14 17:11     ` Basile Starynkevitch
2024-12-14 17:21       ` AOT compiler (was: Running Compiled Guile Objects) Nala Ginrut
     [not found]         ` <49d9827f4455076cc066add3e51f0e882b59e9b7.camel@starynkevitch.net>
     [not found]           ` <CAPjoZoeu++mC+Syd35LjvLJVu6FEcZ=tb5jWdYgS0fZP-OHQiQ@mail.gmail.com>
     [not found]             ` <CAPjoZoeu++mC+Syd35LjvLJVu6FEcZ=tb5jWdYgS0fZP-OHQiQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2024-12-15  1:59               ` Nala Ginrut
     [not found]                 ` <CAPjoZodoBRcw28E5Zjnxb-f_aWG49LjOEDjKQptEH5RnxXsdvw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2024-12-15  2:08                   ` Nala Ginrut
     [not found]                     ` <CAPjoZof2pmNCQH1EQvJjFmUf+Fwt+qMd8y4daxkZMbCY9Bez+Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2024-12-15  7:39                       ` Eli Zaretskii
     [not found]                         ` <86msgxs8d0.fsf-mXXj517/zsQ@public.gmane.org>
2024-12-15  8:07                           ` Nala Ginrut
     [not found]                             ` <CAPjoZoeBSvJrCDkDXgJX27Hr3Y3yAC4-mmMzKsuPnQvGwEjatQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2024-12-15 10:41                               ` Eli Zaretskii
     [not found]                                 ` <86ed29rzy1.fsf-mXXj517/zsQ@public.gmane.org>
2024-12-15 10:49                                   ` Nala Ginrut
     [not found]                                     ` <CAPjoZoc-8THB4BAPUFR2OayrvnSKhFtyOLWR64-jOfYxaJme2A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2024-12-15 10:58                                       ` tomas-2s+jgvIlYZ2ELgA04lAiVw
2024-12-15 11:01                                       ` Eli Zaretskii
     [not found]                                         ` <86bjxdryzg.fsf-mXXj517/zsQ@public.gmane.org>
2024-12-15 11:09                                           ` Nala Ginrut
     [not found]                                             ` <CAPjoZodWGB+QMYABLr5cM_jN2Lpk3Ex-47snPnLBa3-TMZxQYw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2024-12-15 11:32                                               ` Eli Zaretskii
     [not found]       ` <769073d434c2ed5fb7937c85da240aa5df4d854a.camel-VdE74OAlGqnvXjIo7pOF+l6hYfS7NtTn@public.gmane.org>
2024-12-14 23:02         ` David Malcolm [this message]
     [not found]           ` <fd04850b1d1b2b5e0c909b5b05d1d6a29a5cbd10.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2024-12-14 23:43             ` Running Compiled Guile Objects Maxime Devos
     [not found]               ` <20241215004310.onj82D0091dDhme01nj9u5-Pw8LEBfqDLYI1J5xXzd7/dsHW6RRjAQv@public.gmane.org>
2024-12-15  1:43                 ` David Malcolm
2024-12-14 19:21   ` Dr. Arne Babenhauserheide
2024-12-14 20:12 ` Matt Wette

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fd04850b1d1b2b5e0c909b5b05d1d6a29a5cbd10.camel@redhat.com \
    --to=dmalcolm-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=basile-VdE74OAlGqnvXjIo7pOF+l6hYfS7NtTn@public.gmane.org \
    --cc=guile-user-mXXj517/zsQ@public.gmane.org \
    --cc=hakancandar-g/b1ySJe57IN+BqQ9rBEUg@public.gmane.org \
    --cc=jit-/MQLu3FmUzdAfugRpC6u6w@public.gmane.org \
    --cc=nalaginrut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).