Garbage collectors in C
Go to file
Peter McGoron 5b8775dab6 add fake struct to help with type checker 2024-06-13 21:01:03 -04:00
examples add fake struct to help with type checker 2024-06-13 21:01:03 -04:00
include add fake struct to help with type checker 2024-06-13 21:01:03 -04:00
.gitignore strings: add more tests 2024-06-12 08:56:49 -04:00
COPYING cheney copying collector 2024-06-11 23:40:34 -04:00
Makefile strings: add more tests 2024-06-12 08:56:49 -04:00
README.rst cheney copying collector 2024-06-11 23:40:34 -04:00
c89_relo.c cheney copying collector 2024-06-11 23:40:34 -04:00
cheney_c89.c change uns_root_ptr to uns_ctr 2024-06-12 21:41:35 -04:00
uns.c change uns_root_ptr to uns_ctr 2024-06-12 21:41:35 -04:00

README.rst

=================
Universal Service
=================

Universal Service is a collection of garbage collectors written in C.

-------
License
-------

Universal Service is licensed under the LGPL-3.0-or-later.

Contrary to popular belief, **static linking LGPL code does not force
your code to be LGPL.** The LGPL requires you to allow the user to swap
out the LGPL code for anything that fits the interface, and for you to
redistribute modifications to the LGPL code. From the
`GNU Project FAQ <https://www.gnu.org/licenses/gpl-faq.html#LGPLStaticVsDynamic>`_:

> Does the LGPL have different requirements for statically vs dynamically
> linked modules with a covered work?
>
> For the purpose of complying with the LGPL (any extant version: v2, v2.1 or v3):
>
> If you statically link against an LGPLed library, you must also
> provide your application in an object (not necessarily source) format,
> so that a user has the opportunity to modify the library and relink
> the application.

You can statically link any LGPL 3.0 code to code of permissive licenses
(like MIT), and even to source-available license (like the SSPL or the
Commons Clause) as long as the end user can recompile the program to use
their own version of the library.