Doing whole tree analysis with Dehydra
Introduction In this post I discuss how I used Dehydra to do analysis of the entire Tracemonkey tree. Note I talk briefly about some Tracemonkey things to motivate what I used Dehydra for, but a...
View ArticleInline threading for TraceMonkey slides
Here are the slides from my end of summer brown-bag presentation: http://www.msully.net/~sully/files/inline_slides.pdf.
View ArticleWhy We Fight
Why We Fight, or Why Your Language Needs A (Good) Memory Model, or The Tragedy Of memory_order_consume’s Unimplementability This, one of the most terrifying technical documents I’ve ever read, is why...
View ArticleForcing memory barriers on other CPUs with mprotect(2)
I have something of an unfortunate fondness for indefensible hacks. Like I discussed in my last post, RCU is a synchronization mechanism that excels at protecting read mostly data. It is a particularly...
View ArticleThe x86 Memory Model
Often I’ve found myself wanting to point someone to a description of the x86’s memory model, but there wasn’t any that quite laid it out the way I wanted. So this is my take on how shared memory works...
View ArticleParallelizing compiles without parallelizing linking – using make
I have to build LLVM and Clang a lot for my research. Clang/LLVM is quite large and takes a long time to build if I don’t use -j8 or so to parallelize the build; but I also quickly discovered that...
View ArticleMicroKanren (μKanren) in Haskell
Our PL reading group read the paper “μKanren: A Minimal Functional Core for Relational Programming” this week. It presents a minimalist logic programming language in Scheme in 39 lines of code. Since...
View ArticleEnd of summer Rust internship slides from 2011-2013
Slides from my end of summer talks for all of my Rust internships. (This post heavily backdated and the slides are hilariously out of date.) 2011 – Closures for Rust 2012 – Vector Reform and Static...
View Article