liballocs: Meta-level run-time services for Unix processes... a.k.a. dragging Unix into the 1980s

13 points by mccd


muvlon

I'm clearly not smalltalk brained enough to understand what the author is going for.

It feels like this is a bit of support code that lets you query allocation info, and the author tells us that this will allow us to realize all our wildest dreams, but we have to draw the rest of the owl. But I have no idea how to do that.

Corbin

Previously, on Lobsters, we discussed the notion of substrate-dependent computing from the same author.

snej

Original research paper, with lots of implementation details, is here.

agocke

so long as you have debugging information

This will be the core cost. Depending on the language and compiler you're looking at between 2-10x the size of code for debugging info. These costs are the main reason why the Windows ecosystem stopped shipping PDBs with the code decades ago.

As you think about interop, the costs grow. Take C# Native AOT, for example. If you compile all of .NET to native code, you're looking at a binary hundreds of megabytes in size. No different for any "batteries-included" language. In order to get down to reasonable size, you have to trim out the things you don't need. But if your native interop space includes arbitrary introspection, you need to somehow limit the set of things that can be introspected on in order to avoid compiling everything.

But once you start writing code to explicitly decide which code is visible through interop you've lost the point of arbitrary reflection in the first place.