The day began with a retrospective on Robin Milner, who passed away a few months back after a life of fundamental work on verification, languages, and concurrency. The session featured invited talks by Bob Harper (CMU), Alan Jeffrey (Bell Labs), Andy Gordon (MSR Redmond), Peter Sewell (University of Cambridge), and John Harrison (Intel).
I skipped the next session as well as the final session of the day in the interests of socializing, since this was after all the final day of POPL, and furthermore, several people were leaving before the end of the day to attend the PLDI PC meeting in Chicago.
The session in between was on compilation, which featured some cool talks: on a convex characterization of loop transformations, and tractable optimization algorithms over this expressive space; and on modular instruction selection. But the most interesting talk for me was on the essence of compiling with traces (by folks at UC Los Angeles). I followed up by wondering whether their theory said anything interesting about type specialization, which is an important application of trace-based JIT compilation: in particular, whether it subsumes or can coexist usefully with type inference. I briefly talked with Jens Palsburg (UC Los Angeles) on this, and thought about it further on my flight back; it would certainly be interesting to dive deeper into this at some point.
In the evening, some of us went to a pub, drinking beer and playing pool; this was followed by a sumptuous BBQ dinner. At some point (triggered by some random conversation), it occurred to me that there may be a relationship between dynamic software updating and concurrency control. Something worth exploring.