Skip to content

Avoid identifier clash between expander macros and user-defined sigs, etc. - #307

Merged
tnelson merged 8 commits into
devfrom
fix_internal_ids
May 28, 2025
Merged

tnelson merged 8 commits into
devfrom
fix_internal_ids

Conversation

@tnelson

@tnelson tnelson commented May 12, 2025 •

Copy link
Copy Markdown
Owner

At present, if the user names a sig or pred using the same name as an expander macro in Forge, there are various bad behaviors that come up (and because of the nature of macros, the behavior is not always amenable to easy diagnosis). While it is possible we could do something "better" in Racket to avoid this, it seems effective to rename internal expander macros to identifiers that are not Forge identifiers. E.g., this PR renames Expr to NT-Expr (short for "non-terminal", since it comes from the parser).

Two new test files check a variety of internal identifiers declared as both sigs and preds.

This PR also moves two very old, unused, subfolders of the Forge package (testme and check-ex-spec) out of the main package folder.

@tnelson
tnelson merged commit 3a304e9 into dev May 28, 2025
@tnelson
tnelson deleted the fix_internal_ids branch May 28, 2025 14:55
tnelson added a commit that referenced this pull request Jun 16, 2025
This PR will also add #307, avoiding identifier-name clashes.

This PR also includes auto-loading CnD visualizer specs to Sterling.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant