Re: Can you make a closed source application using Guile?

"Dr. Arne Babenhauserheide" <[email protected]> Sat, 29 Nov 2025 12:56:56 +0100
Newsgroups gmane.lisp.guile.user
Message-ID <[email protected]>
Tomas Volf <[email protected]> writes:

> "Dr. Arne Babenhauserheide" <[email protected]> writes:
>
>> Srayan Jana <[email protected]> writes:
>>> This might sound dumb, but could you make a closed source
>>> application using Guile? Guile itself is GPL, but does that mean
>>> anything I make using Guile ALSO has to be GPL?
>>
>> Guile is LGPL, so you can make closed source applications, as long as
>> you release your changes to Guile itself as Free Software.
>
> Is that sufficient thought?  One of requirements for LGPL is to be able
> to re-link with changed version of the LGPL software, at least if I
> understand section 4 correctly.  Since Guile (being Scheme) heavily uses
> syntax forms and macros, and what is more, the compiler can inline
> (though I am not cure whether currently across modules), I am not sure
> closed source application in Guile is possible, unless extreme care is
> taken.

You may have to set non-declarative for all modules to ensure that they
don’t get cross-module inlined.
May always have to (eval-when (expand) (user-modules-declarative? #f))
and only -O1 or -O2 -Ono-letrectify for guild compile:
https://www.gnu.org/software/guile/manual/html_node/Declarative-Modules.html

> For example, I give you .go files, you change some syntax-form in your
> Guile version, and what now?  How do you apply those changes to the .go
> files I gave you?

That’s a good question. You may have to ship the source for every file
that uses LGPL licensed define-syntax forms.

⇒ may need to separate out an interface for these that’s shipped as
source and only use regular procedures or self-defined syntax in the
files that do not get provided as source.

Best wishes,
Arne
-- 
Unpolitisch sein
heißt politisch sein,
ohne es zu merken.
draketo.de
signature.asc (application/pgp-signature, 1.1 KB)
-----BEGIN PGP SIGNATURE-----

iQJEBAEBCAAuFiEE801qEjXQSQPNItXAE++NRSQDw+sFAmkq34gQHGFybmVfYmFi
QHdlYi5kZQAKCRAT741FJAPD6xOoEADGt6UbsCWOP+S+/IVUQR/Xco1lpcNP178b
MKqN5dLG0s+l47lk9f/pLeoVJHlwirlZWtBfQdJ8jH9hnVzkhb9xDCGCAsQ3Euen
0MLvdl9Bs0vGjOg2UcezbyCljKpynZWvLTRsUJEFm4shhp7AdcWw4fOwierjSpcX
16P+XhL9qFuWGvrA4CUnGfikleFdo19xAoNbBtMYQHqPF5b/GWaJLzHKvoDSVLqG
Den8dl85J/Lyi4eS2I6P+gCPVg9mUaG0aoZibyzKH3d0O5Ngk7GZJatqNMxj00uv
WvEdBBn067p1yTjbv93jpxXW4nExfq6aH47ByzwNqxbwkOq8hjItW5KuXnf0qeso
q0uyBgnKQ0Cnqo1Uwuoeh7yKcLooyNWQ6wZ0iElQZL8AOZi34QDjm+vN4qWHMNe0
jb+o9ebREan66RDOR9Zlrus/x4iZJA4/97E3m4GKGkg2DkrrLmbPhl2jnQC7sPZ4
mlsSqMAJLkcVN5vAp3nevb9TEzpzHQYHFb/LrP2bboFfH+QHy4GGeQGvVwQn2F2j
LNdCysw8ub80FsDGhzI3WYxHDDTCN5HrkEfhKvkW1FYgf3R5mwAtgft+q7XfpQlt
yPrpwAnNrelGrrQQytiITaBcKv1ru67kaZRuv/Bcq2Rz2zCL8pQWS0qditD0GaHV
sUXkPG5mY4jEBAEBCAAuFiEE3Si95tmHXKvOSosd3M8NswvBBUgFAmkq34gQHGFy
bmVfYmFiQHdlYi5kZQAKCRDczw2zC8EFSFmdA/wLhfvRonLuemlWWlcZ+R63/wa0
psmmlc8SF1jCxA15r2cZEY/IJeiC/GoILfj7SO/33ONsr3+BQF29zsKZ0+BLXYAl
gDL8ScG+zGDdwReI2yAhQeBDY8upEiz8QPRXPbQFQ39ztOoNQM2LFE3aWpgW3huM
79ZLynZA4Gv1M5s2cw==
=NH/h
-----END PGP SIGNATURE-----