Introduction Unlambda is a venerable part of the esoteric programming languages canon. Billed as Your Functional Programming Language Nightmares Come True”, Unlambda big distinction from most prior esolangs is that it is functional and based on a combinator calculus. Much of the focus on the Unlambda page is on how to implement Unlambda, and it [ ]
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 none of us are really Schemers, a bunch of us quickly set about porting the code to our personal pet languages. Chris Martens [ ]
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 parallelizing the build didn t work either! I work on a laptop with 8gb of RAM [ ]
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 on multiprocessor x86 systems. The guts of this description is adapted/copied from A Better x86 Memory [ ]
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 useful technique in operating system kernels because full control of the scheduler permits many fairly simple and very efficient implementations of RCU. [ ]
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 we fight: https://www.kernel.org/doc/Documentation/RCU/rcu_dereference.txt. Background For background, RCU is a mechanism used heavily in the Linux kernel for locking around read-mostly data…
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 Typeclass Methods 2013 Default Methods in Rust
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 knowledge of Tracemonkey is not required to appreciate the main point of this post. The problem One of the optimizations [ ]