-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Polymorphic macros seem to run all implementations #278
Comments
I fear the fix will involve a significant change to the bipartite rendezvous mechanism. That mechanism allows both new subexpression parses and new requests that consume a subexpression to show up in arbitrary order, in different threads, while ensuring that each consumer gets a chance to run with each possible subexpression.
|
For the specific case of semantic version, the error was about a redundancy of |
We're still working on a tiny test case to exhibit the problem (and which will be added as a regression test), but Todd's work with
semantic version
on 2023-08-23 indicated strongly that multiple macro implementations ran. The method was an override of"«…‡,»::=_;"
for exactly 3 local constants, which would have caused an early divergence in the parsing instruction tree, making it unclear whether we even have invented a mechanism that can converge them again to prevent multiple macro implementations from running.The proximal solution involved making the locals list in the override have size [2..∞), like the core implementation, and post-filtering it with a parse rejection if it didn't happen to be 3. That success seems to implicate the divergence of bundle trees due to parsing instruction variation in the plans generated for the implementations.
The text was updated successfully, but these errors were encountered: