[, < / ], >Jump to previous / next episode W, K, P / S, J, NJump to previous / next marker t / TToggle theatre / SUPERtheatre mode VRevert filter to original stateYSelect link (requires manual Ctrl-c)
Menu toggling
qQuotesrReferencesfFilteryLinkcCredits
In-Menu Movement
a
w s
d
hjkl
←
↑ ↓
→
Quotes and References Menus
EnterJump to timecode
Quotes, References and Credits Menus
oOpen URL (in new tab)
Filter Menu
x, SpaceToggle category and focus next X, ShiftSpaceToggle category and focus previous vInvert topics / media as per focus
0:01Recap and set the stage for the day, with a recommendation to read Chapter 2 through 4.1 of Wirth's 'Compiler Construction'1
🗩
0:01Recap and set the stage for the day, with a recommendation to read Chapter 2 through 4.1 of Wirth's 'Compiler Construction'1
🗩
0:01Recap and set the stage for the day, with a recommendation to read Chapter 2 through 4.1 of Wirth's 'Compiler Construction'1
🗩
3:05Dive in to ion.c, with a few words about debugger-centric workflow
3:05Dive in to ion.c, with a few words about debugger-centric workflow
3:05Dive in to ion.c, with a few words about debugger-centric workflow
12:42Introduce stretchy buffers, invented by Sean Barrett
12:42Introduce stretchy buffers, invented by Sean Barrett
12:42Introduce stretchy buffers, invented by Sean Barrett
18:28Introduce BufHdr struct and the buf__hdr(), buf__fits(), buf__fit(), buf_len(), buf_cap() and buf_push() macros
18:28Introduce BufHdr struct and the buf__hdr(), buf__fits(), buf__fit(), buf_len(), buf_cap() and buf_push() macros
18:28Introduce BufHdr struct and the buf__hdr(), buf__fits(), buf__fit(), buf_len(), buf_cap() and buf_push() macros
28:15Introduce buf__grow(), buf_free() and MAX()
28:15Introduce buf__grow(), buf_free() and MAX()
28:15Introduce buf__grow(), buf_free() and MAX()
38:55Step in to buf_push() and inspect the buf
🏃
38:55Step in to buf_push() and inspect the buf
🏃
38:55Step in to buf_push() and inspect the buf
🏃
40:14Enable buf__grow() to include the BufHdr in the reallocation
40:14Enable buf__grow() to include the BufHdr in the reallocation
40:14Enable buf__grow() to include the BufHdr in the reallocation
42:06Step back in to buf_push() and inspect the buf
🏃
42:06Step back in to buf_push() and inspect the buf
🏃
42:06Step back in to buf_push() and inspect the buf
🏃
43:32Fix buf__grow() to return the new_hdr->buf
43:32Fix buf__grow() to return the new_hdr->buf
43:32Fix buf__grow() to return the new_hdr->buf
47:33Step through a loop of buf_push()
🏃
47:33Step through a loop of buf_push()
🏃
47:33Step through a loop of buf_push()
🏃
49:11chargrove_devpervognsen Here's another poke to check your stream z-order; your camera is behind the IDE
🗪
49:11chargrove_devpervognsen Here's another poke to check your stream z-order; your camera is behind the IDE
🗪
49:11chargrove_devpervognsen Here's another poke to check your stream z-order; your camera is behind the IDE
🗪
49:37asafgartnerpervognsen (1) There's a lot of audio buzzing. (2) Visual Studio is on top of your webcam. (3) We can't see menus in VS
🗪
49:37asafgartnerpervognsen (1) There's a lot of audio buzzing. (2) Visual Studio is on top of your webcam. (3) We can't see menus in VS
🗪
49:37asafgartnerpervognsen (1) There's a lot of audio buzzing. (2) Visual Studio is on top of your webcam. (3) We can't see menus in VS
🗪
50:26normalnull_pervognsen One idea, designate one trusted helper who is able to ping you while you ignore regular chat for hints like audio issues or window switching or whatever
🗪
50:26normalnull_pervognsen One idea, designate one trusted helper who is able to ping you while you ignore regular chat for hints like audio issues or window switching or whatever
🗪
50:26normalnull_pervognsen One idea, designate one trusted helper who is able to ping you while you ignore regular chat for hints like audio issues or window switching or whatever
🗪
51:20manokara Dedicated capture hardware is better so your CPU doesn't struggle with encoding and streaming
🗪
51:20manokara Dedicated capture hardware is better so your CPU doesn't struggle with encoding and streaming
🗪
51:20manokara Dedicated capture hardware is better so your CPU doesn't struggle with encoding and streaming
🗪
51:33captainkraftpervognsen Why use macros for this instead of functions?
🗪
51:33captainkraftpervognsen Why use macros for this instead of functions?
🗪
51:33captainkraftpervognsen Why use macros for this instead of functions?
🗪
51:37garretttypespervognsen Line 17, shouldn't "buf" be just "b"?
🗪
51:37garretttypespervognsen Line 17, shouldn't "buf" be just "b"?
🗪
51:37garretttypespervognsen Line 17, shouldn't "buf" be just "b"?
🗪
51:48Fix buf__hdr() to operate on b rather than buf
51:48Fix buf__hdr() to operate on b rather than buf
51:48Fix buf__hdr() to operate on b rather than buf
53:10danbokserpervognsen For buf__hdr it looks like you're using buf instead of b
🗪
53:10danbokserpervognsen For buf__hdr it looks like you're using buf instead of b
🗪
53:10danbokserpervognsen For buf__hdr it looks like you're using buf instead of b
🗪
54:04Could you add more functions like reserve()?
🗪
54:04Could you add more functions like reserve()?
🗪
54:04Could you add more functions like reserve()?
🗪
54:32Loft our code out into buf_test()
54:32Loft our code out into buf_test()
54:32Loft our code out into buf_test()
54:50symbolic_buttpervognsen This is kind of similar to the implementation of lists in cpython right?
🗪
54:50symbolic_buttpervognsen This is kind of similar to the implementation of lists in cpython right?
🗪
54:50symbolic_buttpervognsen This is kind of similar to the implementation of lists in cpython right?
🗪
55:42oneblokepervognsen The menus and pop up windows cannot be seen
🗪
55:42oneblokepervognsen The menus and pop up windows cannot be seen
🗪
55:42oneblokepervognsen The menus and pop up windows cannot be seen
🗪
56:13manokara Is it me or is the mic lower than yesterday?
🗪
56:13manokara Is it me or is the mic lower than yesterday?
🗪
56:13manokara Is it me or is the mic lower than yesterday?
🗪
57:05satire_ What's the reasoning for using macros vs functions for most of the stuff?
🗪
57:05satire_ What's the reasoning for using macros vs functions for most of the stuff?
🗪
57:05satire_ What's the reasoning for using macros vs functions for most of the stuff?
🗪
58:47zxsnkx Connection here is unreliable... Will have to catch this later on YouTube
🗪
58:47zxsnkx Connection here is unreliable... Will have to catch this later on YouTube
🗪
58:47zxsnkx Connection here is unreliable... Will have to catch this later on YouTube
🗪
59:08manokara Jesus, is that coke?
🗪
59:08manokara Jesus, is that coke?
🗪
59:08manokara Jesus, is that coke?
🗪
59:37manokara But I think it's a bit too acidic to hydrate
🗪
59:37manokara But I think it's a bit too acidic to hydrate
🗪
59:37manokara But I think it's a bit too acidic to hydrate
🗪
59:50Introduce lexing, with a TokenKind enum and Token struct
59:50Introduce lexing, with a TokenKind enum and Token struct
59:50Introduce lexing, with a TokenKind enum and Token struct
1:03:29Introduce the notion of a global state machine, with next_token()
1:03:29Introduce the notion of a global state machine, with next_token()
1:03:29Introduce the notion of a global state machine, with next_token()
1:06:35Introduce lex_test() with a few words on this testing approach
1:06:35Introduce lex_test() with a few words on this testing approach
1:06:35Introduce lex_test() with a few words on this testing approach
1:08:21Step into lex_test() to see what it does
🏃
1:08:21Step into lex_test() to see what it does
🏃
1:08:21Step into lex_test() to see what it does
🏃
1:08:41Set TokenKind to start at 128
1:08:41Set TokenKind to start at 128
1:08:41Set TokenKind to start at 128
1:08:56Continue to step through lex_test()
🏃
1:08:56Continue to step through lex_test()
🏃
1:08:56Continue to step through lex_test()
🏃
1:10:16Augment the Token struct with semantic information, and implement string to integer conversion
1:10:16Augment the Token struct with semantic information, and implement string to integer conversion
1:10:16Augment the Token struct with semantic information, and implement string to integer conversion
1:12:28Step in to lex_test() to see if that worked, waxing lyrical on Ctrl-F10 for stepping through the loop
🏃
1:12:28Step in to lex_test() to see if that worked, waxing lyrical on Ctrl-F10 for stepping through the loop
🏃
1:12:28Step in to lex_test() to see if that worked, waxing lyrical on Ctrl-F10 for stepping through the loop
🏃
1:13:34Introduce identifier parsing with cases for every letter in the alphabet, including print_token(), with a few words on
1:13:34Introduce identifier parsing with cases for every letter in the alphabet, including print_token(), with a few words on
1:13:34Introduce identifier parsing with cases for every letter in the alphabet, including print_token(), with a few words on
1:19:59A few words on printf()'s .* pattern to specify the number of bytes to print
🗩
1:19:59A few words on printf()'s .* pattern to specify the number of bytes to print
🗩
1:19:59A few words on printf()'s .* pattern to specify the number of bytes to print
🗩
1:20:33Let lex_test() test alphabetical characters and finish implementing print_token()
1:20:33Let lex_test() test alphabetical characters and finish implementing print_token()
1:20:33Let lex_test() test alphabetical characters and finish implementing print_token()
1:25:14Step in to lex_test() to see how the identifier stuff shakes out
🏃
1:25:14Step in to lex_test() to see how the identifier stuff shakes out
🏃
1:25:14Step in to lex_test() to see how the identifier stuff shakes out
🏃
1:26:07Revert print_token() to use printf()
1:26:07Revert print_token() to use printf()
1:26:07Revert print_token() to use printf()
1:26:27Step in to lex_test() and note Visual Studio's ability to let us specify how many bytes of the string to print
🏃
1:26:27Step in to lex_test() and note Visual Studio's ability to let us specify how many bytes of the string to print
🏃
1:26:27Step in to lex_test() and note Visual Studio's ability to let us specify how many bytes of the string to print
🏃
1:28:52Prevent print_token() from falling through the entire switch statement
1:28:52Prevent print_token() from falling through the entire switch statement
1:28:52Prevent print_token() from falling through the entire switch statement
1:29:12Continue to step through lex_test() to see how it works
🏃
1:29:12Continue to step through lex_test() to see how it works
🏃
1:29:12Continue to step through lex_test() to see how it works
🏃
1:29:47A few words on our basic lexer, before stopping the recording
🗩
1:29:47A few words on our basic lexer, before stopping the recording
🗩
1:29:47A few words on our basic lexer, before stopping the recording