-
-
Notifications
You must be signed in to change notification settings - Fork 132
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
[BUG] Upgrading from 0.15.2 to 0.16.x goes boom, boom, boom #527
Comments
Look like you uncovered a bug in the new parser based on pegen. I will try to investigate ASAP. |
A quick investigation points to fn_opcua_get_tree as the function that we fail to parse |
Such a beautiful function though 😢 |
I have one likely suspect but I will dive deeper later today. I will keep you posted. |
Okay, so my first suspicion was silly, and you simply suffer from the deeply recursive nature of the parser. One workaround woud be to avoid so many nested comprehensions. A solution would consist in adopting the trampoline pattern as used in bytecode when computing stack depth. The bad news is that it requires some fundamental changes into how pegen generates parsers. I will look into it though. |
Thank. I don't see how to improve the It worked in What were the reasons to switch to the |
Hi, any news on this ? |
I have been busy working on Python 3.12 support so there has been no definitive fix for this. However I believe you could easily refactor your code to use a factory function to generate the list of children and replace the deep syntactic nesting by some recursive calls. Something like:
|
Thank for the feedback, I'll give it a try. |
Enaml app, using @enamlx as well, worked nice on Feb 20th 2023, but then 0.16.0 was published :
Install
Run
ph2_Baseline_cm7_client_view.enaml.txt
Cry
There are some external files (icons for the tree) that are missing but not mandatory to get the error.
ph2_Baseline_cm7_client_view.error.txt
Regards.
The text was updated successfully, but these errors were encountered: