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

Implement private constructors & deconstructors/getters for types #8836

Closed
3 of 4 tasks
Akirathan opened this issue Jan 23, 2024 · 12 comments · Fixed by #9692
Closed
3 of 4 tasks

Implement private constructors & deconstructors/getters for types #8836

Akirathan opened this issue Jan 23, 2024 · 12 comments · Fixed by #9692
Assignees
Labels
-compiler -syntax d-unknown Difficulty: unable to estimate difficulty x-new-feature Type: new feature request

Comments

@Akirathan
Copy link
Member

Akirathan commented Jan 23, 2024

Created from the discussion github.com/orgs/enso-org/discussions/7088

Follow-up of #7304

Tasks

Related to:

@Akirathan Akirathan added d-unknown Difficulty: unable to estimate difficulty x-new-feature Type: new feature request -compiler -syntax labels Jan 23, 2024
@Akirathan Akirathan self-assigned this Jan 23, 2024
This was referenced Jan 23, 2024
@JaroslavTulach JaroslavTulach changed the title Implement private constructors of types Implement private constructors & getters of types Jan 30, 2024
@JaroslavTulach JaroslavTulach changed the title Implement private constructors & getters of types Implement private constructors & deconstructors/getters for types Jan 30, 2024
@enso-bot
Copy link

enso-bot bot commented Apr 12, 2024

Pavel Marek reports a new STANDUP for today (2024-04-12):

Progress: - Looking into the parser - let's try to tweak it so that atom constructor can be private.

@enso-bot
Copy link

enso-bot bot commented Apr 15, 2024

Pavel Marek reports a new STANDUP for today (2024-04-15):

Progress: - Looking into the parser implementation. It should be finished by 2024-04-19.

@enso-bot
Copy link

enso-bot bot commented Apr 16, 2024

Pavel Marek reports a new STANDUP for today (2024-04-16):

Progress: - Implemented private constructor handling in Rust parser, and on the Java side as well.

  • Writing some compiler test.
  • Writing a new compiler pass that ensures that all constructors are either public or private in a type.] It should be finished by 2024-04-19.

@enso-bot
Copy link

enso-bot bot commented Apr 17, 2024

Pavel Marek reports a new STANDUP for today (2024-04-17):

Progress: - Writing runtime access checks for private constructors.

  • Designing how the runtime access will work.
    • Polyglot code cannot access anything private.
    • Don't fiddle with Truffle's Frame arguments - no need for that. It should be sufficient to check the accessibility when resolving the symbol before the constructor is called.
  • JPMS module system troubleshooting. It should be finished by 2024-04-19.

@enso-bot
Copy link

enso-bot bot commented Apr 18, 2024

Pavel Marek reports a new STANDUP for today (2024-04-18):

Progress: - Preliminary runtime access check implemented. Already have some tests passing.

  • The runtime access check is defined on Function. So in the future, implementing private methods should be simple - just modification in parser. It should be finished by 2024-04-19.

@enso-bot
Copy link

enso-bot bot commented Apr 19, 2024

Pavel Marek reports a new STANDUP for today (2024-04-19):

Progress: - Marked the PR as ready for review.

  • Runtime checks work, the only thing left to do is to properly specify how the polyglot access should work.
    • Should it throw a panic error when a private field is accessed? Should the private field be invisible? It should be finished by 2024-04-19.

@enso-bot
Copy link

enso-bot bot commented Apr 22, 2024

Pavel Marek reports a new 🔴 DELAY for today (2024-04-22):

Summary: There is 7 days delay in implementation of the Implement private constructors & deconstructors/getters for types (#8836) task.
It will cause 7 days delay for the delivery of this weekly plan.

The initial estimate was too optimistic. Also, I have to tackle other issues in the meantime.

Delay Cause: This PR is bigger than expected. We also have a lot of review comments to integrate.

@enso-bot
Copy link

enso-bot bot commented Apr 22, 2024

Pavel Marek reports a new STANDUP for today (2024-04-22):

Progress: - Integrating a lot of review comments

  • Fixing pattern matching on private constructors
    • This can be done during compilation.
    • Adding more tests, modifying the appropriate compiler passes. It should be finished by 2024-04-26.

@enso-bot
Copy link

enso-bot bot commented Apr 24, 2024

Pavel Marek reports a new STANDUP for yesterday (2024-04-23):

Progress: - Implementing compile-time check of pattern matching on private constructors. It should be finished by 2024-04-26.

@enso-bot
Copy link

enso-bot bot commented Apr 24, 2024

Pavel Marek reports a new STANDUP for today (2024-04-24):

Progress: - Trying to check all the resolved symbols in IR for private-access.

  • There is already a lot of metadata in the IR from previous passes, it should be enough to throw compilation error when private constructor is accessed. It should be finished by 2024-04-26.

@enso-bot
Copy link

enso-bot bot commented Apr 25, 2024

Pavel Marek reports a new STANDUP for today (2024-04-25):

Progress: - Fixing some last review requests.

@enso-bot
Copy link

enso-bot bot commented Apr 26, 2024

Pavel Marek reports a new STANDUP for today (2024-04-26):

Progress: - Stucked on Rust borrow checker, waiting for Kaz to help with the parser changes.

  • Looking into the problems with TCO and panics.
    • It seems that the problem is in the way we detect potential tail calls in the compilation It should be finished by 2024-04-26.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-compiler -syntax d-unknown Difficulty: unable to estimate difficulty x-new-feature Type: new feature request
Projects
Status: 🟢 Accepted
Development

Successfully merging a pull request may close this issue.

1 participant