Skip to content
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

Potential bug with float combinators pass #721

Open
developedby opened this issue Sep 27, 2024 · 0 comments
Open

Potential bug with float combinators pass #721

developedby opened this issue Sep 27, 2024 · 0 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@developedby
Copy link
Member

Reproducing the behavior

In the float combinators pass, we move combinators to the top-level when they are considered "unsafe" (as in, they could cause an infinite loop) or when their bodies are too large.

References at the end of a lambda sequence are considered always safe.
At the same time, these terms can be in active position, like as the head of an application.

This means that with enough arguments, the references could become "exposed", active and trigger an infinite expansion.

Because applications are considered as safe if all of their children are safe, it looks to be possible to have a situation where an application is not properly moved to top-level due to these conditions.

I was thinking of something like (@* ref-to-recursive safe1 safe2), but don't currently have any concrete examples.

We need to investigate this a bit and see if this is a bug or not. If it's not, write down some comments in the code explaining why this is ok.

System Settings

Bend commit 124c43d

Additional context

No response

@developedby developedby added bug Something isn't working help wanted Extra attention is needed labels Sep 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant