Address Your Sanity with AddressSanitizer - Part Three

It took a while for me to get back in the swing of things after I returned from Japan, but I eventually got there. The first step to fixing that use-after-free bug was finding out which test was triggering the failure, which meant building a MoarVM with address sanitation (often referred to as ASan) support.

Read More...
Posted on 2015-12-21

Hunted By a Leak - Part Two

In my previous post, I talked about a slowdown in a Perl 6 process I was fixing, and how I discovered that the cause was really a memory leak. Instead of looking for the memory leak in Proc::Async, I decided to look in run, which also spawns children and exhibited the leak, but works in a synchronous manner. To find the Perl 6 code that was causing the leak, I wrote some code that would call run repeatedly:

Read More...
Posted on 2015-12-15

Tracking Slowdowns in Creating Child Processes - Part One

When I use Perl 5, I do a lot of shelling out to external commands; after all, that's what Perl is good at! So it should come as no surprise that I do the same with Perl 6, which means a lot of the time and effort I spend helping with Perl 6 is improving the interaction with external commands.

Read More...
Posted on 2015-12-08

Intermediate SQL: WHERE vs HAVING

Recently, at Work I gave an introductory SQL tutorial. Since the purpose of the tutorial was to teach SQL for the purpose of answering questions about groupings of data, the tutorial ultimately reached a discussion of WHERE versus HAVING. I thought I'd share the explanation I used in case others felt confused why SQL has two keywords that serve such a similar function.

Read More...
Posted on 2015-04-30

Looking for .git in all the wrong places

Like many of you, I store my dotfiles in Git repos. However, I quickly encountered a problem with this approach: my configurations would often get out of sync between my various machines. Instead of writing a script to check for updates or just being diligent about it, I decided that I would integrate my configurations into something on my machines that check for updates already: the system package manager!

Read More...
Posted on 2015-04-21