I'm assuming that for whatever you're doing, traditional OS
distribution isn't what you want.  It's possible to bundle Guile + all
necessary shared libraries + all necessary Guile modules from the
standard library + a wrapper script to launch your application. Up to
you to figure out how you build such a bundle. There be dragons, but
it's doable.  I've had decent success doing so for Lisp Game Jam
submissions.  For example: https://davexunit.itch.io/super-bloom

Guix can also be used to create redistributable bundles.  The
resulting bundles are much larger than something hand-crafted but tend
to work well. This was done for another Lisp Game Jam submission:
https://cwebber.itch.io/fantasary

If you don't want to do that, just ask users to install Guile 3 or
something first. Lots of software for VM platforms has this
expectation.

It will be a long wait, but native compiled standalone executables is
something Guile should get... eventually. We're going to have
standalone WebAssembly modules first via Guile Hoot, which should
hopefully solve a lot of the same problems that need to be solved for
native compilation.

And to answer your original question: Yes, it's very possible to write
programs only in Guile. For example, Haunt, my static site generator,
is written in pure Guile. Guix is almost entirely written in Guile. I
will use the FFI to call C libraries from Guile, but never the other
way around. It used to be that Guile was for adding a "scripting
language" to C programs but it's a legacy use case, IMO. Write your
programs in Scheme and reach out to C libraries only when necessary.
Extend, rather than embed.

Hope this helps. Best of luck,

- Dave

On Wed, Oct 18, 2023 at 11:07 AM CToID <funk...@yandex.com> wrote:
>
> Greg Troxel <g...@lexort.com> said:
> > The same way you distribute Java programs, python programs and perl
> > programs.  You ask they they install the langauge environment as part of
> > your instructions
>
>
> Is it possible to also ship guile itself with the application?
>
>

Reply via email to