Compiler Explorer

JS + Duct tape + Compilers = profit?

gh:@mattgodbolt / tw:@mattgodbolt

What is it?

How it works

  • JS editor widget
  • node.js server API endpoint
  • Display output

OSS

  • golden-layout
  • monaco
  • CodeMirror
  • node.js / express
  • underscore
  • jquery
  • bootstrap
  • lru-cache
  • ...
  • gcc
  • clang
  • go
  • gdc
  • ldc
  • rustc
  • objdump
  • nginx
  • ...

Duct tape

  • Server: 2,300 LoC
  • Client: 3,700 LoC

Deployment

EC2 on AWS

But

  • 40GB of compiler binaries
  • Hours to build and upload images

Solution

Solution

  • Compiler binaries on NFS mount
  • Scripts to update and deploy locally

I've run out of time

  • Building compilers
  • Security
  • Handling load
  • "Zero" downtime

Questions?

https://{d,gcc,go,rust}.godbolt.org
github.com/mattgodbolt/compiler-explorer
@mattgodbolt