On the Boundaries of Final
A deep dive into JEP 500 and the Java Memory Model to understand the formal boundaries of 'final'. We examine JLS §17, unsafe publication, and why immutable fields can still appear mutable in concurrent environments.
A deep dive into JEP 500 and the Java Memory Model to understand the formal boundaries of 'final'. We examine JLS §17, unsafe publication, and why immutable fields can still appear mutable in concurrent environments.
Modern GCs often waste cycles moving objects that are reachable but effectively dead. We introduce Mark-Scavenge, a novel algorithm for ZGC that delays evacuation to let 'trash take itself out,' reducing dead object relocation by up to 91%.
Signed integer overflow is Undefined Behavior in C. We examine how compilers like GCC leverage this specification to silently optimize away manual safety checks, potentially turning robust logic into critical security vulnerabilities.
An exploration of type system soundness. We demonstrate how TypeScript's design goal of JavaScript compatibility necessitates intentional unsoundness, allowing validly compiled code to violate its own type definitions at runtime.