Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
88386b0
feat(statics): integrate dynamic statics support
7h3kk1d Oct 13, 2025
b734168
2 Statics 2 Styling
7h3kk1d Oct 14, 2025
bece9d5
Fix patterns in dynamic statics
7h3kk1d Oct 15, 2025
363ab8c
Temp fix for #1987
7h3kk1d Oct 16, 2025
becddc6
feat: add dynamic feedback toggle
7h3kk1d Oct 16, 2025
f7e1cf3
Only probe unknown expressions when dynamic_feedback is enabled
7h3kk1d Oct 16, 2025
ad20f30
Display dynamic errors in the cursor inspector
7h3kk1d Oct 16, 2025
f76b8f8
Style dynamic cursor errors
7h3kk1d Oct 16, 2025
5c84b73
Merge branch 'dyntype-type-proj' into dynamic_statics
7h3kk1d Oct 17, 2025
17ac3f3
Merge branch 'dyntype-type-proj' into dynamic_statics
7h3kk1d Oct 17, 2025
3c88e7c
Only calculate static type of probed expressions when necessary
7h3kk1d Oct 20, 2025
720463c
Merge branch 'dyntype-type-proj' into dynamic_statics
7h3kk1d Oct 21, 2025
fa3f8dc
Disable dynamic feedback in the presence of errors
7h3kk1d Oct 28, 2025
5b49176
refactor: update dynamic type computation to use join_all
7h3kk1d Oct 29, 2025
8869136
remove debug print statements for dynamic ID checks
7h3kk1d Oct 29, 2025
9cff4f4
Cursor inspector merge dynamic/static types
7h3kk1d Oct 29, 2025
4bbb2e2
temp commit
7h3kk1d Oct 30, 2025
8ee7551
Add more variants to type diff
7h3kk1d Oct 30, 2025
b8aac11
Merge remote-tracking branch 'origin/dyntype-type-proj' into dynamic_…
7h3kk1d Oct 30, 2025
dc89770
Fix dynamic static incrementality
7h3kk1d Oct 30, 2025
c002301
Fix map in dynamic statics calls
7h3kk1d Oct 31, 2025
e7c4b2a
Merge remote-tracking branch 'origin/dyntype-type-proj' into dynamic_…
7h3kk1d Nov 4, 2025
bcfc455
Fix assertion
7h3kk1d Nov 4, 2025
2d403e7
Add better test for dynamic feedback
7h3kk1d Nov 4, 2025
b0bcdaf
refactor(test): extract helper functions for dynamic feedback tests
7h3kk1d Nov 4, 2025
e390bd3
Add another dynamic feedback test and make helper functions
7h3kk1d Nov 4, 2025
9b910d9
Make typ and name parameters for fn factory grammar optional and labeled
7h3kk1d Nov 4, 2025
6741884
add unannotated lambda test for dynamic feedback
7h3kk1d Nov 4, 2025
f320ab3
Add unannotated lambda called with inconsistent types
7h3kk1d Nov 4, 2025
dc88f11
Add test case for polymorphism in dynamic feedback
7h3kk1d Nov 4, 2025
7d2adb7
first attempt closure selection
7h3kk1d Nov 5, 2025
d547539
update on pinned probe change
7h3kk1d Nov 5, 2025
df2f3b9
Merge branch 'dyntype-type-proj' into dynamic_statics
7h3kk1d Nov 10, 2025
5c853fa
fix tests
7h3kk1d Nov 10, 2025
9995642
feat: integrate type environment into evaluator
7h3kk1d Nov 11, 2025
105459c
update hide_env logic and improve type substitution in Transition module
7h3kk1d Nov 12, 2025
f134820
temp changes to probe proj type environment
7h3kk1d Nov 12, 2025
a53b8aa
First draft at dynamic to static feedback under type application
7h3kk1d Nov 12, 2025
285425b
Fix pattern ty_env
7h3kk1d Nov 12, 2025
e64112f
feat: add type meet operation for deriving dynamic types for dynamic …
7h3kk1d Nov 13, 2025
a1fbd35
PR cleanup
7h3kk1d Nov 13, 2025
bb98bf3
Readd builtins
7h3kk1d Nov 13, 2025
54391be
meet fixes and tests
7h3kk1d Nov 13, 2025
6096f18
pass type environment to ascriptions transition
7h3kk1d Nov 13, 2025
f6c0393
refactor: remove commented debug print statements from Transition module
7h3kk1d Nov 13, 2025
41a1b0c
Revert tyap_env in probeproj
7h3kk1d Nov 13, 2025
5825b48
refactor: remove debug print statements from substitute_closures func…
7h3kk1d Nov 13, 2025
7abb459
fixup - remove debug code
7h3kk1d Nov 13, 2025
f09850a
Cleanup in Info
7h3kk1d Nov 13, 2025
604d0ca
refactor(statics): extract common dynamic self derivation logic
7h3kk1d Nov 13, 2025
ff9f7f4
refactor(language): consolidate TypAp case handling for TypFun and Ty…
7h3kk1d Nov 14, 2025
6ae9a16
More simplification
7h3kk1d Nov 14, 2025
af7dcc5
Just shadow above ty_env
7h3kk1d Nov 14, 2025
b82f9c9
refactor: consolidate dynamic statics exps and ty_envs into unified s…
7h3kk1d Nov 14, 2025
4302f28
Revert "Revert tyap_env in probeproj"
7h3kk1d Nov 14, 2025
d52b0ac
fix: rewrap parens in elaborate_pattern to preserve ids for implicit …
7h3kk1d Nov 14, 2025
0074f02
Add more test s for polymorphism with dynamic feedback
7h3kk1d Nov 14, 2025
2dee804
feat: implement type instantiation tracking and integrate with dynami…
7h3kk1d Nov 14, 2025
fecd5b9
fix: update testable output format in stepper confluence test for bet…
7h3kk1d Nov 14, 2025
2436058
feat: enhance type instantiation tracking with call stack and filteri…
7h3kk1d Nov 14, 2025
f58d469
fix: remove debug print statements from uexp_to_info_map for cleaner …
7h3kk1d Nov 14, 2025
0d0e1d2
feat: add RecordStackFrame to side effects in transition module for t…
7h3kk1d Nov 17, 2025
6be657b
refactor: streamline side effects handling in Transition module
7h3kk1d Nov 17, 2025
fa8842e
feat: extend cur_ap function to handle TypAp cases in dynamic cursor
7h3kk1d Nov 17, 2025
370805a
refmt
7h3kk1d Nov 18, 2025
203deda
fix: remove warning suppression and commented skip from dynamic type …
7h3kk1d Nov 18, 2025
89bdf9d
revert formatting changes
7h3kk1d Nov 18, 2025
a89249d
fix: remove unnecessary block from dynamic type environment test
7h3kk1d Nov 18, 2025
eb15f5b
feat: add contains_unknown function to Typ
7h3kk1d Nov 18, 2025
907b32b
Readd opaque to closure environment
7h3kk1d Nov 18, 2025
46897b4
fix: update comments for clarity in TypeInstMap module
7h3kk1d Nov 18, 2025
a1aaf4a
refactor: simplify dynamic feedback tests by using parser
7h3kk1d Nov 18, 2025
67fe922
Revert builtins changes
7h3kk1d Nov 18, 2025
bba4295
refactor: unify dynamics handling by replacing Map and TypeInstMap wi…
7h3kk1d Nov 18, 2025
8eb8810
refactor: rename create_dynamic_expressions to mk_dynamic_statics for…
7h3kk1d Nov 18, 2025
fda0364
Merge remote-tracking branch 'origin/dyntype-type-proj' into dynamic_…
7h3kk1d Nov 18, 2025
5a57d9c
pr feedback
7h3kk1d Nov 18, 2025
9fa1eba
Merge branch 'dynamic_statics' into tyap_env
7h3kk1d Nov 18, 2025
102efe6
refactor: remove unnecessary ListUtil import from Typ.re
7h3kk1d Nov 18, 2025
26decff
Handle type application in dynamic static feedback (#2016)
7h3kk1d Nov 18, 2025
2607515
refactor: streamline dynamic type calculation in statics
7h3kk1d Nov 18, 2025
55bb128
refactor: extract calculate_dynamic_type function
7h3kk1d Nov 18, 2025
00936b4
refactor: clarify comments on TupLabel handling in elaborate functions
7h3kk1d Nov 18, 2025
17f5fe8
Remove debug variable and refmt
7h3kk1d Nov 18, 2025
42144bc
refactor: simplify dynamics function
7h3kk1d Nov 18, 2025
345b1d4
Revert timeout change
7h3kk1d Nov 18, 2025
e868757
refactor: remove unnecessary blank line
7h3kk1d Nov 18, 2025
f6636fa
refactor: rename annotated_exp' to annotated_exp and update related r…
7h3kk1d Nov 18, 2025
e45a9cc
Remove incorrectly copied comment
7h3kk1d Nov 18, 2025
d5d5689
Remove debug code
7h3kk1d Nov 18, 2025
8dfe805
Stop hardcoding is_edited
7h3kk1d Nov 18, 2025
c93e6c9
Merge remote-tracking branch 'origin/dyntype-proj' into dynamic_statics
7h3kk1d Nov 19, 2025
49e24d9
Merge remote-tracking branch 'origin/dynamic_statics' into dynamic_st…
7h3kk1d Nov 21, 2025
2f494b9
Merge branch 'dyntype-proj' into dynamic_statics
7h3kk1d Nov 21, 2025
5c2b871
Revert workerserver change
7h3kk1d Nov 21, 2025
89ec4e3
refactor(CursorInspector): simplify dynamic type handling in view_type
7h3kk1d Nov 21, 2025
beed383
add warning to dynamic statics feedback for performance impacts
7h3kk1d Nov 26, 2025
8ccef1c
Merge remote-tracking branch 'origin/dyntype-proj' into dynamic_statics
7h3kk1d Nov 26, 2025
c74224a
Replace dynamics with result in Theorems.re
7h3kk1d Nov 26, 2025
480af62
Add dynamic error indicator to term view and update CSS for dynamic i…
7h3kk1d Nov 26, 2025
7a40c8b
Remove whitespace
7h3kk1d Dec 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion src/haz3lcore/derived/CachedStatics.re
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ type t = {
elaborated: Exp.t,
info_map: Statics.Map.t,
error_ids: list(Id.t),
dynamic_info_map: Statics.Map.t,
dynamic_error_ids: list(Id.t),
};

let empty: t = {
Expand All @@ -24,6 +26,8 @@ let empty: t = {
},
info_map: Id.Map.empty,
error_ids: [],
dynamic_info_map: Id.Map.empty,
dynamic_error_ids: [],
};

let elaborate =
Expand All @@ -49,7 +53,7 @@ let init_from_term = (~settings, ~is_dynamic_term, ~ctx=?, ~ana=?, term): t => {
| _ when !settings.dynamics && !settings.elaborate =>
dh_err("Dynamics & Elaboration disabled")
| _ =>
switch (elaborate(false, info_map, term)) {
switch (elaborate(settings.dynamic_feedback, info_map, term)) {
| DoesNotElaborate => dh_err("Elaboration returns None")
| Elaborates(d, _) => d
}
Expand All @@ -59,6 +63,8 @@ let init_from_term = (~settings, ~is_dynamic_term, ~ctx=?, ~ana=?, term): t => {
elaborated,
info_map,
error_ids,
dynamic_info_map: Statics.Map.empty,
dynamic_error_ids: [],
};
};

Expand Down
8 changes: 7 additions & 1 deletion src/haz3lcore/projectors/implementations/ProbeProj.re
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,11 @@ let hide_env = (info: info): bool =>
let cur_ap = (info: info) =>
switch (info.statics) {
| Some(InfoExp({term: {term: Ap(_), _} as ap, _}))
| Some(InfoExp({term: {term: Probe({term: Ap(_), _} as ap, _), _}, _})) =>
| Some(InfoExp({term: {term: Probe({term: Ap(_), _} as ap, _), _}, _}))
| Some(InfoExp({term: {term: TypAp(_), _} as ap, _}))
| Some(
InfoExp({term: {term: Probe({term: TypAp(_), _} as ap, _), _}, _}),
) =>
Some(Exp.rep_id(ap))
| _ => None
};
Expand All @@ -147,6 +151,8 @@ module DynCursor = {
s.pinned_call = None;
};

let get_pinned_call = () => s.pinned_call;

let capture_cursor = (closure: closure): unit => {
s.call_cursor = closure.call_stack;
};
Expand Down
2 changes: 1 addition & 1 deletion src/haz3lcore/zipper/action/Introduce.re
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ module IntroduceExp: Introducable with type t = Exp.t = {
| Arrow(_, _) =>
let cursor_pat = Pat.empty_hole();
Some((
fn(cursor_pat, empty_hole(), None, None),
fn(cursor_pat, empty_hole()),
List.hd(cursor_pat.annotation.ids),
false,
));
Expand Down
3 changes: 3 additions & 0 deletions src/language/CoreSettings.re
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ type t = {
elaborate: bool,
assist: bool,
dynamics: bool,
dynamic_feedback: bool,
flip_animations: bool,
evaluation: Evaluation.t,
};
Expand All @@ -45,6 +46,7 @@ let off: t = {
elaborate: false,
assist: false,
dynamics: false,
dynamic_feedback: false,
flip_animations: false,
evaluation: Evaluation.init,
};
Expand All @@ -54,6 +56,7 @@ let on: t = {
elaborate: true,
assist: true,
dynamics: true,
dynamic_feedback: true,
flip_animations: true,
evaluation: Evaluation.init,
};
Expand Down
9 changes: 3 additions & 6 deletions src/language/builtins/BuiltinsADT.re
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,7 @@ module Option = {
),
],
),
None,
Some("option_map+"),
~name="option_map+",
),
None,
)
Expand Down Expand Up @@ -122,8 +121,7 @@ module Option = {
),
],
),
None,
Some("option_bind+"),
~name="option_bind+",
),
None,
)
Expand Down Expand Up @@ -156,8 +154,7 @@ module Option = {
),
],
),
None,
Some("option_to_list+"),
~name="option_to_list+",
),
None,
)
Expand Down
Loading