Archive — Coding

March 2024

Compiler Explorer, LLC
A small update on the status of CE

June 2022

Happy 10th Birthday Compiler Explorer!
Wishing Compiler Explorer a very happy tenth birthday

January 2021

C++ and passing by value
Some thoughts on passing by value versus reference

September 2019

CppCon 2019 Trip Report
All the best things that happened at CppCon 2019

August 2018

Compiler Explorer's new state storage
Some notes on Compiler Explorer's new storage

July 2018

A European Vacation
Some time away, a talk at Avast, and a new job tomorrow!

May 2018

C++Now - trip report
A last-minute decision to head to C++Now ends up with an even-more last-minute talk

March 2018

March update
Compiler Explorer logo and shop, and more videos

February 2018

Some YouTube videos
Some videos I've uploaded to YouTube

October 2017

CppCon 2017 Trip Report
My experiences at my first C++ conference

January 2017

Compiler Explorer is now on Patreon!
I finally accept that maybe some financial help would be useful

November 2016

Compiler Explorer's embedded view
A new feature in Compiler Explorer: embedded views

September 2016

How it works: Compiler Explorer
I explain how Compiler Explorer runs on Amazon's cloud computing infrastructure

February 2016

Inside the Ivy Bridge and Haswell BTB
In which I apply what I've learned about BTBs to Ivy Bridge and Haswell
Branch Target Buffer, part 2
How many tag bits are used in the Arrendale BTB?
The BTB in contemporary Intel chips
Inside the Arrendale Branch Target Buffer
Branch prediction - part two
First results of BPU behaviour
Static branch prediction on newer Intel processors
Embarking on a branch prediction odyssey

June 2015

Traits and trait objects
Learning more about the guts of Rust
What abuse of compute resources looks like
What happens if you use work's computer resources
Error handling in Rust
A pattern for handling errors in Rust
Further notes on Rust: a second look
After further experimentation with my path tracer, I hit some first issues

May 2015

zindex - index and search large gzipped files quickly
Introducing a gzip searching tool, zindex
The runtime performance of Rust for a simple path tracer
Some notes on Rust performance
Two commutes with Rust
Note and thoughts on Rust, having spent a couple of commutes playing with it
Leaks in javascript
Debugging GCC Explorer's javascript memory leaks
GCC 5.1 on GCC Explorer
More compilers!

March 2015

Seasocks - a quick and easy websocket server in C++
Drawing attention to an open source project of mine

February 2015

Even more compilers for GCC explorer
Yup, even more compilers
Announcing new compilers for GCC Explorer
Yup, more compilers
Experiences with Docker and GCC Explorer
Musings on Docker

December 2014

GCC Explorer's top 10 compilers
Wondering which compilers I can retire from GCC Explorer

June 2014

Elite's crazy tokenised string routine
In which I lift the lid on BBC classic Elite and its text handling
jsbeeb Part Four - IRQs and timers
Emulating a 6502's interrupt behaviour

May 2014

jsbeeb Part Three - 6502 CPU timings
How to get 6502 CPU timings just right when emulating
Emulating a BBC Micro in Javascript - Part Two
More notes on what goes on when you emulate a BBC Micro computer in javascript
Emulating a BBC Micro in Javascript
Some notes on what goes on when you emulate a BBC Micro computer in javascript

March 2014

jsbeeb - a Javascript BBC Micro emulator
Announcing a Javascript BBC Model B Microcomputer emulator

December 2012

!FinalLook - a RISC OS 3.1 hack explained
A trip down memory lane to a hack for RISC OS 3.1 I wrote at University

September 2012

Forcing code out of line in GCC and C++11
A way of ensuring non-hot code is taken out of line in GCC, using C++11 lambdas

June 2012

GCC Explorer - progress update
What's changed since the launch

May 2012

GCC Explorer - an interactive take on compilation
Introducing a new way to stare at the disassembly of your compiled C and C++

August 2011

Vim's quickfix and GCC 4.5
Getting GCC 4.5's error messages parsing in vim 7.3

July 2011

An update to Miracle
An update on Miracle, the Javascript Sega Master System Emulator

February 2011

Introducing Miracle
A Sega Master System emulator in JavaScript

July 2009

Solving the threading problem in WinInet
One possible solution to the problem of cancelling a WinInet request in a thread-safe manner.
Threading issues in the Windows Internet API
A problem with threading that looks simple but turns out to be a headache.

September 2008

Samba PDC problems after changing server IP
A strange problem with Samba PDCs if their IP addresses change.

August 2008

Another weekend and some more data recovery
More fiddling in trying to get NTFS disk data back for my Dad.
Comments on hacking about with stacks
Justin's comments on my investigation of the processor stacks on Windows and Linux.
Hacking about with stacks
An investigation of the processor stacks on Windows and Linux.

July 2008

How to make a pure virtual call
More of an anti-pattern than a how to - avoiding and/or diagnosing pure virtual function calls.
IO Completion Ports - the UNIX equivalents
In which we learn the UNIX equivalents of IOCPs.
IO Completion Ports
One of the better features in Windows. Sadly, very awkward to use correctly.

June 2008

LCD screen hackery
Some ideas on improving the LCD display on the Weebox.

April 2008

The C library's strcmp routine is badly named
My thoughts on the ill-named strcmp function.

February 2008

Launching a debugger automatically
Automatically launching the debugger for a particular executable.
Things I didn't know about Visual Studio's Debugger
Discussing debugger pseudovariables for accessing GetLastError return values.

December 2007

Strict aliasing in C
It's not OK anymore to cast willy nilly in C++. Well, it never was. But it's less so now.
C++ header dependency tricks
Some tricks for reducing dependencies and hence compile times in C++.

November 2007

Ambiguous function overloading in C++
C++ function overload resolution can be rather inscrutable. I try and make sense of a particular case.
The three way handshake of understanding
IRBasic - object-oriented BASIC
An object-oriented BBC BASIC.
More on BASIC line numbers
More on the BBC BASIC binary line number encoding.
BBC BASIC binary line number format
A further look at BBC BASIC's in-memory format, specifically the line numbers.
BBC BASIC V file format
Exploring the BBC BASIC V file format. It's pretty damned clever.
List comprensions in Perl using map {}
A quick comparison of list processing in Perl and Python
List comprehensions in Python
The coolest thing in Python --- list comprehensions.
More things I didn't know about Python
Conditional expressions in Python 2.5
HTML scraping in Python
Discussing a couple of Python libraries designed for parsing real world websites.
Easy Installation with ez_setup
ez_setup: the quick and easy way to install new python libraries.
Python sqlite3 gotchas
A caveat for sqlite3 in Python - if your databases don't fill with data, this might be why.

April 2007

Samba & LDAP

September 2006

IncludeManager released!

February 2006

Godbolt's Second Law

September 2005

ProFactor StyleManager

April 2005

Godbolt's Law

June 2004

Floating point

March 2004

Driving me NATty

About Matt Godbolt

Matt Godbolt is a C++ developer working in Chicago for Aquatic. Follow him on Mastodon.