You may know that several of us have been hard at work stamping out invalidations as a way of reducing Julia’s latency. Kristoffer Carlsson and I thought it might be fun to have a contest to do the opposite: see who can come up with truly horrendous methods that obliterate almost everything . There are no prizes other than the fame and glory that come with impressing your colleagues at your devilishness.
For those who haven’t read the blog post, very briefly the goal is to come up with a method definition that would force Julia to recompile a bunch of already-compiled code. Generally, this means creating a method that is more specific than the one that got compiled in. You can read about how you measure invalidations here.
Here are the competition rules:
- the winners will be announced on Friday, Oct 2.
- you must use a released “nightly” binary (https://julialang.org/downloads/nightlies/)
- when we verify your submission, we’ll start from a fresh Julia session that’s only loading
SnoopCompileCore: no cheating by loading a lot of other packages and invalidating their methods, too.
- scoring will be based solely on
- you’re allowed to define new
structs, but your submission rests on the number of invalidations triggered by a single method definition.
- we will award separate prizes for “non-pirating” and “pirating” method definitions. (See definition of type piracy.)
For context, a fresh Julia session contains about 48,000 MethodInstances. See how many of them you can obliterate!