Skip to content
Development log
Author: patrick
-
Dictation while the key is still down
Holding AltGr streams speech into the transcript as you talk, with the tokens the next chunk may still revise shown dimmed. Proved against the reference implementation token for token before it went near the machine.
-
The browser draws the page
The browser has been emitting a list of headings and paragraphs rather than rendering. Both missing ends now exist, and the one CSS construct that was carrying every real site's design was not implemented.
-
The integer dot that won, and the core farm that did not
Dictation from 4.68 times real time down to 1.38, with two correct optimisations that measured slower than the thing they replaced, and a multi-core encoder that was built, measured and thrown away.
-
Hibernation, and the copy that ran out from under itself
S4 writes memory to disk and reads it back. The restore kept dying in the copy, and the reason was a design error rather than a slip: the frames being restored contain the page tables doing the restoring.
-
Bringing the panel back, and five registers that lied
The machine wakes and the screen stays black. Seventeen documented steps to bring a display pipeline back up, and five registers that each gave a plausible wrong answer.
-
Nothing would wake it, so the firmware's own bytecode had to run
The X1 slept perfectly and nothing would bring it back. Waking it needed the laptop's own firmware procedures to run, which needed an interpreter for ACPI Machine Language.
-
S3 sleep, and the three bugs it found
Suspend to RAM is a deal with the firmware - leave an address behind, and be ready to be re-entered as though the machine had just been switched on. Every bug it exposed was somewhere the kernel already was.
-
A cellular modem in an M.2 slot
The X1 has an integral Fibocom L850-GL. I expected to have to write PPP or SLIP for it, and it turned out to want neither.
-
A self test, a startup sound and a splash screen
Audio is working in both directions, verified by playing and recording at the same time. Which means the machine can finally make a noise when it boots.
-
Bluetooth on the X1, and why isochronous audio is hard
Getting a phone onto the machine over Hands-Free Profile, and then getting a call's audio through it in both directions. The second part was much harder than the first.