Graham Markall

@gmarkall
313 Followers
405 Following
408 Posts
Professional interests: Python, CUDA, Compilers.
Personal interests: RISC-V, PSXDev, OSHW, 日本語.
Recreation: family time, cycling, running, cooking.
Githubhttps://github.com/gmarkall
Personal site:https://big-grey.co.uk

Checking the docs for the Python site module - it reads like it gets an update every time someone shoots themselves in the foot with it... E.g.:

" Any other exception causes a silent and perhaps mysterious failure of the process."

"no check is made that the item refers to a directory rather than a file."

" If this import fails with an ImportError or its subclass exception, and the exception’s name attribute equals 'sitecustomize', it is silently ignored."

https://docs.python.org/3/library/site.html

site — Site-specific configuration hook

Source code: Lib/site.py This module is automatically imported during initialization. The automatic import can be suppressed using the interpreter’s-S option. Importing this module normally appends...

Python documentation
LinkedIn, in a nutshell

Wrote a little about my RISC-V Linux kernel cross-compilation setup: https://big-grey.co.uk/2026/01/24/risc-v-linux-kernel-cross-compilation-setup/

It's a tutorial-ish outline of getting set up to cross-compile the Linux kernel for the Starfive VisionFive 2. Would certainly appreciate suggested improvements to the process!

RISC-V Linux kernel cross-compilation setup

I’ve recently been building kernels for the VisionFive 2. I started out by using the native toolchain on the device, and got through a few development iterations that way, but it was painfull…

Graham Markall

RE: https://mas.to/@oblique_strategies/115608807275640636

Conda package maintenance tip of the day

I noticed this whilst doing some archaeology for a bug - I saw a function that passed itself to its callee: https://github.com/numba/numba/pull/839/files#diff-60303214680bd0d025b6df050b0bd6c074c863506d074b26052ac7ecf9d04295L429

(here `array_sum` is the caller, the name is not visible without expanding the diff)

How did I only learn today that you can trivially write a function that returns itself in Python?
I'm having a day of "one line change turns into a whole day troubleshooting session". Noting to my future self that this will always happen when messing with Github Actions workflows!

I just noticed Python's math.nextafter with the steps kwarg seems like a good pedagogical tool for getting a feel for how floating point numbers work and represent values (see screenshot)

Also math.ulp() as a complementary tool:

>>> math.ulp(1.5)
2.220446049250313e-16

>>> math.ulp(1500000)
2.3283064365386963e-10