Commit Graph

47 Commits

Author SHA1 Message Date
Ryan Fleury f3974b2af7 only/omit; disallow chained fastpaths (vs-style ,x ; ,b; ,count) in nested irtree generations 2025-04-17 15:36:43 -07:00
Ryan Fleury ee0c1b25c3 eval ir generation: adjust autohook-allowance to be a stack, and correctly disable it for all sub-evaluations when using a raw lens, such that autohooks do not apply for evaluation of the parameter (e.g. raw(foo) -> foo, without allowing mapping of foo to something else) 2025-04-14 11:07:18 -07:00
Ryan Fleury abd33f7160 new (and successful :) ) story for 'parent/overridden irtrees'. basically, if we have a rule which maps some eval X's type from A -> B, we preserve the original ir-tree compilation of A in the 'history' when we inevitably produce the ir-tree compilation of B. this can be used for accesses on overridden evaluations, and it allows us to implement $ in auto view rules. 2025-04-11 11:58:43 -07:00
Ryan Fleury b60329c817 eliminate view rule column; eliminate 'parent irtree' experiment, need to do something else 2025-04-11 11:25:16 -07:00
Ryan Fleury 297c576623 irtree parent experiment (failed) 2025-04-10 16:20:52 -07:00
Ryan Fleury 0dd0f1b8bc rephrase type irgen hook -> irext, to eliminate cases where it'd be very easy to accidentally cause infinite recursion of ir generation (e.g. slice(x) requiring evaluation of 'lhs.count', where lhs == slice(x)). also bring back slice hooks 2025-04-10 15:19:29 -07:00
Ryan Fleury fbe747a8b4 further work on convergence, dead code elimination, and lens (view rule) calls 2025-04-10 14:29:57 -07:00
Ryan Fleury d3f0a9a672 checkpoint in moving from old lookup hooks -> new type hooks; elimination of unnecessary recomputation of ir-trees/evals, just use information in already-computed evals 2025-04-10 14:29:56 -07:00
Ryan Fleury 7c0a37fef3 boil down expr/irtree/type -> lookup_rule mapping more - since lens arguments are now stored in type info, we no longer need other ways of smuggling through expression trees. also fill out new path of pointer eval single-line string generation. 2025-04-10 14:29:56 -07:00
Ryan Fleury 9bfa4f87e3 work on new eval-viz layer stringification which factors out measurement/limiting/etc., but just walks an eval tree and stringifies each part; start working on new types <-> lookup-rule stuff 2025-04-10 14:29:56 -07:00
Ryan Fleury da69d9e91c more progress on new eval/view-rule integration; raddbg_entry_point markup feature 2025-04-10 14:29:55 -07:00
Ryan Fleury ecb3992b93 eval stability tests in tester; tear out last pass' view rule extensions 2025-04-10 14:29:55 -07:00
Ryan Fleury 710828c67d checkpoint in switching to new call-style of view rules for everything 2025-04-10 14:29:55 -07:00
Ryan Fleury 33de625373 eval: register, register alias name mapping in new name resolution pass 2025-04-02 14:56:53 -07:00
Ryan Fleury 6113a2e3db eval: do simplification pass over identifier resolution, shift from parsing stage -> ir generation / typechecking stage; do simplifications over expr tree, eliminate redundant kinds 2025-04-02 14:30:12 -07:00
Ryan Fleury 999eca5e29 more old eval trimming 2025-03-31 15:41:10 -07:00
Ryan Fleury 1adf280354 delete dead code in eval 2025-03-31 11:02:17 -07:00
Ryan Fleury b154c5a120 use slightly looser mapping for auto-view-rules, to not generate false negatives when looking up 2025-03-26 14:57:58 -07:00
Ryan Fleury cb6a66b98d member filtering, better visualization for selection state in targets/bps/threads/etc. 2025-03-14 13:27:26 -07:00
Ryan Fleury 8bca57ef7f improved stability w.r.t. cfgs and ctrl entities expansion across changes 2025-02-21 18:14:02 -08:00
Ryan Fleury 92df402ad1 member filtering 2025-02-20 18:46:22 -08:00
Ryan Fleury ec782fa39c correct tag poisoning in lookup-rule tag usage within ir generation, allow lookup-rules to call dependent irgens 2025-02-20 16:26:40 -08:00
Ryan Fleury 7d84ec79c5 formalize file/folder evaluations; use set-types for files/folders so that we can evaluate both file metadata & contents, rather than just assuming the contents; adjust slice view rule to just expand to the contents, rather than achieving the slice with a changed type 2025-02-16 14:13:48 -08:00
Ryan Fleury c603457460 dead code deletion, begin extending eval/eval-viz to work on expr-chains rather than single expressions; fixes / convergence for watch window 2025-02-15 18:11:22 -08:00
Ryan Fleury 863d98c43e do the same reuse of the computed irtree for array-index expr extensions 2025-02-13 08:13:53 -08:00
Ryan Fleury 50b195deb3 eliminate member-expr-extension irtree/oplist/etc. recomputations; just convert lhs irtree to bytecode and attach that to new expr as a leaf bytecode 2025-02-13 06:51:50 -08:00
Ryan Fleury d48cd460d1 begin prepping watch window ui for reintroduction of fancy rows; extend target/thread evaluations with .environment & .call_stack sketch; more convergence progress 2025-02-10 12:15:03 -08:00
Ryan Fleury 90c86dc812 eval/eval-viz: pull out rules for mapping exprs/irtrees -> lookup/expansion rules; use this path in the single-line value string generator; eliminate old non-view-rulified string generation paths 2025-02-04 13:20:25 -08:00
Ryan Fleury b9756d222a eval: sketch out parse/ir cache 2025-02-04 10:29:52 -08:00
Ryan Fleury 657b78c4ef eval: separate ir_ctx -> ir_state & ir_ctx; ir_state for implicit thread-local caching mechanisms for eval, ir_ctx for explicitly supplied user info 2025-02-04 09:57:13 -08:00
Ryan Fleury 9a405bee20 eval: lookup info hook -> just pass irtree, do not recompute; cache for type-key -> auto hook tag exprs; use tags/auto-tags in lookup rule for . operator; fix tag poisoning in ir generation pass; cache for type-key -> unpacked type info; replace all unpacked type info paths with cache usage 2025-02-03 13:21:08 -08:00
Ryan Fleury 59fe6c79cb distinguish root block from non-root blocks; in root case, we do not want to do a lookup-range to generate the block's expression (but in all other cases we do) 2025-02-03 10:07:20 -08:00
Ryan Fleury 6f4533d8f5 rd: new ctrl entity meta evaluation path; ctrl entity meta evaluation cache; eval: auto-view-rules (via 'auto hook map'), + support for 'type patterns', e.g. for templates; ir generation / typechecking hook application + source-tag coloring (to avoid infinite recursion of repeatedly-applied auto view rules 2025-02-02 17:08:14 -08:00
Ryan Fleury eab5c7c971 eval_visualization: eliminate expansion-range hook; move expansions & block tree building completely to new eval hooks for lookups 2025-02-02 14:39:43 -08:00
Ryan Fleury 07c9268941 eval: specify formal way in which tags (view rules) can fit into expression language, both in parsing & in structure; introduce ir-generation hook step in eval pipeline, transfer most of the default non-vbisualization view rule features to that layer 2025-02-01 20:50:31 -08:00
Ryan Fleury aac93b5952 move over all expansion view rules to new eval-system lookup hooks; eliminate most of old hooks 2025-02-01 17:37:24 -08:00
Ryan Fleury 5b82fc2339 eliminate member-filtering hack for cfg views; eliminate deref-space-ptr hack 2025-01-30 15:52:26 -08:00
Ryan Fleury 92e68701d0 eval: lookup rule map building; eval: use general 'set' type-kind to specify custom lookup rule; watch: new table <-> stable-point mappings 2025-01-30 10:57:29 -08:00
Ryan Fleury 394d35287a fix default lookup rule 2025-01-29 17:00:50 -08:00
Ryan Fleury baa19f3de4 begin introducing 'lookup' hook path in eval ir-tree generation, to collapse/universalize all 'access' operations, such that ., ->, and [] operations can be overridden via view rules, for cfg evaluations, and so on 2025-01-29 16:41:14 -08:00
Ryan Fleury 4cc5f636fe cfg tree collection evaluation 2025-01-27 15:33:35 -08:00
Ryan Fleury 47462f4789 first pass at filesystem evaluation in eval system 2024-08-22 16:55:07 -07:00
Ryan Fleury 59c01a73af pipe through space information through eval compiler/interpreter 2024-08-15 11:21:52 -07:00
Ryan Fleury a0d91862a7 bundle per-module info in eval system; use all modules in all processes in ctrl layer evaluations; further sketching out of space info 2024-08-15 10:04:52 -07:00
Ryan Fleury 918895c091 small string evaluation; strings as values in eval 2024-08-14 10:49:56 -07:00
Ryan Fleury eac1672c4e begin sketching out eval paths for small string operations 2024-08-13 16:16:55 -07:00
Ryan Fleury 5a682e5888 split eval systems, to decouple types/exprs/parsing (debug info dependent), from irization (macro map dependent), from interpretation (completely independent of the former two stages & all their dependencies) 2024-08-06 13:57:48 -07:00