1 pointby carlos2569 hours ago1 comment
  • theamk2 hours ago
    Author mixes up various layers in this blogpost: language-specific stdlib vs OS behaviour.

    Some of their goals (like "Replace int fd with opaque handles (strong typing)", "Replace errno with result objects", "Make I/O functions return rich error types, not -1.") are specific to a language's standard library implementation. They don't really need big changes, and in fact many newer languages (Python, Go, Rust etc..) already tick most of those boxes.

    "Flat handle space" is _weird_, and seems like implementation detail. If your filehandles are already opaque types, why do you care how are they implemented? Who cares if they are high-valued or low-valued? Except that there is a mention of "not process-local ints" so maybe author wants file handles automatically shared between unrelated processes.. but this goes against the whole "capability" idea...

    Finally, there is "Capabilities replace global namespaces" part, which stands out a lot because its the only one that requires a complete departure from the existing OS'es. Don't get me wrong, it's a great idea, but it's a pretty big departure from the existing status quo.