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
Weekend Edition
?
?

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:08Recap and set the stage for an especially random day
🗩
0:08Recap and set the stage for an especially random day
🗩
0:08Recap and set the stage for an especially random day
🗩
2:25Review the work making the dot operator for field access auto-dereference pointers to aggregates, and implementing support for float const declarations
2:25Review the work making the dot operator for field access auto-dereference pointers to aggregates, and implementing support for float const declarations
2:25Review the work making the dot operator for field access auto-dereference pointers to aggregates, and implementing support for float const declarations
6:10Showcase the vector library test2.ion
6:10Showcase the vector library test2.ion
6:10Showcase the vector library test2.ion
8:23Review the work implementing support for bool
8:23Review the work implementing support for bool
8:23Review the work implementing support for bool
9:58Review the work implementing conservative control analysis in resolve_stmt() and resolve_stmt_block()
9:58Review the work implementing conservative control analysis in resolve_stmt() and resolve_stmt_block()
9:58Review the work implementing conservative control analysis in resolve_stmt() and resolve_stmt_block()
14:34Review the work implementing detection of duplicate global and local symbol errors
14:34Review the work implementing detection of duplicate global and local symbol errors
14:34Review the work implementing detection of duplicate global and local symbol errors
15:56Review the work implementing function call notation int(3.14) for explicit type conversion
15:56Review the work implementing function call notation int(3.14) for explicit type conversion
15:56Review the work implementing function call notation int(3.14) for explicit type conversion
17:00Review the work on explicitly sized types, and adding support for C-style null pointers
17:00Review the work on explicitly sized types, and adding support for C-style null pointers
17:00Review the work on explicitly sized types, and adding support for C-style null pointers
19:12Review the work allowing optional names in function typespecs
19:12Review the work allowing optional names in function typespecs
19:12Review the work allowing optional names in function typespecs
20:18Review the work implementing the const qualifier, with an explanation of the notion of non-modifiability in C
20:18Review the work implementing the const qualifier, with an explanation of the notion of non-modifiability in C
20:18Review the work implementing the const qualifier, with an explanation of the notion of non-modifiability in C
31:53Describe the conceptual breakthrough regarding the use of expressions in an rvalue context, with explanations of operand_decay(), convert_operand(), is_convertible() and is_null_ptr()
31:53Describe the conceptual breakthrough regarding the use of expressions in an rvalue context, with explanations of operand_decay(), convert_operand(), is_convertible() and is_null_ptr()
31:53Describe the conceptual breakthrough regarding the use of expressions in an rvalue context, with explanations of operand_decay(), convert_operand(), is_convertible() and is_null_ptr()
36:53Fix is_null_ptr() to use is_integer_type() rather than is_arithmetic_type() when determining whether to call cast_operand()
🖮
36:53Fix is_null_ptr() to use is_integer_type() rather than is_arithmetic_type() when determining whether to call cast_operand()
🖮
36:53Fix is_null_ptr() to use is_integer_type() rather than is_arithmetic_type() when determining whether to call cast_operand()
🖮
37:24Continue to describe is_null_ptr() and is_convertible()
37:24Continue to describe is_null_ptr() and is_convertible()
37:24Continue to describe is_null_ptr() and is_convertible()
38:32Review the new distinction between casts and conversions
38:32Review the new distinction between casts and conversions
38:32Review the new distinction between casts and conversions
41:29Review the work implementing support for different literal types and literal suffixes
41:29Review the work implementing support for different literal types and literal suffixes
41:29Review the work implementing support for different literal types and literal suffixes
47:20Explain C's differing rankings of decimal and octal / hexadecimal integer constants1
47:20Explain C's differing rankings of decimal and octal / hexadecimal integer constants1
47:20Explain C's differing rankings of decimal and octal / hexadecimal integer constants1
56:12Review the new preservation of token modifiers for literals in generated C code
56:12Review the new preservation of token modifiers for literals in generated C code
56:12Review the new preservation of token modifiers for literals in generated C code
1:01:24Review the work implementing support for "x: int" and "x: int = 0" local initialiser statements
1:01:24Review the work implementing support for "x: int" and "x: int = 0" local initialiser statements
1:01:24Review the work implementing support for "x: int" and "x: int = 0" local initialiser statements
1:05:20Review the new inference of incomplete array size for initialiser statements, and error handling of size 0 function parameters and assignment to arrays
1:05:20Review the new inference of incomplete array size for initialiser statements, and error handling of size 0 function parameters and assignment to arrays
1:05:20Review the new inference of incomplete array size for initialiser statements, and error handling of size 0 function parameters and assignment to arrays
1:09:05Make is_convertible() to treat arrays as pointers for the purposes of pointer-decay
🖮
1:09:05Make is_convertible() to treat arrays as pointers for the purposes of pointer-decay
🖮
1:09:05Make is_convertible() to treat arrays as pointers for the purposes of pointer-decay
🖮
1:12:57Run it to see what test_arrays() produces
🏃
1:12:57Run it to see what test_arrays() produces
🏃
1:12:57Run it to see what test_arrays() produces
🏃
1:13:49Revert is_convertible() and instead enable resolve_expr_call() to pointer-decay arrays
🖮
1:13:49Revert is_convertible() and instead enable resolve_expr_call() to pointer-decay arrays
🖮
1:13:49Revert is_convertible() and instead enable resolve_expr_call() to pointer-decay arrays
🖮
1:15:45Reflect on the near completion of Ion, and determine to handle volatile
🗩
1:15:45Reflect on the near completion of Ion, and determine to handle volatile
🗩
1:15:45Reflect on the near completion of Ion, and determine to handle volatile
🗩
1:16:23Q&A
🗩
1:16:23Q&A
🗩
1:16:23Q&A
🗩
1:16:51tbodt_ Since they're compile-time constants couldn't you compute the value of the constant in the compiler and just inline that?
🗪
1:16:51tbodt_ Since they're compile-time constants couldn't you compute the value of the constant in the compiler and just inline that?
🗪
1:16:51tbodt_ Since they're compile-time constants couldn't you compute the value of the constant in the compiler and just inline that?
🗪
1:18:52pmttavara For goto, don't you just have to verify that there is at least one return statement after the very final goto label in the function?
🗪
1:18:52pmttavara For goto, don't you just have to verify that there is at least one return statement after the very final goto label in the function?
🗪
1:18:52pmttavara For goto, don't you just have to verify that there is at least one return statement after the very final goto label in the function?
🗪
1:19:20godling72 pervognsen Are you going to have "restrict"?2
🗪
1:19:20godling72 pervognsen Are you going to have "restrict"?2
🗪
1:19:20godling72 pervognsen Are you going to have "restrict"?2
🗪
1:20:37BitSlime Doesn't restrict just make sure two pointer parameters aren't the same?3
🗪
1:20:37BitSlime Doesn't restrict just make sure two pointer parameters aren't the same?3
🗪
1:20:37BitSlime Doesn't restrict just make sure two pointer parameters aren't the same?3
🗪
1:22:37olafbtwitch Inline assembly?
🗪
1:22:37olafbtwitch Inline assembly?
🗪
1:22:37olafbtwitch Inline assembly?
🗪
1:23:29BitSlime You need inline assembly since C has no native cpuid function
🗪
1:23:29BitSlime You need inline assembly since C has no native cpuid function
🗪
1:23:29BitSlime You need inline assembly since C has no native cpuid function
🗪
1:24:15Determine to fully handle enums4
1:24:15Determine to fully handle enums4
1:24:15Determine to fully handle enums4
1:29:57Enable resolve_decl_type() and resolve_sym() to handle the SYM_ENUM_CONST case, introducing type_enum() and resolve_decl_enum() and an EnumField struct
🖮
1:29:57Enable resolve_decl_type() and resolve_sym() to handle the SYM_ENUM_CONST case, introducing type_enum() and resolve_decl_enum() and an EnumField struct
🖮
1:29:57Enable resolve_decl_type() and resolve_sym() to handle the SYM_ENUM_CONST case, introducing type_enum() and resolve_decl_enum() and an EnumField struct
🖮
1:48:47Restate the problem with handling enums
🗩
1:48:47Restate the problem with handling enums
🗩
1:48:47Restate the problem with handling enums
🗩
1:49:49Temporarily introduce sym_push_const() symbol stack
🖮
1:49:49Temporarily introduce sym_push_const() symbol stack
🖮
1:49:49Temporarily introduce sym_push_const() symbol stack
🖮
1:51:25Revert the new enum handling code
🖮
1:51:25Revert the new enum handling code
🖮
1:51:25Revert the new enum handling code
🖮
1:52:34Get lunch
🗩
1:52:34Get lunch
🗩
1:52:34Get lunch
🗩