10X faster
taking charge of the compiler backend
Folkert de Vries
Roc
a fast, friendly, functional language
Compiler Feedback is Slow
an anecdote from the raspberry pi
Compiler Feedback is Slow
2X sounds like a lot
but does not change my experience
"rust got faster, though"
we don't accept that argumentation elsewhere
memory safety
error messages
package manager
"oh sweet summer child"
The competition is Python
why is python popular?
How can we do better?
"make it work, then make it fast"
does not work
architecture determines performance
Compilers, how do they work
Parse
Sema
Codegen
Link
Engineering Incentives
Parse
Sema
Codegen
Link
LLVM
state of the art code generation,
on all the platforms
LLVM
terrible at debug builds
Our Plan
Parse
Sema
Codegen
Link
vertical integration
Our ... Challenges
The competition is Python
Surgical Linking
recompiled
precompiled
updated binary
The competition is Python
We can compile + run hello world faster than python can print it
Reflections on Rust
Rust deserves fast (re)compiles
Takeaways
be ambitious
(read 12000 page PDFs)
Takeaways
design for performance
orders of magnitude better
Takeaways
build cool things with friends
Expect more from your Tools
Thanks
Custom Assembly Backends
By folkert de vries
Custom Assembly Backends
- 41