What's New in Compiler Explorer? - Matt Godbolt - C++ on Sea 2023
Vložit
- čas přidán 1. 09. 2023
- cpponsea.uk/
---
What's New in Compiler Explorer? - Matt Godbolt - C++ on Sea 2023
Compiler Explorer is a well-known website for exploring C++ code and the output of the compiler. However, it contains many features that you may not be aware of.
In this talk, we'll explore some of the newer features of Compiler Explorer (and revisit some old ones you may not be aware of), and see why they're useful. There will be live demos of each feature.
Did you know, for example, you can supply input to programs you execute? Or that you can see a Control Flow Graph of your program? Or even emulate a BBC Micro?
---
Slides: github.com/philsquared/cppons...
Sponsored By think-cell: www.think-cell.com/en/
---
Matt Godbolt
I'm a C++ developer who's passionate about the seemingly opposite goals of good, readable code and high performance code. I love taking the lid off and looking underneath, be it the compiler, the operating system, or even the silicon that runs everything.
By day I write software for quantitative trading company Aquatic. By night I hack on hobby projects ranging from emulating old computers in your browser to compiler exploration tools.
---
C++ on Sea is an annual C++ and coding conference, in Folkestone, in the UK.
- Annual C++ on Sea, C++ conference: cpponsea.uk/
- 2023 Program: cpponsea.uk/2023/schedule/
- Twitter: / cpponsea
---
CZcams Videos Filmed, Edited & Optimised by Digital Medium: events.digital-medium.co.uk
#cpp #cpponsea #compiler - Věda a technologie
What I absolutely love about compiler explorer, is that I tend to use it exactly like I use the python repl. Just fire it and experiment away. The fact that it is a very low commitment (zero setup required, no ide needed, can link code to other people) and that I instantly see the feedback, is exactly what the cpp world needed. Thanks Matt!
this is just the most phenomenal tool. i cannot believe that any professional programmer can work effectively without it.
Well, most programmers have the luxury of targeting incredibly fast computers operated by users who don't care all that much about performance, and simply having -O3 works for them.
I couldn't stop saying 'WOW' while I was watching this. This is mindblowing. 🚀👍💪
Pleased to receive your comment describing how much you valued this presentation. Great to hear!
The "Add new..." was breakthrough from me. I was lost in the new version of the explorer but now I understand how to use it
Fantastic tool! Thanks Matt (and the team).
I love the 6502 "touch". BTW I prefer an Apple II over the BBC 😋
Apple II is ace too, just not part of my childhood! I've never touched an Apple II, sadly, so it doesn't have the same feeling for me.
Okay, the 6502 emulator sounds like a really cool thing, but it doesn't appear for me and there's no link for whatever that code was nor are the slides up. Weirder still is that I can't target the 6502 if I select assembly from the language dropdown. Also, if Matt sees this comment, how about adding some other assemblers to the list, because as much as I love nasm I'd really like to be able to try out fasm and masm for a comparison and it might be cool for historical purposes to have tasm. I just hope that if someone decides in the future that they want to write an assembler that they don't name it [a-z]asm and go for something creative.
Seriously good work.
Great talk.
I was always wondering about that parsing step. It's great to see it demonstrated in Compiler Explorer.
(edit) 6502/6510 old dude too here..
Very pleased to hear that you enjoyed Matt Godbolt's presentation!
Auto vectorization won't work for summing an array of floats, because addtion of floats isn't associative. Understanding your machine and hand optimizing is still important to many fields
amazing amazing amazing
15:30 was what i needed last week. But i was trying to run a benchmark and quickbench didnt have it. I ended up spending 20 minutes to set up google benchmark locally just to settle an argument.
A lot of your videos all seem to link to the same repository?
Edit: Ok, it just clicked why that is. But still, the only slides that seem to be available are from 1 video (which just so happened to be the first one I watched, which is why I was confused)
Thank you for your comment. We shall attempt to rectify this as soon as possible, to ensure that the Speakers' slides are available.
god like tool for people who cares about performance :)
Mason... is that Mason Murner of M++Meekly fame?
Mmmmmmaybe
If std::accumulate and a for loop generate identical assembly code, why would you ever bother using accumulate? lmao
Because it's more idiomatic. The for loop is full of implementation details, whereas the accumulate is abstract and has less potential for fuck-ups.
@@spaghettiking653 One downside is it really sucks to debug std::algorithms as opposed to "regular" loops.
For loops have a lot of potential footguns. Sometimes they’re still the right thing.