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

Support cycles in the serialized IR structure #9361

Closed
radeusgd opened this issue Mar 11, 2024 · 5 comments · Fixed by #9972
Closed

Support cycles in the serialized IR structure #9361

radeusgd opened this issue Mar 11, 2024 · 5 comments · Fixed by #9972
Assignees
Labels
-compiler x-new-feature Type: new feature request

Comments

@radeusgd
Copy link
Member

As part of #8652 I'm extending the bindings map with additional metadata that results in a cycle within the IR. Currently, that causes the IR serialization to fail with StackOverflow, because there is no support for cycles.

We want to expand our IR serialization to support such looping.

I've added a few tests demonstrating the expected behaviour on the branch wip/persistance-loops.

@enso-bot
Copy link

enso-bot bot commented May 17, 2024

Jaroslav Tulach reports a new STANDUP for yesterday (2024-05-16):

Progress: - persistance with cycles: #9972

@JaroslavTulach JaroslavTulach moved this from 🔧 Implementation to 👁️ Code review in Issues Board May 17, 2024
@enso-bot
Copy link

enso-bot bot commented May 18, 2024

Jaroslav Tulach reports a new STANDUP for yesterday (2024-05-17):

Progress: - cycles in persistance: https://github.com/enso-org/enso/pull/9972/files#r1604646728

GitHub
Pull Request Description Fixes #9361 by delaying storing of Persistance.Reference instances and creating their table at the end of the stream. Checklist Please ensure that the following checklist h...

@mergify mergify bot closed this as completed in #9972 May 18, 2024
mergify bot pushed a commit that referenced this issue May 18, 2024
Fixes #9361 by delaying storing of `Persistance.Reference` instances and creating their table at the end of the stream.
@github-project-automation github-project-automation bot moved this from 👁️ Code review to 🟢 Accepted in Issues Board May 18, 2024
@enso-bot
Copy link

enso-bot bot commented May 19, 2024

Jaroslav Tulach reports a new STANDUP for yesterday (2024-05-18):

Progress: - reviewing Greg's #9950

Discord
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.

@enso-bot
Copy link

enso-bot bot commented May 20, 2024

Jaroslav Tulach reports a new STANDUP for yesterday (2024-05-19):

Progress: - solving the Parse loading problem: 773af10

Discord
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
GitHub
Pull Request Description The goal of this PR is to execute enso --run test/Base_Tests. That requires us to properly register all polyglot java import classes for reflective access. That's done ...

@enso-bot
Copy link

enso-bot bot commented May 21, 2024

Jaroslav Tulach reports a new STANDUP for yesterday (2024-05-20):

Progress: - ./runner --run test/Base_Tests ^Text works: #9997 (comment)

GitHub
Pull Request Description The goal of this PR is to execute ./runner --run test/Base_Tests ^Text. That requires us to properly register all polyglot java import classes for reflective access. That&#...

@radeusgd radeusgd mentioned this issue May 27, 2024
4 tasks
mergify bot pushed a commit that referenced this issue Jun 10, 2024
- Follow-up to #9361
- Enables assertions and fixes `count` check
- Tests and fixes null references
- Tests and fixes serializing a deserialized structure - by saving the id of the `Persistance` corresponding to the entry
- After the change to how we determine which `Persistance` instance to use, the most specific one is now used (based on the saved id). This has an unfortunate consequence that `Seq` which is most of the time represented by a subtype of `List`, is now using `PersistScalaList` which is not lazy.
- To alleviate that, we no longer use `Seq` to store some field lazily and instead use a dedicated type for that purpose: `InlineReference`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-compiler x-new-feature Type: new feature request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants