We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
Bitwise»Episode Guide
Order-Independent Declarations
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
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 Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

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:09Recap and set the stage for the day
🗩
0:09Recap and set the stage for the day
🗩
0:09Recap and set the stage for the day
🗩
0:56Review improvements to the sizeof parsing, and the TokenKind enum
📖
0:56Review improvements to the sizeof parsing, and the TokenKind enum
📖
0:56Review improvements to the sizeof parsing, and the TokenKind enum
📖
4:27Add TOKEN_FIRST_MUL to the TokenKind enum, and continue to explain the motivation for filling up this enum
4:27Add TOKEN_FIRST_MUL to the TokenKind enum, and continue to explain the motivation for filling up this enum
4:27Add TOKEN_FIRST_MUL to the TokenKind enum, and continue to explain the motivation for filling up this enum
6:27Review the introduction of buf__printf() and buf_clear()
📖
6:27Review the introduction of buf__printf() and buf_clear()
📖
6:27Review the introduction of buf__printf() and buf_clear()
📖
9:04Illustrate how buf__print() is usedα
📖
9:04Illustrate how buf__print() is usedα
📖
9:04Illustrate how buf__print() is usedα
📖
10:22Run it to show the result of buf__printf()
🏃
10:22Run it to show the result of buf__printf()
🏃
10:22Run it to show the result of buf__printf()
🏃
10:34Disable use_print_buf
10:34Disable use_print_buf
10:34Disable use_print_buf
10:43Run it to see how that works
🏃
10:43Run it to see how that works
🏃
10:43Run it to see how that works
🏃
10:48Enable use_print_buf
10:48Enable use_print_buf
10:48Enable use_print_buf
10:51Break on flush_print_buf(), and then step over it to illustrate how buf__printf() works
🏃
10:51Break on flush_print_buf(), and then step over it to illustrate how buf__printf() works
🏃
10:51Break on flush_print_buf(), and then step over it to illustrate how buf__printf() works
🏃
11:46Introduce order-independent declarations
🗩
11:46Introduce order-independent declarations
🗩
11:46Introduce order-independent declarations
🗩
19:17Proposed algorithm for handling order-independent declarations: memoization-style dependency-directed recursion
🗩
19:17Proposed algorithm for handling order-independent declarations: memoization-style dependency-directed recursion
🗩
19:17Proposed algorithm for handling order-independent declarations: memoization-style dependency-directed recursion
🗩
28:56Memoization
🗩
28:56Memoization
🗩
28:56Memoization
🗩
30:14What we need to get started on order-independent declaration handling code
🗩
30:14What we need to get started on order-independent declaration handling code
🗩
30:14What we need to get started on order-independent declaration handling code
🗩
31:19Start by building up a symbol table, introducing sym_get() and sym_put()
31:19Start by building up a symbol table, introducing sym_get() and sym_put()
31:19Start by building up a symbol table, introducing sym_get() and sym_put()
34:37Introduce resolve_test()
34:37Introduce resolve_test()
34:37Introduce resolve_test()
39:54Run it to see that it works
🏃
39:54Run it to see that it works
🏃
39:54Run it to see that it works
🏃
40:05Introduce resolve_syms(), resolve_name(), resolve_sym() and resolve_decl()
40:05Introduce resolve_syms(), resolve_name(), resolve_sym() and resolve_decl()
40:05Introduce resolve_syms(), resolve_name(), resolve_sym() and resolve_decl()
46:12Introduce Entity and Type structs, and a collection of Type functions
46:12Introduce Entity and Type structs, and a collection of Type functions
46:12Introduce Entity and Type structs, and a collection of Type functions
1:00:59Add a type_ptr test in resolve_test()
1:00:59Add a type_ptr test in resolve_test()
1:00:59Add a type_ptr test in resolve_test()
1:01:42Run it to see that it works
🏃
1:01:42Run it to see that it works
🏃
1:01:42Run it to see that it works
🏃
1:01:46Add more type tests in resolve_test()
1:01:46Add more type tests in resolve_test()
1:01:46Add more type tests in resolve_test()
1:03:55Run it to see that it all works
🏃
1:03:55Run it to see that it all works
🏃
1:03:55Run it to see that it all works
🏃
1:03:59Hash consing
🗩
1:03:59Hash consing
🗩
1:03:59Hash consing
🗩
1:08:09Implement type_struct() and type_func()
1:08:09Implement type_struct() and type_func()
1:08:09Implement type_struct() and type_func()
1:19:51Add type_func tests in resolve_test()
1:19:51Add type_func tests in resolve_test()
1:19:51Add type_func tests in resolve_test()
1:21:55Run it to see that it works
🏃
1:21:55Run it to see that it works
🏃
1:21:55Run it to see that it works
🏃
1:23:06Q&A
🗩
1:23:06Q&A
🗩
1:23:06Q&A
🗩
1:23:22orcnz29 pervognsen Could you use a unique string (interned) as the cache key? You have the type name, so for pointers a key could be "Foo*" etc
🗪
1:23:22orcnz29 pervognsen Could you use a unique string (interned) as the cache key? You have the type name, so for pointers a key could be "Foo*" etc
🗪
1:23:22orcnz29 pervognsen Could you use a unique string (interned) as the cache key? You have the type name, so for pointers a key could be "Foo*" etc
🗪
1:24:04iain "break ground"
🗪
1:24:04iain "break ground"
🗪
1:24:04iain "break ground"
🗪
1:24:11twicetimes pervognsen Is Ion going to have anything like type qualifiers and, if so, how would this work with the canonical version of primitive types?
🗪
1:24:11twicetimes pervognsen Is Ion going to have anything like type qualifiers and, if so, how would this work with the canonical version of primitive types?
🗪
1:24:11twicetimes pervognsen Is Ion going to have anything like type qualifiers and, if so, how would this work with the canonical version of primitive types?
🗪
1:24:46graemephi pervognsen Not a question, just registering that I'm ready for more homework
🗪
1:24:46graemephi pervognsen Not a question, just registering that I'm ready for more homework
🗪
1:24:46graemephi pervognsen Not a question, just registering that I'm ready for more homework
🗪
1:26:36enemymouse Do you need to distinguish function types by whether they reference static variables?
🗪
1:26:36enemymouse Do you need to distinguish function types by whether they reference static variables?
🗪
1:26:36enemymouse Do you need to distinguish function types by whether they reference static variables?
🗪
1:27:33cubercaleb Isn't this basically string interning but for functions?1β
🗪
1:27:33cubercaleb Isn't this basically string interning but for functions?1β
🗪
1:27:33cubercaleb Isn't this basically string interning but for functions?1β
🗪
1:29:23eaterenrgy Why do we use that double pointer?
🗪
1:29:23eaterenrgy Why do we use that double pointer?
🗪
1:29:23eaterenrgy Why do we use that double pointer?
🗪
1:30:09badflydog pervognsen Off-topic to bitwise so feel free to save this for later. How is your Malay?
🗪
🎲
1:30:09badflydog pervognsen Off-topic to bitwise so feel free to save this for later. How is your Malay?
🗪
🎲
1:30:09badflydog pervognsen Off-topic to bitwise so feel free to save this for later. How is your Malay?
🗪
🎲
1:30:410b0000000000000 pervognsen Why is SYM_UNRESOLVED a no-op? Shouldn't that be SYM_RESOLVED?
🗪
1:30:410b0000000000000 pervognsen Why is SYM_UNRESOLVED a no-op? Shouldn't that be SYM_RESOLVED?
🗪
1:30:410b0000000000000 pervognsen Why is SYM_UNRESOLVED a no-op? Shouldn't that be SYM_RESOLVED?
🗪
1:30:52Fix typo in resolve_sym()
1:30:52Fix typo in resolve_sym()
1:30:52Fix typo in resolve_sym()
1:32:17jgomes83 pervognsen Would it be possible to have a primitive type that is similar to Exceptions in oo languages so that try-catch clauses are possible?2
🗪
1:32:17jgomes83 pervognsen Would it be possible to have a primitive type that is similar to Exceptions in oo languages so that try-catch clauses are possible?2
🗪
1:32:17jgomes83 pervognsen Would it be possible to have a primitive type that is similar to Exceptions in oo languages so that try-catch clauses are possible?2
🗪
1:37:35Further thoughts on error handling and API designγ
🗩
1:37:35Further thoughts on error handling and API designγ
🗩
1:37:35Further thoughts on error handling and API designγ
🗩
1:41:02Command–query separation3δ
🗩
1:41:02Command–query separation3δ
🗩
1:41:02Command–query separation3δ
🗩
1:42:26marsol0x Good set of quotes today
🗪
1:42:26marsol0x Good set of quotes today
🗪
1:42:26marsol0x Good set of quotes today
🗪
1:42:46Thanks for today
🗩
1:42:46Thanks for today
🗩
1:42:46Thanks for today
🗩