WebAssembly: Mozilla Won (2017)

Mozilla staff are being very diplomatic and restrained by allowing WebAssembly to be portrayed as a compromise between the approaches of asm... | Continue reading


@robert.ocallahan.org | 1 year ago

Discontent on the Web

I just read Sachin Agarwal's post titled "The web sucks. Browsers need to innovate" and my head exploded. But I can see that he's not alone... | Continue reading


@robert.ocallahan.org | 2 years ago

Do We Need a Link Step?

mold looks pretty cool, and a faster drop-in ld replacement is obviously extremely useful. But having no link step at all would be even fa... | Continue reading


@robert.ocallahan.org | 2 years ago

Spectre Mitigations Murder Userspace Performance

I just made a performance improvement to the (single-threaded) rr sources command to cache the results of access system calls checking fo... | Continue reading


@robert.ocallahan.org | 2 years ago

Print Debugging Should Go Away

This is based on a comment I left on HN. Many people prefer print debugging over interactive debugging tools. Some of them seem to have... | Continue reading


@robert.ocallahan.org | 3 years ago

Demoing the Pernosco Omniscient Debugger: Debugging Crashes in Node.js and GDB

This post was written by Pernosco co-founder Kyle Huey. Traditional debugging forms a hypothesis about what is going wrong with the program... | Continue reading


@robert.ocallahan.org | 3 years ago

On–Premises Pernosco now available

In November we announced Pernosco availability for individual developers via our debugging-as-a-service platform. That product requires de... | Continue reading


@robert.ocallahan.org | 3 years ago

Confession Of A C/C++ Programmer (2017)

I've been programming in C and C++ for over 25 years. I have a PhD in Computer Science from a top-ranked program, and I was a Distinguished ... | Continue reading


@robert.ocallahan.org | 3 years ago

Exploiting Precognition in Binary Instrumentation of Rr Replays

This post is part of a series about the rr remix instrumentation engine that powers the Pernosco omniscient debugger . When rr replays a r... | Continue reading


@robert.ocallahan.org | 3 years ago

DOM recording for web application demos

To show off the power of our Pernosco debugger , we wanted many short demo videos of the application interface. Regular videos are relativel... | Continue reading


@robert.ocallahan.org | 3 years ago

Debugging with Screenshots in Pernosco

When debugging graphical applications it can be helpful to see what the application had on screen at a given point in time. A while back we ... | Continue reading


@robert.ocallahan.org | 3 years ago

What Is the Minimal Set of Optimizations Needed for Zero-Cost Abstraction?

A compelling feature of Rust and C++ is "zero-cost abstractions". You can write "high level" code, e.g. using iterators, that compiles down ... | Continue reading


@robert.ocallahan.org | 3 years ago

Why Forking HTML into a Static Language Doesn't Make Sense

Quite often someone proposes something like this: HTML should never have grown into the mutated application runtime it is today. The present... | Continue reading


@robert.ocallahan.org | 3 years ago

Why Forking HTML into a Static Language Doesn't Make Sense

Quite often someone proposes something like this: HTML should never have grown into the mutated application runtime it is today. The present... | Continue reading


@robert.ocallahan.org | 3 years ago

Omniscient JavaScript Debugging in Pernosco

Until recently Pernosco was limited to debugging statically-compiled languages with DWARF debuginfo. Many of our potential customers would ... | Continue reading


@robert.ocallahan.org | 4 years ago

What If C++ Abandoned Backward Compatibility?

Some C++ luminaries have submitted an intriguing paper to the C++ standards committee. The paper presents an ambitious vision to evolve C++... | Continue reading


@robert.ocallahan.org | 4 years ago

Choose Firefox Now, or Later You Won't Get a Choice (2014)

I know it's not the greatest marketing pitch, but it's the truth. Google is bent on establishing platform domination unlike anything we've ... | Continue reading


@robert.ocallahan.org | 4 years ago

Your Debugger Sucks

Author's note : Unfortunately, my tweets and blogs on old-hat themes like "C++ sucks, LOL" get lots of traffic, while my messages about Pern... | Continue reading


@robert.ocallahan.org | 4 years ago

Your Debugger Sucks

Author's note : Unfortunately, my tweets and blogs on old-hat themes like "C++ sucks, LOL" get lots of traffic, while my messages about Pern... | Continue reading


@robert.ocallahan.org | 4 years ago

The Power of Collaborative Debugging

An under-appreciated problem with existing debuggers is that they lack first-class support for collaboration. In large projects a debugging ... | Continue reading


@robert.ocallahan.org | 4 years ago

Pernosco Demo Video

Over the last few years we have kept our work on the Pernosco debugger mostly under wraps, but finally it's time to show the world what we'... | Continue reading


@robert.ocallahan.org | 4 years ago

Pernosco Demo Video: Scalable Omniscient Debugging

Over the last few years we have kept our work on the Pernosco debugger mostly under wraps, but finally it's time to show the world what we'... | Continue reading


@robert.ocallahan.org | 4 years ago

Dissatisfied with Docker

I am not satisfied with Docker. Untrusted users should be able to run their own container instances. Running a basic container instance mean... | Continue reading


@robert.ocallahan.org | 4 years ago

In Praise of Rust's Structopt for Command Line Parsing

I've built a lot of command-line tools over the years, mostly in C or C++, but also in Java, Python, Rust, Turbo Pascal, etc. I mostly rolle... | Continue reading


@robert.ocallahan.org | 4 years ago

Mysteriously Low Hanging Fruit: A Big Improvement to LLD for Rust Debug Builds

LLD is generally much faster than the GNU ld.bfd and ld.gold linkers, so you would think it has been pretty well optimised. You might then ... | Continue reading


@robert.ocallahan.org | 5 years ago

Choose Firefox Now, or Later You Won't Get a Choice (2014)

I know it's not the greatest marketing pitch, but it's the truth. Google is bent on establishing platform domination unlike anything we've ... | Continue reading


@robert.ocallahan.org | 5 years ago

Capitalism, Competition and Microsoft Antitrust Action

Kevin Williamson writes an ode to the benefits of competition and capitalism, one of his themes being the changing fortunes of Apple and Mi... | Continue reading


@robert.ocallahan.org | 5 years ago

Comparing the Quality of Debug Information Produced by Clang and Gcc

I've had an intuition that clang produces generally worse debuginfo than gcc for optimized C++ code. It seems that clang builds have more va... | Continue reading


@robert.ocallahan.org | 5 years ago

Comparing the Quality of Debuginfo generated by clang and gcc

I've had an intuition that clang produces generally worse debuginfo than gcc for optimized C++ code. It seems that clang builds have more va... | Continue reading


@robert.ocallahan.org | 5 years ago

Problems Scaling a Large Multi-Crate Rust Project

Robert O'Callahan. Christian. Repatriate Kiwi. Hacker. | Continue reading


@robert.ocallahan.org | 5 years ago

The Costs of Programming Language Fragmentation

People keep inventing new programming languages. I'm surprised by how many brand-new languages are adopted by more than just their creators,... | Continue reading


@robert.ocallahan.org | 5 years ago

More realistic goals for C++ lifetimes 1.0

Over two years ago I wrote about the C++ Lifetimes proposal and some of my concerns about it. Just recently, version 1.0 was released with... | Continue reading


@robert.ocallahan.org | 5 years ago

Diagnosing a Weak Memory Ordering Bug

For the first time in my life I tracked a real bug's root cause to incorrect usage of weak memory orderings. Until now weak memory bugs were... | Continue reading


@robert.ocallahan.org | 5 years ago

The Parallel Stream Multiplexing Problem

Imagine we have a client and a server. The client wants to create logical connections to the server (think of them as "queries"); the client... | Continue reading


@robert.ocallahan.org | 5 years ago

Why Isn't Debugging Treated as a First-Class Activity?

Mark Côté has published a "vision for engineering workflow at Mozilla": part 2 , part 3 . It sounds really good. These are its points: Chec... | Continue reading


@robert.ocallahan.org | 5 years ago

Intel CPU Bug Affecting Rr Watchpoints

I investigated an rr bug report and discovered an annoying Intel CPU bug that affects rr replay using data watchpoints. It doesn't seem to ... | Continue reading


@robert.ocallahan.org | 5 years ago