Maxime Chevalier Profile Banner
Maxime Chevalier Profile
Maxime Chevalier

@Love2Code

17,557
Followers
302
Following
663
Media
6,060
Statuses

💖 ➞ λ Compiler design PhD working on YJIT, a JIT compiler inside CRuby. Follow me for code reviews, stock picks and dating advice 💖🌈 🇨🇦

Montreal, Canada
Joined November 2011
Don't wanna be here? Send us removal request.
@Love2Code
Maxime Chevalier
5 years
When all you have is gradient descent, everything looks like a differentiable function.
8
127
748
@Love2Code
Maxime Chevalier
1 year
Rust has strengths, but imo, the added cognitive overhead and syntactic noise of having to deal with things like Rc<RefCell<Box<MyType>>> and borrowing vs mutable borrowing are a huge step backwards in terms of usability. Completely sacrifice ergonomics to please the PLT gods.
82
63
740
@Love2Code
Maxime Chevalier
5 months
Understanding C can genuinely help you understand how computers work on a deeper level. Is it the only way? No. But it's an effective way to deepen your understanding. There are fundamental concepts you may never grasp if you've never used a systems language, eg cache locality.
@0xglitchbyte
Glitchbyte
5 months
“You dont need to learn C, I didnt” Anyone telling you that is limiting you in favor of their ego Most of the worlds software is in C/C++ Operating systems, browsers, game engines, your favorite programming language Is most likely written in C/C++ It certainly helps to
132
141
1K
41
49
680
@Love2Code
Maxime Chevalier
3 years
My teammates and I are working on building a Ruby JIT compiler inside MRI at Shopify, and we're hiring. If that sounds interesting to you and you think you might like to work with me on this project, please reach out :) #compilers
17
120
511
@Love2Code
Maxime Chevalier
2 years
Compiler design is like the plumbing of computer science. It's hard work and it's not a "sexy" trendy field but it will never stop being needed.
28
24
458
@Love2Code
Maxime Chevalier
5 years
I've come to realize that feeling useful is a basic human need. When I don't feel like I'm contributing something worthwhile, working on something I truly believe in, I feel terrible. It may seem obvious to you, but I didn't realize this until I was past 30.
18
55
441
@Love2Code
Maxime Chevalier
3 years
How Tesla trains its 100% pure vision self-driving car neural network - Andrej Karpathy at CVPR 2021 Workshop on Autonomous Vehicles - YouTube
0
98
414
@Love2Code
Maxime Chevalier
1 year
Zig is working on implementing its own backend to replace LLVM 🤔 As someone with experience implementing a compiler backend, I think that getting an MVP working is not that hard, but beating LLVM's performance will take a lot of work.
16
43
410
@Love2Code
Maxime Chevalier
4 months
An underrated performance advantage that systems languages have (vs say Java) is the ability to design tightly packed memory layouts. If your program needs to access lots of data, memory bandwidth and cache efficiency starts to matter. In C/Rust, you can make every bit count.
29
26
384
@Love2Code
Maxime Chevalier
5 years
Zupiter: a Web-Based Modular Synthesizer
Tweet media one
7
98
370
@Love2Code
Maxime Chevalier
3 months
I hate it when languages try to be "smart" and return some weird type when I'm expecting an array/list. It's super awkward to have to deal with some LazyWeirdVoodooShitIterator or FunkyWeirdIterable that's not interchangeable with a normal f'ing list.
22
28
377
@Love2Code
Maxime Chevalier
2 years
I'm really excited that our Ruby JIT compiler is now part of Ruby 3.2 & live in production, serving requests all across the world. Thanks Shopify, Ruby & Rails Infrastructure, and Ruby Core for the opportunity to lead a dream team and the support to make all of this possible!
@tobi
tobi lutke
2 years
All storefront requests are now served by the latest version of ruby with YJIT enabled! We are seeing ~10% speedups across the board. YJIT that has been developed by @Love2Code 's and team at Shopify.
Tweet media one
13
90
699
4
26
342
@Love2Code
Maxime Chevalier
2 years
The Tesla Semi according to #stablediffusion
Tweet media one
20
30
321
@Love2Code
Maxime Chevalier
3 months
Functional programming means algebraic thinking. Algebraic thinking requires types to be as interchangeable as possible. Interchangeable types means fewer types. Therefore, functional programming should by definition strive towards minimalism. Fewer types, less complexity.
@Love2Code
Maxime Chevalier
3 months
I hate it when languages try to be "smart" and return some weird type when I'm expecting an array/list. It's super awkward to have to deal with some LazyWeirdVoodooShitIterator or FunkyWeirdIterable that's not interchangeable with a normal f'ing list.
22
28
377
18
24
336
@Love2Code
Maxime Chevalier
3 years
VSCode is becoming an operating system. It has a file browser, a package manager, auto updates, a privilege system (trusted windows) a weird shell (command palette) and the ability to connect to remote machines.
22
29
327
@Love2Code
Maxime Chevalier
3 months
I will not fear. Fear is the code killer. Fear makes you a worse programmer - Julia Evans
8
43
313
@Love2Code
Maxime Chevalier
1 month
The obsession with "memory safety" is annoying 1. How provably safe is your program if it's full of unsafe blocks? 2. There are many other kinds of safety besides "memory safety". Eg you can't claim that your system is "safe" if it can panic at any time
36
32
302
@Love2Code
Maxime Chevalier
3 years
The idea that more data will automatically lead to deep learning outperforming humans is very much cargo cult IMO. Bigger scale isn't always the answer. It's possible that your model, because of its structure, can't make the inferences necessary to solve the problem effectively.
18
21
287
@Love2Code
Maxime Chevalier
2 years
To those who write C++ on a regular basis, do you feel like the language has improved with recent additions or gotten worse? My (outside) impression is that C++ keeps getting more complex and it's not a good thing. AFAIK C++20 modules are still incomplete in GCC and Clang.
119
21
276
@Love2Code
Maxime Chevalier
7 years
People like pseudoscience because contrarily to real science, it requires no effort to understand, and it has an answer to every question.
11
100
275
@Love2Code
Maxime Chevalier
2 years
I'm coding a toy programming language in Rust. Just me and the code. It's nice to write code just for fun. It's going to have a top-down recursive descent parser that will parse a JS-like syntax directly into bytecode, without a lexer, and without building an AST.
10
3
265
@Love2Code
Maxime Chevalier
7 days
Beating the L1 cache with value speculation
2
68
415
@Love2Code
Maxime Chevalier
7 years
"A scientist converts money into ideas. An engineer converts ideas into money." -- Dana Bookbinder
8
142
254
@Love2Code
Maxime Chevalier
9 years
Free Type Theory, Programming Language and Functional Programming Books by steshaw #cs #plt
2
117
252
@Love2Code
Maxime Chevalier
5 years
Bought the audiobook "the 48 laws of power"... Then returned it. Had glowing reviews, but it's a book about how to subtly but efficiently fuck people over while always looking over your shoulder. I can't live my life like that. I don't think it's good for anyone's mental health.
19
21
240
@Love2Code
Maxime Chevalier
8 years
Was hoping to get some verbose output from pkill, ran `pkill -9 -v process_name`. Ho boy.
24
141
235
@Love2Code
Maxime Chevalier
9 months
Took me a while but I managed to get this working on my little VM. A grid that smoothly scrolls towards the camera, with perspective projection, and an HSL sky gradient, compiled by my toy C compiler to UVM's bytecode format, rendering at 160FPS :D Cue Tron Legacy - The Grid
Tweet media one
8
4
221
@Love2Code
Maxime Chevalier
9 months
Our paper on YJIT, the basic block versioning JIT compiler we built and merged into CRuby at @ShopifyEng is now freely available :)
6
60
203
@Love2Code
Maxime Chevalier
7 years
New prototype of my LED wake up light. Gradually fades in. Controlled by an ESP8266 wifi microcontroller :)
Tweet media one
14
20
192
@Love2Code
Maxime Chevalier
8 months
@ylecun @cdossman You're making the wrong comparison. Genome encodes structure and initialization. The structure of an LLM is encoded by its source code, which can fit in only a few tens of kilobytes. Also, chimps may not have our language skills, but they're incredibly smart.
5
2
186
@Love2Code
Maxime Chevalier
2 years
Tiny renderer or how OpenGL works: software rendering in 500 lines of code - Dmitry V. Sokolov -
2
29
189
@Love2Code
Maxime Chevalier
2 months
I've been getting the sense, talking to people, that users are updating to the latest Ruby so they can use YJIT and get associated performance gains. A few years ago, it was common to be several Ruby versions behind. Now big companies are on the latest. Performance is a feature!
2
24
181
@Love2Code
Maxime Chevalier
7 years
ZetaVM, my new compiler project
Tweet media one
7
64
172
@Love2Code
Maxime Chevalier
3 years
Nick Bostrom popularized a thought experiment where an AI is tasked to maximize production of paperclips, consumes the known universe in the process. ... Just replace paperclips with crypto. A huge chunk of the silicon produced by TSMC is going into GPUs for crypto mining.
10
28
170
@Love2Code
Maxime Chevalier
1 year
Thanks to the sustained hard work of my teammates on the YJIT team and in Ruby & Rails Infrastructure, we've been able to speed up end-to-end request times on Shopify's StoreFront Renderer (SFR) by as much as 17% on average, and even the p99 request time is faster! @ShopifyEng
Tweet media one
4
25
168
@Love2Code
Maxime Chevalier
3 years
Why that's exactly the kind of cable I need, a computer cable!
Tweet media one
14
9
168
@Love2Code
Maxime Chevalier
4 months
The idea that all programming will soon be automated by AI, so we don't need teach programming, or care about code complexity, fixing problems, etc... It's a bit like thinking, AI will soon be generating all content, so no need to write or learn critical thinking? Just consume.
10
16
166
@Love2Code
Maxime Chevalier
3 years
When in doubt, use printf()
5
5
158
@Love2Code
Maxime Chevalier
3 years
Excited to be giving a talk at @RubyConf in Denver next month!
Tweet media one
2
11
160
@Love2Code
Maxime Chevalier
5 years
Users keep reporting issues running my gridworld headlessly on clusters due to the PyQT dependency, so I'm building a renderer using NumPy only. No more PyQT, and no xvfb needed to produce an rgb array. Still 1200+ FPS with one thread 👌. #minimalism
10
21
151
@Love2Code
Maxime Chevalier
3 years
I feel like there could be a market for a premium brand of Linux laptops. Slightly higher cost for high quality hardware, good battery life, with Linux and development tools preinstalled, known working drivers and config, no bloatware. Something pragmatic, for professional devs.
23
8
152
@Love2Code
Maxime Chevalier
6 years
Code that I wrote on a machine with Python 3.5 doesn't run on machines with Python 3.4. They added new unpacking syntax in 3.5 which I had been relying on. Getting Python code to run reliably everywhere is an effing nightmare, and it's because of things like this.
23
32
148
@Love2Code
Maxime Chevalier
1 year
During my PhD, there's one specific paper that got rejected 3 times before being accepted. Each iteration, me and my advisor spent 4 to 6 months working on. We worked hard, believed in our work, reviews seemed unfair. I cried every single time that paper got rejected.
6
1
150
@Love2Code
Maxime Chevalier
6 years
Am I the only one who misses the more lighthearted sci-fi shows of the past (eg: Stargate, TNG)? Seems nowadays everything has to be dark, gritty and depressing. Me, I think there's enough drama in the real world, I don't really need fictional shit to worry about.
29
13
143
@Love2Code
Maxime Chevalier
4 years
We have no way to inspect modern CPUs for hardware backdoors as they are way too small/complex, but I was thinking: if you could fab a simple 32-bit RISC-V chip with an older process, with a single silicon layer, it might be possible to inspect it with a plain microscope.
20
12
142
@Love2Code
Maxime Chevalier
5 years
Seems to me unless you're pasting data from the same program you copied it from, "paste without formatting" should probably be the default. You should have users right-click for "paste with formatting" instead.
7
13
140
@Love2Code
Maxime Chevalier
8 months
When it comes to interpreters/CPUs/VMs, I often see people mixing up the definition of "instruction" and "opcode". An opcode is the kind of operation you want to perform (e.g. add). An instruction includes an opcode and potentially multiple operands (arguments).
1
7
139
@Love2Code
Maxime Chevalier
8 months
Yann LeCun fails to appreciate how much complexity can be encoded in a relatively small program. Needs to watch a few 64KB demos and come back:
@ylecun
Yann LeCun
8 months
@cdossman I'm not. There just isn't enough capacity in the genome. Your entire genome fits in 800MB (uncompressed). The difference between the human and chimp genomes is 1% of that, or 8MB. Not enough to encode a significant structure. For comparison, a small 7B LLM requires 14GB.
139
77
1K
14
6
142
@Love2Code
Maxime Chevalier
2 years
@tobi I was secretly hoping you'd publicly announce it so I could tell my friends and celebrate this a little bit during the holiday ^_^ Thanks for creating a culture that supports risky bets Tobi! :)
3
5
137
@Love2Code
Maxime Chevalier
4 months
Arc and Mutex in Rust - It's all about the bit
4
16
135
@Love2Code
Maxime Chevalier
4 years
People act like the rise of locked-in computing ecosystems is inevitable. It's not inevitable if you do something about it. There will always be a need for open systems, both for developers, and for businesses who don't want vendor lock-in or price gouging.
3
17
130
@Love2Code
Maxime Chevalier
8 years
Last week was one of the most stressful weeks of my life, but I've just completed an important step. I defended my thesis. I got my PhD!
21
0
136
@Love2Code
Maxime Chevalier
8 years
Paper by Wu & Tian on a deep neural network that plays Doom (PDF) -
1
59
136
@Love2Code
Maxime Chevalier
4 years
I'm working on a programming language slash IDE for sound synthesis (similar vein to csound/supercollider), and I was wondering if you guys could help me find a cool name for it. Please reply with ideas :)
87
18
132
@Love2Code
Maxime Chevalier
6 years
I’ve used this sound card for over 17 years. Bought it on September 11, 2001 and carried it from one computer upgrade to another. Sadly now switching to a motherboard that doesn’t have PCI slots! I hope the onboard sound on this one isn’t as noisy as it usually is.
Tweet media one
19
3
128
@Love2Code
Maxime Chevalier
2 years
Once we get to the point where machines can design machines, they're quickly going to evolve into something we can no longer understand (or troubleshoot). We'd better be god damn sure we didn't leave any bugs in the code... Good thing humans are so good at writing bug-free code.
15
16
127
@Love2Code
Maxime Chevalier
7 years
The Matrix Cookbook - a collection of facts, identities, and approximations about matrices (PDF document)
1
36
125
@Love2Code
Maxime Chevalier
3 years
Finally got this working OK. Beat detection with aubio running on a Raspberry Pi 4B, and an Enttec OpenDMX to control small RGBW fixtures :)
8
3
123
@Love2Code
Maxime Chevalier
5 years
Robot based on Nvidia Jetson is now mobile!
1
9
124
@Love2Code
Maxime Chevalier
6 years
Decided to buy a Tesla. This one was right in my price range!
Tweet media one
5
16
121
@Love2Code
Maxime Chevalier
3 years
Making CPUs happy :)
Tweet media one
1
9
123
@Love2Code
Maxime Chevalier
2 years
Many people seem to have this cynical attitude that if you can't immediately beat the state of the art, it's not worth doing. That attitude is completely idiotic and anti-progress.
8
9
122
@Love2Code
Maxime Chevalier
4 years
A Deep Introduction to JIT Compilers: JITs are not very Just-in-time - Carol's Blog
0
32
124
@Love2Code
Maxime Chevalier
7 years
How do #compilers optimize (integer) divisions? — fcd
6
73
118
@Love2Code
Maxime Chevalier
5 years
Today’s accomplishment: getting a Jetson Nano to run stably off of lithium ion cells. Most of the buck converters I tried didn’t cut it. Chinese parts off ebay tend to exaggerate their specs.
3
12
115
@Love2Code
Maxime Chevalier
6 years
x86-64 Assembly Language Programming with Ubuntu (free PDF textbook) #compilers
2
39
118
@Love2Code
Maxime Chevalier
7 years
Crafting Interpreters - A handbook for making programming languages
0
29
114
@Love2Code
Maxime Chevalier
8 months
The Danger of Atomic Operations - abseil #systems
3
28
116
@Love2Code
Maxime Chevalier
2 years
I've been writing a toy C compiler for fun, and the Compiler Explorer tool is a godsend. Thanks @alanwusx for introducing me to this great tool! :)
4
12
117
@Love2Code
Maxime Chevalier
7 years
I need a t-shirt that says "smooth operator", and has a plot of f(x) = tanh(x). Please someone design this if you have the time :)
6
32
116
@Love2Code
Maxime Chevalier
6 months
Nobody should ever buy wifi-connected appliances.
@Johnie
Johnie
6 months
WTF! Why is my LG Washing Machine using 3.6GB of data/day?
Tweet media one
2K
4K
60K
4
11
113
@Love2Code
Maxime Chevalier
5 years
Bought a stationary bike and was horrified to find after assembling it that you need to sign up for a paying monthly subscription to "activate" it. You can cancel after, but they make it hard, and they force you to enter your CC number to get the bike working. Scammy as fuck.
18
27
101
@Love2Code
Maxime Chevalier
9 years
ASCII fluid dynamics demo - IOCCC2012 - endoh1.c - YouTube
1
130
110
@Love2Code
Maxime Chevalier
9 years
Want to Write a Compiler? Just Read These Two Papers. - prog21 #compilers
0
22
108
@Love2Code
Maxime Chevalier
4 years
My label printer kept killing batteries while not in use so I fixed that flaw with a hardware switch 👌
Tweet media one
3
2
106
@Love2Code
Maxime Chevalier
3 years
I'll be giving a talk about YJIT next month at the upcoming @rubykaigi 2021 virtual conference! @ShopifyEng
Tweet media one
1
18
105
@Love2Code
Maxime Chevalier
8 years
Shit. I won the auction. Now what the fuck am I going to do with this?
Tweet media one
35
3
104
@Love2Code
Maxime Chevalier
3 years
I used to be kind of addicted to YouTube, watching way too many videos everyday, but the recommendation algorithm is so terrible, always re-feeding you more of the same, that the problem seems to have taken care of itself. I open up the app and instantly feel bored.
8
1
105
@Love2Code
Maxime Chevalier
4 years
I got an electrician to come do the wiring so I can have a permanently installed disco ball in my living room. There's a switch on the wall controlling the motor and an RGB LED projector. The motor is embedded into the ceiling 🕺💃
6
3
102
@Love2Code
Maxime Chevalier
5 years
Google Maps keeps informing me that my daily walk to work is a 3 minute drive, with no traffic. I guess people in Mountain View can't imagine walking places.
9
2
101
@Love2Code
Maxime Chevalier
2 years
How Atari 2600's Pitfall Game Represents its World with One Single Byte #gamedev
0
21
101
@Love2Code
Maxime Chevalier
9 years
Your idea, it's been done before, in Smalltalk or Lisp back in 1973, but unfortunately they lost magnetic tape the source code was on.
3
90
95
@Love2Code
Maxime Chevalier
8 years
My PhD thesis is now online: On the Fly Type Specialization without Type Analysis (PDF) ^_^ #compilers
5
23
95
@Love2Code
Maxime Chevalier
6 years
@ecuageek @InsideEVs @elonmusk "No, it's an electric car. The gasoline is just for the flamethrower."
0
0
97
@Love2Code
Maxime Chevalier
3 months
@AgileJebrim I feel like this is terrible on multiple levels. This is not code that ever needs to be optimized for performance, and doing SIMD intrinsics by hand should be reserved for the most performance-critical kernels.
11
2
100