I got some feedback on my ecl sffi sdl2 png post and code.
Foremost, I heard that it is not clear what my intent is;
basically I am promoting ecl's sffi which is better than
llvm c2ffi based cffi wrappers (which are more popular).
Glad we cleared that up!
This is why I squeezed libpng through SDL2/SDL2_image. 
There is a relatively popular "quicklisp" c2ffi SDL2 cffi
wrapper that is much worse than just interleaving the C
itself with the lovely common lisp in ECL's sffi.
One criticism I tried to agree with - except, no one wanted
to own it - is that using SDL2 which is big, and meant for
making interactive rich media software in an X environment
solely to use libSDL2_image solely to have some hidden
default values for libpng (which is in libSDL2_image)...
It's getting an elephant to take you and your bicycle to a 
garage to fix your bike. The elephant is lumbering and 
largely unnecessary for your needs.
That's what I wanted to admit, but what I got was sort of an
unknowing expression of this: Hey, did I know that you can
'''
import png
'''
in python? Everyone who is trying to sell out by loving python
(now quite after the fact; Google etc are doubling down on js
now instead) does not understand what the products they are
pro-bono promoting are or do.
Python is a bizarre and rambling clutter of C program. (The
'reference implementation' cython). But let's just talk about
python's png module, pypng.
It's a copy of libpng, but where libpng exposes the extensible
png image container format, pypng silently uses simple-use-case
defaults. This is what I was getting from SDL2_image, so I was
guilty here too.
Aside from silent defaults, pypng does what libpng does with zlib
(the C compression workhorse dependency shared by pypng and 
libpng). Then, pypng adds some black magic to pack accesses into
sequential/rows as a mitigation for how incredibly slow the python 
engine is compared to C (about 30 times slower for simple cases).
This is in contrast to my random access in my sffi example, which
really does random accesses (consed into lisp, churning through
the Boehm garbage collector).