2024-06-11 23:40:34 -04:00
|
|
|
=================
|
|
|
|
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.
|
2024-06-20 23:14:25 -04:00
|
|
|
|
|
|
|
----
|
|
|
|
Todo
|
|
|
|
----
|
|
|
|
|
2024-06-21 16:49:55 -04:00
|
|
|
* call before gc and after gc
|
|
|
|
* Make makefiles simpler and POSIX compliant
|
|
|
|
* Address sanitizer, ub sanitizer if available
|