only and omit; notes & dead code deletion

This commit is contained in:
Ryan Fleury
2025-04-11 14:16:48 -07:00
parent 83a31a5229
commit 3e49e92e98
9 changed files with 182 additions and 222 deletions
+30 -18
View File
@@ -12241,7 +12241,9 @@ rd_frame(void)
struct
{
String8 name;
B32 inherited;
B32 inherited_by_members;
B32 inherited_by_elements;
B32 array_like;
E_TypeIRExtFunctionType *irext;
E_TypeAccessFunctionType *access;
E_TypeExpandRule expand;
@@ -12250,21 +12252,23 @@ rd_frame(void)
}
lens_table[] =
{
{str8_lit("bin"), 1, 0, 0, {0}},
{str8_lit("oct"), 1, 0, 0, {0}},
{str8_lit("dec"), 1, 0, 0, {0}},
{str8_lit("hex"), 1, 0, 0, {0}},
{str8_lit("digits"), 1, 0, 0, {0}},
{str8_lit("no_string"), 1, 0, 0, {0}},
{str8_lit("no_addr"), 1, 0, 0, {0}},
{str8_lit("slice"), 0, E_TYPE_IREXT_FUNCTION_NAME(slice), E_TYPE_ACCESS_FUNCTION_NAME(slice), {E_TYPE_EXPAND_INFO_FUNCTION_NAME(slice), E_TYPE_EXPAND_RANGE_FUNCTION_NAME(slice)}},
{str8_lit("text"), 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(text), EV_EXPAND_RULE_INFO_FUNCTION_NAME(text)},
{str8_lit("disasm"), 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(disasm), EV_EXPAND_RULE_INFO_FUNCTION_NAME(disasm)},
{str8_lit("memory"), 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(memory), EV_EXPAND_RULE_INFO_FUNCTION_NAME(memory)},
{str8_lit("bitmap"), 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(bitmap), EV_EXPAND_RULE_INFO_FUNCTION_NAME(bitmap)},
{str8_lit("checkbox"), 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(checkbox), 0},
{str8_lit("color_rgba"), 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(color_rgba), EV_EXPAND_RULE_INFO_FUNCTION_NAME(color_rgba)},
{str8_lit("geo3d"), 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(geo3d), EV_EXPAND_RULE_INFO_FUNCTION_NAME(geo3d)},
{str8_lit("bin"), 1, 1, 0, 0, 0, {0}},
{str8_lit("oct"), 1, 1, 0, 0, 0, {0}},
{str8_lit("dec"), 1, 1, 0, 0, 0, {0}},
{str8_lit("hex"), 1, 1, 0, 0, 0, {0}},
{str8_lit("digits"), 1, 1, 0, 0, 0, {0}},
{str8_lit("no_string"), 1, 1, 0, 0, 0, {0}},
{str8_lit("no_addr"), 1, 1, 0, 0, 0, {0}},
{str8_lit("slice"), 0, 0, 1, E_TYPE_IREXT_FUNCTION_NAME(slice), E_TYPE_ACCESS_FUNCTION_NAME(slice), {E_TYPE_EXPAND_INFO_FUNCTION_NAME(slice), E_TYPE_EXPAND_RANGE_FUNCTION_NAME(slice)}},
{str8_lit("only"), 0, 1, 0, 0, 0, {E_TYPE_EXPAND_INFO_FUNCTION_NAME(only_and_omit), E_TYPE_EXPAND_RANGE_FUNCTION_NAME(only_and_omit)}},
{str8_lit("omit"), 0, 1, 0, 0, 0, {E_TYPE_EXPAND_INFO_FUNCTION_NAME(only_and_omit), E_TYPE_EXPAND_RANGE_FUNCTION_NAME(only_and_omit)}},
{str8_lit("text"), 0, 0, 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(text), EV_EXPAND_RULE_INFO_FUNCTION_NAME(text)},
{str8_lit("disasm"), 0, 0, 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(disasm), EV_EXPAND_RULE_INFO_FUNCTION_NAME(disasm)},
{str8_lit("memory"), 0, 0, 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(memory), EV_EXPAND_RULE_INFO_FUNCTION_NAME(memory)},
{str8_lit("bitmap"), 0, 0, 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(bitmap), EV_EXPAND_RULE_INFO_FUNCTION_NAME(bitmap)},
{str8_lit("checkbox"), 0, 0, 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(checkbox), 0},
{str8_lit("color_rgba"), 0, 0, 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(color_rgba), EV_EXPAND_RULE_INFO_FUNCTION_NAME(color_rgba)},
{str8_lit("geo3d"), 0, 0, 0, 0, 0, {0}, RD_VIEW_UI_FUNCTION_NAME(geo3d), EV_EXPAND_RULE_INFO_FUNCTION_NAME(geo3d)},
};
//- rjf: fill lenses in ev expand rule map, rd view ui rule map
@@ -12289,9 +12293,17 @@ rd_frame(void)
for EachElement(idx, lens_table)
{
E_TypeFlags type_flags = 0;
if(lens_table[idx].inherited)
if(lens_table[idx].inherited_by_members)
{
type_flags |= E_TypeFlag_InheritedOnAccess;
type_flags |= E_TypeFlag_InheritedByMembers;
}
if(lens_table[idx].inherited_by_elements)
{
type_flags |= E_TypeFlag_InheritedByElements;
}
if(lens_table[idx].array_like)
{
type_flags |= E_TypeFlag_ArrayLikeExpansion;
}
E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, 0);
expr->type_key = e_type_key_cons(.kind = E_TypeKind_LensSpec,
+13 -12
View File
@@ -92,15 +92,6 @@
////////////////////////////////
//~ rjf: feature cleanup, code dedup, code elimination pass:
//
// [ ] 'view rules' need to be rephrased as "function" calls in the expression language
// [ ] need a formalization which takes unknown identifiers which are called, and tries
// to use that to apply a IR-generation rule, which is keyed by that unknown
// identifier
// [ ] we need to select expressions as "parents" when possible, so that when using an
// auto-view-rule (or similar context), leaf identifiers referring to e.g. members
// of an expression's type resolve correctly (e.g. bitmap(base, width, height) being
// used as a shorthand for bitmap(foo.base, foo.width, foo.height) when evaluating
// foo).
// [ ] *ALL* expressions in watch windows need to be editable.
//
// [ ] config hot-reloading, using cfg wins
@@ -111,7 +102,6 @@
// right-clicking a tab should be equivalent to spawning a command lister,
// but only with commands that are directly
//
// [ ] r8 bitmap view rule seems incorrect?
// [ ] crash bug, release mode - filter globals view (try with debugging raddbg, typing `dev` in globals view)
//
// [ ] stepping-onto a line with a conditional breakpoint, which fails, causes a
@@ -121,6 +111,7 @@
//
// [ ] if a breakpoint matches the entry point's starting address, its hit count
// is not correctly incremented.
// [ ] odin's demo is busted - need to revert PDB conversion type index changes.
////////////////////////////////
//~ rjf: post-0.9.12 TODO notes
@@ -133,8 +124,6 @@
// [ ] fix light themes
// [ ] make `array` view rule work with actual array types, to change their
// size dynamically
// [ ] single-line visualization busted with auto-view-rules applied, it seems...
// not showing member variables, just commas, check w/ mohit
// [ ] disasm starting address - need to use debug info for more correct
// results...
// [ ] linked list view rule
@@ -382,6 +371,18 @@
// menu, but you can't actually see it because the tooltip for the thread
// draws on top of it, so you can't see the menu.
// [x] double-click vs. single-click for folder navigation, see if we can infer
// [x] 'view rules' need to be rephrased as "function" calls in the expression language
// [x] need a formalization which takes unknown identifiers which are called, and tries
// to use that to apply a IR-generation rule, which is keyed by that unknown
// identifier
// [x] we need to select expressions as "parents" when possible, so that when using an
// auto-view-rule (or similar context), leaf identifiers referring to e.g. members
// of an expression's type resolve correctly (e.g. bitmap(base, width, height) being
// used as a shorthand for bitmap(foo.base, foo.width, foo.height) when evaluating
// foo).
// [x] single-line visualization busted with auto-view-rules applied, it seems...
// not showing member variables, just commas, check w/ mohit
// [x] r8 bitmap view rule seems incorrect?
////////////////////////////////
//~ rjf: Build Options