Hi, and welcome to my space on the Internet ...
-
Re-engineering a qsort function (part 4)
Aliasing concerns
While looking at commit logs for various BSD
qsort
versions, I noticed this:* libc qsort(3): stop aliasing. Konstantin Belousov 2018-06-10 1 -44/+17
Which led to some details:
-
Re-engineering a qsort function (part 3)
The qsort optimization that wasn’t
In 1993, Jon Bentley and Doug McIlroy published a paper Engineering a Sort Function (also here) (Software–Practice and Experience, vol. 23 no. 11, Nov. 1993, pp 1249-1265). Since then, most C
stdlib
qsort
functions have been based on the code and/or the ideas in that paper.The
qsort
in the BSD variants and descendants have followed the code in that paper. But someone in 1994 attempted to “improve” on Bentley and McIlroy, with potentially disastrous results. -
Re-engineering a qsort function (part 2)
(Continued from part 1.)
I was starting to feel pretty good about my
qsort
implementation. I also downloaded a number ofqsort
implementations from various sources. Several were fromlibc
and related implementations, including NetBSD, FreeBSD, OpenBSD, dietlibc, u-boot, μClibc and uclibc-ng, Newlib, picolibc, klibc, Bionic, and musl. -
Re-engineering a qsort function (part 1)
Improved
qsort
implementationsI’ve been working on better (at least faster) implementations of
qsort
for the C standard library. A long time ago I wrote an implementation of the C standard library functionqsort
. I thought it was pretty good, but recently I’ve made much better versions. -
LZW encoding for Python Pillow (PIL)
I have recently made my first contribution to a major (?) open source project.
The Python Imaging Library (PIL), now known as Pillow, is probably the best-known library for image processing in Python. (See documentation and source.)
I had a need to handle GIF files in Python, and I noticed some time ago that they were not compressed very well. The library was originally written by Fredrik Lundh starting in the late 1990s. Fredrik is a brilliant programmer (also created the ElementTree system for handling XML in Python, among other projects). But when he created PIL, GIFs were under a bit of a cloud.