diff --git a/pervognsen/bitwise/bitwise/bitwise008_1.hmml b/pervognsen/bitwise/bitwise/bitwise008_1.hmml new file mode 100644 index 0000000..a9d89be --- /dev/null +++ b/pervognsen/bitwise/bitwise/bitwise008_1.hmml @@ -0,0 +1,51 @@ +[video member=pervognsen stream_platform=twitch project=bitwise title="Type Checking/Inference, Constant Evaluation" vod_platform=youtube id=-eCwBwTbjAI annotator=Miblo] +[0:13][Recap and set the stage for the day][:speech] +[0:47][Explain why the approach to ordering the dependency graph implemented on the last stream didn't work][:parsing :research] +[5:17][Describe the new approach, installing and resolving entities][:parsing :research] +[10:47][The new ingredient: the notion of incomplete types, much like C][:parsing :research] +[12:09][Describe complete_type() and related functions, with usage examples][:parsing :research] +[16:25][Describe resolve_expr() and related functions][:parsing :research] +[20:44][Show how it ends up working][:parsing :run] +[25:24][Note the pleasant absence of on-demand dependency resolution][:parsing :research] +[26:57][Q&A][:speech] +[27:22][@ws_ubi][@pervognsen Are you recording the videos so I could watch it later?] +[27:55][Summarise our notion of incomplete types, and its difference from that of C][:parsing :research] +[28:37][@orcnz29][@pervognsen Would you be able to push the code you just explained?] +[29:06][Commit "Code for day 8 prestream"][:admin] +[29:50][@dr_kegel][Only one question where you asserted on lvalue only expr and you return a token-rvalue, I think it was a deref][:parsing] +[30:50][Consider enabling the type resolver to handle compound literals][:parsing :speech] +[32:28][Introduce resolve_expr_compound()][:parsing] +[39:02][:Run it to see that it works][:parsing :run] +[39:06][Add an incorrect type test in resolve_test()][:parsing] +[39:24][:Run it to see that this gets caught][:parsing] +[39:32][Add tests in resolve_test() for fewer and more arguments provided in a compound literal declaration than there are values in the type][:parsing] +[39:52][:Run it to see that it works as expected][:parsing] +[40:06][Enable resolve_expr_compound() to handle arrays][:parsing] +[44:04][:Run it to see that it works as expected][:parsing] +[44:26][Add a test for arrays in resolve_test()][:parsing] +[44:35][:Run it and crash in resolve_expr_compound()][:parsing] +[44:46][Fix the crash in resolve_expr_compound(), double-check that it's correct and rewrite the compound literal array test case in resolve_test()][:parsing] +[47:33][:Run it to see that that does the trick][:parsing] +[47:42][Add tests in resolve_test() for fewer and more arguments provided in a compound literal array declaration than there are values in the type][:parsing] +[47:58][:Run it to see that it works][:parsing] +[48:06][Add a test in resolve_test() that types unify][:parsing] +[48:28][:Run it to see that it works][:parsing] +[48:36][Enable resolve_expr_compound() to handle expected types][:parsing] +[56:17][Add a test of our expected type code in resolve_test()][:parsing] +[56:44][Step through resolve_expr_compound() to see how it handles our expected type][:parsing :run] +[57:26][Add an expected struct type test in resolve_test()][:parsing] +[57:40][:Run it to see that it works][:parsing] +[58:16][Add a test for unhandled resolving of expected function arguments in resolve_test()][:parsing] +[59:55][:Run it to see that it parses but doesn't resolve][:parsing] +[1:00:13][Introduce resolve_decl_func()][:parsing] +[1:03:08][:Run it to see that it correctly resolves the function declaration][:parsing] +[1:03:57][Introduce resolve_expr_call()][:parsing] +[1:12:23][Add function call tests in resolve_test(), and find that they work][:parsing :programming :run] +[1:14:19][Note that we're not yet traversing the function body, and recap the day's work][:parsing :speech] +[1:15:48][Q&A][:speech] +[1:17:31][A few words on type inference][:parsing :speech] +[1:18:02][@buzzfizz64][@pervognsen What’s the expected type thing again? I missed it][:parsing] +[1:19:58][How C handles expected types][:language :parsing :speech] +[1:21:53][Passing separate data vs packed structs in C][:language :speech] +[1:23:52][Wrap up the main stream][:speech] +[/video] diff --git a/pervognsen/bitwise/bitwise/bitwise008_2.hmml b/pervognsen/bitwise/bitwise/bitwise008_2.hmml new file mode 100644 index 0000000..39b9598 --- /dev/null +++ b/pervognsen/bitwise/bitwise/bitwise008_2.hmml @@ -0,0 +1,3 @@ +[video member=pervognsen stream_platform=twitch project=bitwise title="Type Checking/Inference, Constant Evaluation (Extra)" vod_platform=youtube id=ls_YmJ21JZg annotator=Miblo] +[0:00][\[Entire stream, not annotated\]][:parsing] +[/video]