glib/docs
Natanael Copa 45b5a6c1e5 gslice: Remove slice allocator and use malloc() instead
Keep the API for ABI compatibility.

See
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2935#note_1650099
for a summary of the reasoning for this change:
 - The performance of system-provided allocators has improved since
   GSlice was written, and they are now similarly as performant, or more
   performant, than GSlice.
 - The code is unmaintained and nobody understands it.
 - It doesn’t integrate with tooling and system security features which
   have been written for the system `malloc()` implementation (such as
   sanitisers, valgrind, etc.).
 - It’s confusing for developers: should they use `g_slice_new()` or
   `g_new()`?
 - GSlice is faster than the libc allocator for allocating and
   (particularly) freeing linked lists, but since these are a rubbish
   data structure, that’s not a great thing to optimise for.

For the cases where application performance is negatively impacted by
the implementation of GSlice being dropped (and we don’t think there’ll
be many), applications can use a drop-in `malloc()` replacement which is
more suited to their particular workload. Choosing an allocator in GLib
to suit all application workloads is not possible.

Including documentation updates and cleanups by Philip Withnall.

Fixes: #1079
2023-01-25 13:49:09 +00:00
..
reference gslice: Remove slice allocator and use malloc() instead 2023-01-25 13:49:09 +00:00
backports.md docs: Add a backports policy 2022-05-19 12:52:26 +01:00
CODEOWNERS docs: Sync glib.doap to set of users listed in CODEOWNERS 2022-06-22 15:54:49 +01:00
debugging.txt tree: Fix various typos and outdated terminology 2020-06-12 15:01:08 +01:00
macros.txt build: Add glib_debug option 2021-01-20 16:05:36 +01:00
meson-version.md docs: Update Meson version policy to mention freedesktop SDK 2022-11-24 12:13:21 +00:00
rationales.md docs: Move README.rationale to docs subdirectory 2022-05-11 13:02:49 +01:00
releasing.md docs: Document the release process 2022-06-21 16:16:10 +01:00
roadmap.md docs: Document the release process 2022-06-21 16:16:10 +01:00
supported-platforms.md docs: Update supported platforms list 2022-05-18 08:36:50 +01:00
testing.md docs: Add a testing policy 2022-06-14 15:19:32 +01:00
toolchain-requirements.md Require C99's __VA_ARGS__ 2022-06-30 01:46:32 +01:00