From: Nala Ginrut <nalaginrut@gmail.com>
To: Maxime Devos <maximedevos@telenet.be>
Cc: Keith Wright <kwright@keithdiane.us>,
"hakancandar@protonmail.com" <hakancandar@protonmail.com>,
"guile-user@gnu.org" <guile-user@gnu.org>
Subject: Re: Running Compiled Guile Objects
Date: Sat, 14 Dec 2024 23:37:08 +0900 [thread overview]
Message-ID: <CAPjoZoeZHyUoQuGMN5ttS9oLSGt9LB60oXNYYmAFcD239U5y=g@mail.gmail.com> (raw)
In-Reply-To: <20241214140118.od1H2D00P1Y3F3G01d1JPj@xavier.telenet-ops.be>
It's unnecessary to manually load .go files. You can pre-compile .scm to
.go and install to the compiled-load-path. And put .scm to load-path, if
your path is correct, and if the .scm is no newer than .go, Guile will
automatically load .go directly without auto-compilation.
BTW, I saw some Guile project didn't install .go to correct path. Even if
Makefile compiled .go and installed, the program will trap to
auto-compilation for the first time.
However, it's the matter of tweak the install path, rather than manually
load .go.
Best regards.
On Sat, Dec 14, 2024, 22:01 Maxime Devos <maximedevos@telenet.be> wrote:
> Compiling the .scm to .go ahead of time (with guild) and loading the .go
> directly makes a lot of sense:
>
>
>
> - It avoids issues with locating the .go (no need to set .go path when
> invoking guile, although if it does use additional dependencies, depending
> on where they are located the script may need to set the .go (and .scm)
> path).
> - It needs to look at less files (no need to compare .scm & .go
> modification times) (*)
> - Easier to set compilation options (e.g. optimisation level)
> - It avoids auto-compilation (no "compiling this thing / that thing”
> messages, no compilation cache filled with old junk, and in case of some
> forms of containerisation, avoids permission issues & transmission vector).
>
>
>
> (*) won’t make a big difference since it most likely uses other modules,
> but it’s something.
>
>
>
> >I tried the following commands with no luck:
>
> >guile3.0 example.scm.go
>
> >guile3.0 --language=bytecode example.scm.go
>
>
>
> To my understanding of the language tower, the second is supposed to work.
> What does “no luck” mean here? (I don’t have a guile setup at the moment.)
>
>
>
> (You need to recompile in case of some version changes, but that’s hardly
> Guile-specific.)
>
>
>
> (There is an internal caching mechanism for autocompilation, but AOT (to
> bytecode) is a fine thing to do, and Guile supports that too. I recommend
> it for things like libraries and installed software (for random scripts
> autocompilation is likely good enough unless the extra messages or shared
> (per-user) cache directory are problematic.).)
>
>
>
> Best regards,
> Maxime Devos
>
next prev parent reply other threads:[~2024-12-14 14:37 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 [this message]
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 ` Running Compiled Guile Objects David Malcolm
[not found] ` <fd04850b1d1b2b5e0c909b5b05d1d6a29a5cbd10.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2024-12-14 23:43 ` 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='CAPjoZoeZHyUoQuGMN5ttS9oLSGt9LB60oXNYYmAFcD239U5y=g@mail.gmail.com' \
--to=nalaginrut@gmail.com \
--cc=guile-user@gnu.org \
--cc=hakancandar@protonmail.com \
--cc=kwright@keithdiane.us \
--cc=maximedevos@telenet.be \
/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).