Skip to content

Avoid collisions with the RGF argument binding - #148

Merged
ChrisRackauckas merged 1 commit into
masterfrom
fix/deterministic-rgf-args
Aug 23, 2026
Merged

ChrisRackauckas merged 1 commit into
masterfrom
fix/deterministic-rgf-args

Conversation

@ChrisRackauckas

Copy link
Copy Markdown
Member

Summary

Follow-up to #147. Replace the generated wrapper's ASCII __args binding with the deterministic package-specific identifier ˍ₋rgf₋args.

This preserves deterministic generated source without a per-module gensym while making accidental capture of a user-defined __args function negligible.

Regression

Restore the __args MRE documented in #146. It fails on the merged master by attempting to call the argument tuple and passes with this change.

The fixed identifier is collision avoidance rather than complete hygiene: code that deliberately uses the exact name ˍ₋rgf₋args can still collide.

Verification

  • Focused f and __args collision regressions
  • julia --startup-file=no --project=. -e 'using Pkg; Pkg.activate("."); Pkg.test()'
  • Runic v1.9.0 --check --diff --verbose over all 10 tracked Julia files

Checklist

  • Tests added for the remaining collision
  • Full local test suite passes
  • Runic passes
  • Public API is unchanged
  • Documentation and version changes are not needed

@ChrisRackauckas

Copy link
Copy Markdown
Member Author

Implementation log for commit d453982:

  1. Fetched the merged master at 28fa8b0 and confirmed Gensym / remove the RGF name instead of using f and __args #147 removed the f wrapper binding but retained ASCII __args.
  2. Replaced the helper formal, quoted tuple reference, generated vararg binder, and helper-call argument with the same deterministic ˍ₋rgf₋args identifier.
  3. Restored the __args regression from Stack overflow when calling a function named f outside the RGF #146 beside the merged f regression.
  4. Verified the identifier code points are U+02CD, U+208B, rgf, U+208B, args.
  5. Ran focused collision checks, the full package test suite, and the repository's CI-matching Runic check.

Local results:

  • Focused f and __args regressions: passed
  • Pkg.test(): RuntimeGeneratedFunctions tests passed
  • Runic v1.9.0 over all 10 tracked Julia files: passed

Next step: monitor the full GitHub Actions matrix and address any failures.

@ChrisRackauckas

ChrisRackauckas commented Aug 23, 2026 •

Copy link
Copy Markdown
Member Author

CI complete at d453982: all 16 checks passed, including Julia LTS, current, and pre-release on Linux, macOS, and Windows, plus QA, downgrade, documentation, Runic, Runic suggestions, spellcheck, and test-matrix detection.

@ChrisRackauckas
ChrisRackauckas merged commit 8bfd8f4 into master Aug 23, 2026
16 checks passed
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