We saw the essentially two only ways to do Garbage Collection, and we saw their naive disadvantages. I say naive, because we saw the very simplistic implementations. Like anything else in computer sciences, Garbage Collectors are an extremely optimised-(able) tool. Lets give it a quick intuitive thought. Tracing undergoes long pause times, mostly because it […]
Automatic Memory Management

«The undecidability of liveness is a corollary of the halting problem» Richard Jones, Antony Hosking, Eliot Moss; The Garbage Collection Handbook. A point in memory — a cell — is said to be alive if it will be accessed at any time in the future by the mutator — any of the threads of execution […]
Resource Management in perspective: the Heap

How do you deal with memory in Assembly? Well, you basically tell the processor to access this field in memory, and don’t tell the processor to access this other one. As I mentioned last time, from a traditional perspective memory can be managed manually or automatically. The assembly idea is where C builds onto, with added […]
Everybody does Resource Management

«C programmers think memory management is too important to be left to the computer. Lisp programmers think memory management is too important to be left to the user.»
On Syntax and Semantics, or what Python didn’t get right

Some time ago, perhaps even as far as a year ago, I was just starting to watch conferences and lectures in my extensively useful youtube account, on topics like λ‑Calculus or Category Theory, when on a conference by Bartosz Milewski on Categories, he threw a brilliant sentence, that speaks something like this: «Humans shouldn’t downgrade […]
What have I learnt from installing Linux on my new laptop

A few points about my experience buying a new laptop and going experimental the whole road, with linux.
The life and death of a piece of code

How is code born? What do good developers look for when they write their code? The development of a system can be measured by its trade-offs. Some systems cannot be slow, some others cannot fail, some others cannot be too expensive. All systems want to have everything, obviously. But they cannot, obviously. Before we study […]
Processors, Part Three: the Future. New models.
If one big complex thread being executed too fast is risky as we saw, because there’s a physical limit to sheer clock speed and cheating optimisations are unsafe, then, we all know the other option: what about doing many simple and small things independently? To put it differently: if we cannot make the clock any […]
Processors, Part Two: the Present. Meltdown and Spectre

Imagine a restaurant. A professional chef, in charge of the best pizzas in town, and nobody knows how’re they done. It’s such a secret, those magic ingredients. And imagine a bunch of apprentices, supposed to help him. Imagine them following the chef’s orders. And then see, the chef going to the fridge to take some […]
Paris, the fourth

My fourth visit to Paris since this blog started with the first – and finally one from which I got a reasonable amount of drawings!