Matt Godbolt's blog
Menu
Tags
Amusing Stuff
Blog
Coding
Emulation
Games
Microarchitecture
New Zealand Trip
Personal
Rants
Rust
WeeBox Project
Archive
Amusing Stuff
Blog
Coding
Emulation
Games
Microarchitecture
New Zealand Trip
Personal
Rants
Rust
WeeBox Project
About
About me
Contact me
Archive — Coding
July 2024
MSVC and CE
Microsoft Compilers on Compiler Explorer
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.
October 2007
Things I didn't know about Python, part 1
April 2007
Samba & LDAP
September 2006
IncludeManager released!
August 2006
IncludeManager - a #include graph visualiser
Measuring productivity losses due to long builds
February 2006
Godbolt's Second Law
January 2006
StyleManager 1.04 released
December 2005
CRT Heap Fragmentation in Windows
September 2005
ProFactor StyleManager
July 2005
StyleManager update
June 2005
SCons, VS.NET and VSIP
May 2005
ProFactor announcement - StyleManager
April 2005
Godbolt's Law
January 2005
What were they thinking?
June 2004
Floating point
March 2004
Driving me NATty
About Matt Godbolt
Matt Godbolt
is a C++ developer living in Chicago. Follow him on
Mastodon
or
Bluesky
.