About:

Miguel Young de la Sota is a programmer with interests in low-level computing and cryptography, who enjoys digital art and various hobbies like baking and biking.

Website:

Specializations:

Interests:

Compilers Linkers Operating systems Runtimes Allocators Security Cryptography

Incoming Links:

Subscribe to RSS:
The author critiques the C++ standard library, highlighting its flaws and limitations, particularly in its associative containers and APIs. They express frustration with the language's design and propose a new library, 'best', whi...
The article discusses Static Single Assignment (SSA) form, a crucial concept in compiler design that simplifies program analysis and optimization. It explains how SSA allows each variable to be assigned exactly once, facilitating ...
The blog post discusses the author's new library, hyperpb, which optimizes Protobuf parsing in Go by incorporating various performance enhancements from UPB, a C-based Protobuf parser. It highlights the challenges of Go's C FFI, t...
The article discusses the Go programming language's special syntax for directives, particularly focusing on the //go:nosplit directive. This directive indicates that a function should omit its usual stack overflow check, which can...
The blog post discusses the peculiarities and challenges of Go's interface system, particularly its structural typing approach. It highlights issues such as the lack of intentionality in implementing interfaces, the complications ...
The text discusses the use of buf convert and protoscope tools for examining wire format dumps in Protobuf, a binary format, by converting them to JSON and using existing JSON analysis tooling. It explains how to use buf convert t...
The text discusses the dangers of using enum aliases in Protobuf, which can lead to confusion and breakage in the code. It explains how enum values can have aliases and the potential issues that can arise from using them, such as ...
The text discusses the use of import public and import weak in Protobuf, explaining their intended use and why they should be avoided. It also mentions the Buf lint rules IMPORT_NO_PUBLIC and IMPORT_NO_WEAK that enforce this.
The text explains the concept of target triples in cross-compiling, focusing on the history, conventions, and naming of target triples. It discusses the role of LLVM in setting the standards for target triples and the complexities...
The article discusses the importance of compression in Protobuf, explaining how compression technology has made wire size tradeoffs less important. It compares the use of variable-width integers and fixed-width integers in Protobu...
The text discusses the design decisions of Go, particularly its memory management and garbage collection. It explains how to build an untyped, garbage-collected arena abstraction in Go and the challenges of manual memory managemen...
The text discusses the use of enums in Protobuf, highlighting the issues inherited from C++ and the need for prefixes and zero values. It also explains the importance of naming conventions and the challenges of fixing style mistak...
The text discusses the challenges of fixing mistakes in Protobuf's distributed nature, and the risks associated with making changes to Protobuf types. It emphasizes the importance of accepting that some things aren't worth fixing....
The text discusses the importance of not renaming fields in Protobuf, as it can lead to bugs and breakages. It explains that the wire format serialization does not depend on the names of the fields, but renaming can still be a bre...
The text discusses the importance of code formatting and the challenges associated with it. It explains the need for formatters, the problems with the AST representation of code, and the difficulties in determining the width of co...
The text discusses various implementation details of Go, including type layouts, slices, strings, dynamic arrays with reflection, codegen for interface operations, function pointers, and indirect interfaces. It also delves into th...
The article discusses the details of JSON’s design, how it’s used (and misused), and how seemingly helpful “human readability” features cause headaches instead. JSON is famously simple, but the formal definition is quite complicat...
The text discusses the similarities and differences between anonymous function expressions in Rust and C++. It explores the limitations of Rust closures and proposes a workaround using SAM traits. It also compares Java's anonymous...
The text discusses the core of polymorphism in Rust, focusing on traits and their methods. It highlights the potential hazards of traits and the need for a disambiguation mechanism. The author also proposes a syntax for qualified ...
The text discusses the concept of atomicless concurrency and how to build a CPU-local data structure on modern Linux. It explains the use of futexes and restartable sequences as kernel primitives for concurrency. It also details t...
The text discusses the implementation of std::tuple in C++ and the challenges involved in doing so. It covers the use of lambdas, the implementation of constructors, destructors, copy and move operations, and the std::apply and st...
The text discusses the Alkyne scripting language and its garbage collector. It provides an introduction to memory allocators and is intended for people familiar with low-level programming. The Alkyne GC is designed to manage a fix...
The text discusses the concept of assembly language, its reputation, and its relevance to programmers. It explains the basics of assembly language, its syntax, and the types of instructions available. The author also discusses the...
The text provides a detailed explanation of linker scripts, which are used in low-level software to organize code from input objects. It explains the role of the linker in the toolchain and the process of linking object files into...