Headius - blog.headius.com - Headius
General Information:
Latest News:
The Pain of Broken Subprocess Management on JDK 7 Jun 2013 | 02:00 pm
I prefer to write happy posts...I really do. But tonight I'm completely defeated by the JDK's implementation of subprocess launching, and I need to tell the world why. JRuby has always strived to mim...
On Languages, VMs, Optimization, and the Way of the World 11 May 2013 | 03:10 pm
I shouldn't be up this late, but I've been doing lots of thinking and exploring tonight. In studying various VMs over the past few years, I've come up with a list of do's and don't that make things o...
Constant and Global Optimization in JRuby 1.7.1 and 1.7.2 5 Jan 2013 | 09:47 pm
With every JRuby release, there's always at least a handful of optimizations. They range from tiny improvements in the compiler to perf-aware rewrites of core class methods, but they're almost always ...
Refining Ruby 19 Nov 2012 | 11:36 pm
What does the following code do? If you answered "it upcases two strings and adds them together, returning the result" you might be wrong because of a new Ruby feature called "refinements". Let's st...
So You Want To Optimize Ruby 15 Oct 2012 | 11:40 pm
I was recently asked for a list of "hard problems" a Ruby implementation really needs to solve before reporting benchmark numbers. You know...the sort of problems that might invalidate early perf numb...
Explanation of Warnings From MRI's Test Suite 27 Sep 2012 | 02:06 am
JRuby has, for some time now, run the same test suite as MRI (C Ruby, Matz's Ruby). Because not all tests pass, we use minitest-excludes to mask out the failures, and over time we unmask stuff as we f...
An experiment in static compilation of Ruby: FASTRUBY! 17 Sep 2012 | 09:46 am
While at GoGaRuCo this weekend, I finally made good on an experiment I had been thinking about for a while: a static compiler for Ruby. I thought I'd share it with you good people today. First we hav...
Avoiding Hash Lookups in a Ruby Implementation 4 Sep 2012 | 01:02 pm
I had an interesting realization tonight: I'm terrified of hash tables. Specifically, my work on JRuby (and even more directly, my work optimizing JRuby) has made me terrified to ever consider using a...
Why Clojure Doesn't Need Invokedynamic (Unless You Want It to be More Awesome) 15 Oct 2011 | 08:25 am
This was originally posted as a comment on @fogus's blog post "Why Clojure doesn’t need invokedynamic, but it might be nice". I figured it's worth a top-level post here. Ok, there's some good points ...
Invokedynamic in JRuby: Constant Lookup 11 Aug 2011 | 06:00 am
This is the first of a set (not a series...there's no particular order) of articles I'll write on how JRuby is using invokedynamic. Hopefully they will show Rubyists how drastically invokedynamic is g...