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