Skip to content

Fix bugs - #118

Merged
Y-Nak merged 69 commits into
argotorg:mainfrom
Y-Nak:fix-bugs
Oct 23, 2026
Merged

Y-Nak merged 69 commits into
argotorg:mainfrom
Y-Nak:fix-bugs

Conversation

@Y-Nak

@Y-Nak Y-Nak commented Oct 21, 2026

Copy link
Copy Markdown
Member

@micahscopes Please review after #56 and #57 are merged, I'll make this PR ready when they are merged.
Fix ABI and storage corruption, trait evidence and specialization, lexical scope and recursive layouts, parser behavior, editor operations, and test-process cleanup. Add regression coverage across related paths.

Y-Nak added 30 commits October 15, 2026 21:08
@Y-Nak
Y-Nak requested a review from micahscopes October 21, 2026 09:59
@Y-Nak
Y-Nak marked this pull request as ready for review October 22, 2026 07:29
@Y-Nak

Y-Nak commented Oct 22, 2026

Copy link
Copy Markdown
Member Author

@micahscopes Ok, everything is ready. Would you review it, please?

Passing caller y into capture(x) must preserve that value beneath an unrelated lambda parameter y. PR argotorg#118 newly accepts this source but returns callback argument 9 instead of runtime inputs 17 and 23. This fixture intentionally fails until symbolic substitution preserves binding identity.
The helper parameter x must retain the supplied runtime input when read only from inline assembly. An unrelated caller local x=99 currently replaces it. This is a preexisting bug also present on PR argotorg#118 base, separate from the newly accepted lambda-binder collision. The test intentionally fails on both backends until capture binding identity is preserved.
@micahscopes

Copy link
Copy Markdown
Collaborator

I pushed up a couple of regression tests. Feedback from an agent:

This looks like substantial repair work, especially the shared ABI handling, storage-layout fixes, and preservation of trait evidence. The added regression coverage is valuable.

The two new tests cover returned closures: one exposes newly accepted wrong code in this PR, and the other captures a preexisting assembly-only capture bug. Both appear related to preserving binding identity when substituting expressions across scopes.

A possible follow-up is a shared, capture-safe substitution mechanism, rather than handling each naming collision separately.

Focused ABI, storage, trait-method, and control-flow execution tests passed on both backends. The review covered the major compiler boundaries, but wasn’t exhaustive across the solver, parser, and editor changes.

@Y-Nak

Y-Nak commented Oct 23, 2026

Copy link
Copy Markdown
Member Author

@micahscopes Thanks, fixed the proposed problems. I'm going to merge this PR so that it won't get any larger.

@Y-Nak
Y-Nak merged commit ec3dc91 into argotorg:main Oct 23, 2026
12 checks passed
@Y-Nak
Y-Nak deleted the fix-bugs branch October 23, 2026 01:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment