Conference Guide

Compiler Podcast - Episode 2
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:00Opening titles
0:00Opening titles
0:00Opening titles
0:42Abner Coimbre: Welcome to the podcast
0:42Abner Coimbre: Welcome to the podcast
0:42Abner Coimbre: Welcome to the podcast
1:12Andrew Kelley: Hello
1:12Andrew Kelley: Hello
1:12Andrew Kelley: Hello
1:18Ginger Bill: Hello
1:18Ginger Bill: Hello
1:18Ginger Bill: Hello
1:27Mason Remaley: Hello
1:27Mason Remaley: Hello
1:27Mason Remaley: Hello
1:38AC: Briefly introduce Mason
1:38AC: Briefly introduce Mason
1:38AC: Briefly introduce Mason
1:48MR: Way of Rhea1
1:48MR: Way of Rhea1
1:48MR: Way of Rhea1
2:19AC: Assign Mason as our Rust representative
2:19AC: Assign Mason as our Rust representative
2:19AC: Assign Mason as our Rust representative
2:53MR: Discovering and using Rust
2:53MR: Discovering and using Rust
2:53MR: Discovering and using Rust
5:16AC: How do you square the circle of enjoying two languages, Rust and Zig?
5:16AC: How do you square the circle of enjoying two languages, Rust and Zig?
5:16AC: How do you square the circle of enjoying two languages, Rust and Zig?
5:44MR: Advocating for multiple languages
5:44MR: Advocating for multiple languages
5:44MR: Advocating for multiple languages
6:18AC: Racing to replace C & C++
6:18AC: Racing to replace C & C++
6:18AC: Racing to replace C & C++
7:11AK: Making Zig strictly better than C, and possible to incrementally introduce2
7:11AK: Making Zig strictly better than C, and possible to incrementally introduce2
7:11AK: Making Zig strictly better than C, and possible to incrementally introduce2
8:08GB: No sense to replace C, scoping Odin to high performance modern systems programming
8:08GB: No sense to replace C, scoping Odin to high performance modern systems programming
8:08GB: No sense to replace C, scoping Odin to high performance modern systems programming
9:29AK: Scoping Zig to general purpose programming
9:29AK: Scoping Zig to general purpose programming
9:29AK: Scoping Zig to general purpose programming
10:11GB: Caveat Odin as also general-purpose, just for 32-bit and 64-bit platforms
10:11GB: Caveat Odin as also general-purpose, just for 32-bit and 64-bit platforms
10:11GB: Caveat Odin as also general-purpose, just for 32-bit and 64-bit platforms
11:44AC: What industries are Rust permeating?
11:44AC: What industries are Rust permeating?
11:44AC: What industries are Rust permeating?
11:54MR: Rust's potential for security-critical applications
11:54MR: Rust's potential for security-critical applications
11:54MR: Rust's potential for security-critical applications
12:31AC: What do you look for in a co-contributor, for Zig?
12:31AC: What do you look for in a co-contributor, for Zig?
12:31AC: What do you look for in a co-contributor, for Zig?
14:16AK: A desirable co-contributor: Keeping the big picture in mind and teamwork
14:16AK: A desirable co-contributor: Keeping the big picture in mind and teamwork
14:16AK: A desirable co-contributor: Keeping the big picture in mind and teamwork
15:52AC: So a big technical gap may be fine?
15:52AC: So a big technical gap may be fine?
15:52AC: So a big technical gap may be fine?
15:58AK: A student's willingness to learn
15:58AK: A student's willingness to learn
15:58AK: A student's willingness to learn
16:51MR: Willingness to sit down and do the work, to demystify problems
16:51MR: Willingness to sit down and do the work, to demystify problems
16:51MR: Willingness to sit down and do the work, to demystify problems
18:44GB: Range of skill-levels required of compiler development
18:44GB: Range of skill-levels required of compiler development
18:44GB: Range of skill-levels required of compiler development
19:38MR: Drawing on public knowledge
19:38MR: Drawing on public knowledge
19:38MR: Drawing on public knowledge
20:08GB: Semantic checking as the most complicated bit of a compiler
20:08GB: Semantic checking as the most complicated bit of a compiler
20:08GB: Semantic checking as the most complicated bit of a compiler
22:25AC: So semantic checking is where the magic happens?
22:25AC: So semantic checking is where the magic happens?
22:25AC: So semantic checking is where the magic happens?
22:44AK: A desirable co-contributor: Able to read and learn strategies from foreign codebases
22:44AK: A desirable co-contributor: Able to read and learn strategies from foreign codebases
22:44AK: A desirable co-contributor: Able to read and learn strategies from foreign codebases
23:37GB: Reading source code is a valuable skill
23:37GB: Reading source code is a valuable skill
23:37GB: Reading source code is a valuable skill
24:47AK: Reading the Clang codebase to implement Zig's "translate C" feature
24:47AK: Reading the Clang codebase to implement Zig's "translate C" feature
24:47AK: Reading the Clang codebase to implement Zig's "translate C" feature
25:22GB: Learning to write compilers by reading other ones
25:22GB: Learning to write compilers by reading other ones
25:22GB: Learning to write compilers by reading other ones
25:27MR: Getting answers from SDL code
25:27MR: Getting answers from SDL code
25:27MR: Getting answers from SDL code
26:00AC: Exceptions and error handling in general
26:00AC: Exceptions and error handling in general
26:00AC: Exceptions and error handling in general
27:46GB: Usage of exceptions
27:46GB: Usage of exceptions
27:46GB: Usage of exceptions
29:35AC: So it's a problem of user discipline?
29:35AC: So it's a problem of user discipline?
29:35AC: So it's a problem of user discipline?
30:07GB: Usage of exceptions: 1) Culture of passing up the stack
30:07GB: Usage of exceptions: 1) Culture of passing up the stack
30:07GB: Usage of exceptions: 1) Culture of passing up the stack
30:29GB: Usage of exceptions: 2) Treating "errors" as just different code paths
30:29GB: Usage of exceptions: 2) Treating "errors" as just different code paths
30:29GB: Usage of exceptions: 2) Treating "errors" as just different code paths
31:41AC: I don't think Odin supports exceptions
31:41AC: I don't think Odin supports exceptions
31:41AC: I don't think Odin supports exceptions
31:45GB: No exceptions in Odin
31:45GB: No exceptions in Odin
31:45GB: No exceptions in Odin
31:55AK: Is that a British saying, about the cows?
31:55AK: Is that a British saying, about the cows?
31:55AK: Is that a British saying, about the cows?
31:59GB: Yes
31:59GB: Yes
31:59GB: Yes
32:03AK: Pokémon programming
32:03AK: Pokémon programming
32:03AK: Pokémon programming
32:24AK: Error handling in Zig
32:24AK: Error handling in Zig
32:24AK: Error handling in Zig
35:09AC: It sounds like errors in Zig are a first-class thing
35:09AC: It sounds like errors in Zig are a first-class thing
35:09AC: It sounds like errors in Zig are a first-class thing
35:20MR: Popular error handling techniques: Returning error codes
35:20MR: Popular error handling techniques: Returning error codes
35:20MR: Popular error handling techniques: Returning error codes
37:04MR: Popular error handling techniques: Exceptions
37:04MR: Popular error handling techniques: Exceptions
37:04MR: Popular error handling techniques: Exceptions
40:43GB: Swift has a "throw" annotation
40:43GB: Swift has a "throw" annotation
40:43GB: Swift has a "throw" annotation
40:58GB: Zig's error type
40:58GB: Zig's error type
40:58GB: Zig's error type
42:12MR: Exception handling requires code maintaining a self-consistent state
42:12MR: Exception handling requires code maintaining a self-consistent state
42:12MR: Exception handling requires code maintaining a self-consistent state
45:20GB: More structured language construct, e.g. defer
45:20GB: More structured language construct, e.g. defer
45:20GB: More structured language construct, e.g. defer
46:00MR: In C we structure these things manually
46:00MR: In C we structure these things manually
46:00MR: In C we structure these things manually
46:58AC: Some companies disallow "goto"
46:58AC: Some companies disallow "goto"
46:58AC: Some companies disallow "goto"
47:14MR: Error code mismatches without type-safety
47:14MR: Error code mismatches without type-safety
47:14MR: Error code mismatches without type-safety
47:57GB: Odin's structured features implementing people's usage patterns of "goto"
47:57GB: Odin's structured features implementing people's usage patterns of "goto"
47:57GB: Odin's structured features implementing people's usage patterns of "goto"
49:16AC: Let's reduce your arguments on exceptions to a thumbs up / down
49:16AC: Let's reduce your arguments on exceptions to a thumbs up / down
49:16AC: Let's reduce your arguments on exceptions to a thumbs up / down
49:26GB: Thumbs down
49:26GB: Thumbs down
49:26GB: Thumbs down
49:31AK: Praise Walter Bright's humility for saying exceptions were a mistake
49:31AK: Praise Walter Bright's humility for saying exceptions were a mistake
49:31AK: Praise Walter Bright's humility for saying exceptions were a mistake
49:55MR: It takes a lot to change your mind. Thumbs down
49:55MR: It takes a lot to change your mind. Thumbs down
49:55MR: It takes a lot to change your mind. Thumbs down
50:20GB: Without D, Odin wouldn't have "scope exit"
50:20GB: Without D, Odin wouldn't have "scope exit"
50:20GB: Without D, Odin wouldn't have "scope exit"
50:59MR: When to Rewrite3
50:59MR: When to Rewrite3
50:59MR: When to Rewrite3
51:30GB: Virtually none of Odin's ideas are new
51:30GB: Virtually none of Odin's ideas are new
51:30GB: Virtually none of Odin's ideas are new
52:51AC: Inline assembly
52:51AC: Inline assembly
52:51AC: Inline assembly
53:50AK: Inline assembly in Zig
53:50AK: Inline assembly in Zig
53:50AK: Inline assembly in Zig
54:55MR: Rust supports inline assembly
54:55MR: Rust supports inline assembly
54:55MR: Rust supports inline assembly
55:32AC: New inline assembly syntax in Rust4
55:32AC: New inline assembly syntax in Rust4
55:32AC: New inline assembly syntax in Rust4
55:42MR: It is there
55:42MR: It is there
55:42MR: It is there
55:44GB: Rust uses GCC-style opaque string for inline assembly
55:44GB: Rust uses GCC-style opaque string for inline assembly
55:44GB: Rust uses GCC-style opaque string for inline assembly
56:23GB: Inline assembly in Odin
56:23GB: Inline assembly in Odin
56:23GB: Inline assembly in Odin
59:05AC: Confusion of AT&T vs Intel assembly operand order
59:05AC: Confusion of AT&T vs Intel assembly operand order
59:05AC: Confusion of AT&T vs Intel assembly operand order
59:39GB: Unifying assembly dialects in Odin
59:39GB: Unifying assembly dialects in Odin
59:39GB: Unifying assembly dialects in Odin
1:00:25AK: Difficulty making Intel syntax the only dialect in Zig
1:00:25AK: Difficulty making Intel syntax the only dialect in Zig
1:00:25AK: Difficulty making Intel syntax the only dialect in Zig
1:00:37GB: Preferring AT&T syntax
1:00:37GB: Preferring AT&T syntax
1:00:37GB: Preferring AT&T syntax
1:00:52AC: Is Zig aiming to streamline the assembly experience?
1:00:52AC: Is Zig aiming to streamline the assembly experience?
1:00:52AC: Is Zig aiming to streamline the assembly experience?
1:00:59AK: Unifying assembly dialects in Zig
1:00:59AK: Unifying assembly dialects in Zig
1:00:59AK: Unifying assembly dialects in Zig
1:01:28AC: That's curious
1:01:28AC: That's curious
1:01:28AC: That's curious
1:01:30MR: Rust's assembly syntax roughly matches that of GCC and Clang5
1:01:30MR: Rust's assembly syntax roughly matches that of GCC and Clang5
1:01:30MR: Rust's assembly syntax roughly matches that of GCC and Clang5
1:01:59GB: Executing machine code in python
1:01:59GB: Executing machine code in python
1:01:59GB: Executing machine code in python
1:02:28MR: Generating bytecode in Rust
1:02:28MR: Generating bytecode in Rust
1:02:28MR: Generating bytecode in Rust
1:03:15AC: Let's talk about community building
1:03:15AC: Let's talk about community building
1:03:15AC: Let's talk about community building
1:04:20GB: Closed vs open development models
1:04:20GB: Closed vs open development models
1:04:20GB: Closed vs open development models
1:05:45GB: Odin's open development model
1:05:45GB: Odin's open development model
1:05:45GB: Odin's open development model
1:08:03AK: On not having enough time for Zig to not be open source
1:08:03AK: On not having enough time for Zig to not be open source
1:08:03AK: On not having enough time for Zig to not be open source
1:09:28GB: Needing to manage community involvement
1:09:28GB: Needing to manage community involvement
1:09:28GB: Needing to manage community involvement
1:10:27MR: Little scripting language's closed development model
1:10:27MR: Little scripting language's closed development model
1:10:27MR: Little scripting language's closed development model
1:12:46AC: Was Rust open source early on?
1:12:46AC: Was Rust open source early on?
1:12:46AC: Was Rust open source early on?
1:12:49GB: Rust and Go probably began closed before becoming open
1:12:49GB: Rust and Go probably began closed before becoming open
1:12:49GB: Rust and Go probably began closed before becoming open
1:13:28GB: Managing open vs closed source development
1:13:28GB: Managing open vs closed source development
1:13:28GB: Managing open vs closed source development
1:15:34AC: Is Zig and Odin development similarly hierarchical?
1:15:34AC: Is Zig and Odin development similarly hierarchical?
1:15:34AC: Is Zig and Odin development similarly hierarchical?
1:15:37AK: Zig's development hierarchy
1:15:37AK: Zig's development hierarchy
1:15:37AK: Zig's development hierarchy
1:16:06GB: Odin's development hierarchy
1:16:06GB: Odin's development hierarchy
1:16:06GB: Odin's development hierarchy
1:17:02AK: Jakub's linker expertise in Zig
1:17:02AK: Jakub's linker expertise in Zig
1:17:02AK: Jakub's linker expertise in Zig
1:17:43GB: Odin's language server, written by someone else
1:17:43GB: Odin's language server, written by someone else
1:17:43GB: Odin's language server, written by someone else
1:18:14AC: Helping demystify computers at a low level for learners
1:18:14AC: Helping demystify computers at a low level for learners
1:18:14AC: Helping demystify computers at a low level for learners
1:20:34AK: Recommend "nand2tetris"6
1:20:34AK: Recommend "nand2tetris"6
1:20:34AK: Recommend "nand2tetris"6
1:21:13AC: Nice
1:21:13AC: Nice
1:21:13AC: Nice
1:21:18MR: Recommend "Crafting Interpreters"7
1:21:18MR: Recommend "Crafting Interpreters"7
1:21:18MR: Recommend "Crafting Interpreters"7
1:21:37MR: Encouraging people to write working software, rather than "good code"
1:21:37MR: Encouraging people to write working software, rather than "good code"
1:21:37MR: Encouraging people to write working software, rather than "good code"
1:24:51AK: "Together we serve the users"
1:24:51AK: "Together we serve the users"
1:24:51AK: "Together we serve the users"
1:25:05MR: That's definitely catchier
1:25:05MR: That's definitely catchier
1:25:05MR: That's definitely catchier
1:25:07GB: No need to be catchy
1:25:07GB: No need to be catchy
1:25:07GB: No need to be catchy
1:26:27AC: Welcoming in people at the outer edges of affinity with our subject
1:26:27AC: Welcoming in people at the outer edges of affinity with our subject
1:26:27AC: Welcoming in people at the outer edges of affinity with our subject
1:27:36MR: Different people's demotivation by societal treatment
1:27:36MR: Different people's demotivation by societal treatment
1:27:36MR: Different people's demotivation by societal treatment
1:29:34GB: Ideas spreading through seeming to be good
1:29:34GB: Ideas spreading through seeming to be good
1:29:34GB: Ideas spreading through seeming to be good
1:30:25MR: Feeling allowed to be critical of "best practices"
1:30:25MR: Feeling allowed to be critical of "best practices"
1:30:25MR: Feeling allowed to be critical of "best practices"
1:31:26GB: The folly of trying to find a shortcut to wisdom in the young field of programming
1:31:26GB: The folly of trying to find a shortcut to wisdom in the young field of programming
1:31:26GB: The folly of trying to find a shortcut to wisdom in the young field of programming
1:32:10MR: Helping to get people unstuck
1:32:10MR: Helping to get people unstuck
1:32:10MR: Helping to get people unstuck
1:32:40GB: Everyone gets stuck
1:32:40GB: Everyone gets stuck
1:32:40GB: Everyone gets stuck
1:33:13AK: Do not cargo cult advice from "experts", but understand it
1:33:13AK: Do not cargo cult advice from "experts", but understand it
1:33:13AK: Do not cargo cult advice from "experts", but understand it
1:33:27GB: Wish for evolved, pre-subscribed dogmas
1:33:27GB: Wish for evolved, pre-subscribed dogmas
1:33:27GB: Wish for evolved, pre-subscribed dogmas
1:34:08AC: Anything to add, Andrew?
1:34:08AC: Anything to add, Andrew?
1:34:08AC: Anything to add, Andrew?
1:34:15AK: Putting googly eyes on textbooks, to make low-level programming cool
1:34:15AK: Putting googly eyes on textbooks, to make low-level programming cool
1:34:15AK: Putting googly eyes on textbooks, to make low-level programming cool
1:34:34AC: Thank you, everyone
1:34:34AC: Thank you, everyone
1:34:34AC: Thank you, everyone
1:34:40MR: Plug "Way of Rhea"8
1:34:40MR: Plug "Way of Rhea"8
1:34:40MR: Plug "Way of Rhea"8
1:34:54AC: And, Andrew, how do people find Zig?
1:34:54AC: And, Andrew, how do people find Zig?
1:34:54AC: And, Andrew, how do people find Zig?
1:34:58AK: Plug Zig9
1:34:58AK: Plug Zig9
1:34:58AK: Plug Zig9
1:35:00AC: What about Ginger?
1:35:00AC: What about Ginger?
1:35:00AC: What about Ginger?
1:35:04GB: Plug Odin10
1:35:04GB: Plug Odin10
1:35:04GB: Plug Odin10
1:35:16AC: Excellent, thank you
1:35:16AC: Excellent, thank you
1:35:16AC: Excellent, thank you