talk · community record
Scala War Stories
In five years of working on the scala compiler, there have been many battlefields where the desired language semantics have been forced to take up arms against the requirements of the jvm. There have been few unqualified victories; most such altercations have resulted in detente at best. This talk will relive some of those. Likely subjects for war stories include: trait encoding, module encoding, access semantics, bridge methods, equals/hashCode semantics, array handling, varargs, namespace mismatch, enumerated types, protected static, package nesting semantics, primitives and generics, contravariance and subtyping, erasure semantics, reflection, and more.