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 modules #7304

Closed
2 tasks done
Akirathan opened this issue Jul 17, 2023 · 16 comments · Fixed by #7840
Closed
2 tasks done

Implement private modules #7304

Akirathan opened this issue Jul 17, 2023 · 16 comments · Fixed by #7840
Assignees
Labels
-compiler -libs Libraries: New libraries to be implemented -parser p-medium Should be completed in the next few sprints x-new-feature Type: new feature request

Comments

@Akirathan
Copy link
Member

Akirathan commented Jul 17, 2023

Created from discussion #7088.

This is the first step of the implementation of the private keyword. Let's start with private modules.

Note that private and project-private are synonyms.

Tasks

@Akirathan Akirathan added p-medium Should be completed in the next few sprints x-new-feature Type: new feature request -compiler -libs Libraries: New libraries to be implemented -parser labels Jul 17, 2023
@Akirathan Akirathan self-assigned this Jul 17, 2023
@jdunkerley
Copy link
Member

We should allow a flag to enable bypassing this from the unit testing world as well please.

@Akirathan
Copy link
Member Author

We should allow a flag to enable bypassing this from the unit testing world as well please.

Yes. That is mentioned in the linked discussion under Overcoming encapsulation.

@enso-bot
Copy link

enso-bot bot commented Sep 13, 2023

Pavel Marek reports a new STANDUP for today (2023-09-13):

Progress: Looking into the Rust parser - add private keyword. It should be finished by 2023-09-22.

@enso-bot
Copy link

enso-bot bot commented Sep 18, 2023

Pavel Marek reports a new STANDUP for today (2023-09-18):

Progress: - Catching up

  • Book club
  • Looking into the rust parser macros and trying to implement the private keyword It should be finished by 2023-09-22.

@enso-bot
Copy link

enso-bot bot commented Sep 19, 2023

Pavel Marek reports a new STANDUP for today (2023-09-19):

Progress: - Discussion with Kaz about the parser modifications

  • Will implement all thhe rules for private keyword into the parser.
  • Still getting familiar with the parser code base.
  • Adding a new built in macro to the parser. It should be finished by 2023-09-22.

@enso-bot
Copy link

enso-bot bot commented Sep 21, 2023

Pavel Marek reports a new STANDUP for yesterday (2023-09-20):

Progress: - Trying to implement a simple syntax rule for the private keyword - it is either standalone or followed by an identifier.

  • Gave that out after a while - private is just a single token for now. Should be sufficient. It should be finished by 2023-09-22.

@enso-bot
Copy link

enso-bot bot commented Sep 21, 2023

Pavel Marek reports a new STANDUP for today (2023-09-21):

Progress: - Discussion with Hubert and Michal about some CI improvements - reordering of steps in the engine pipeline and disabling dry-run benchmarks on Mac and Windows

  • Adding tests for private modules - ability to import projects from a sibling directory helps a lot with that.
  • Struggling a bit with calling Scala stuff from Java.
  • Implemented a functional prototype of PrivateModuleAnalysis compiler pass. It should be finished by 2023-09-22.

@enso-bot
Copy link

enso-bot bot commented Sep 22, 2023

Pavel Marek reports a new STANDUP for today (2023-09-22):

Progress: - More specification about parent module and sub module relationship with privacy

  • It seems that a single compiler pass will not be sufficient, I might need to tweak the exports resolution such that it does not include private submodules into exportedSymbols. It should be finished by 2023-09-22.

@enso-bot
Copy link

enso-bot bot commented Sep 25, 2023

Pavel Marek reports a new 🔴 DELAY for today (2023-09-25):

Summary: There is 7 days delay in implementation of the Implement private modules (#7304) task.
It will cause 7 days delay for the delivery of this weekly plan.

Delay Cause: The implementation got a bit more complicated than I originally expected.

@enso-bot
Copy link

enso-bot bot commented Sep 25, 2023

Pavel Marek reports a new STANDUP for today (2023-09-25):

Progress: - I will need to modify BindingsMap after all - it is not sufficient to have just one independent compiler pass.

  • Moreover, I might need to introduce PrivateAccessCheck at runtime, since I am struggling to properly implement access to a private module via FQN only in compile time.
  • Created PRs for enabling asserts in Enso integration tests and for introduction of Enso-specific assert It should be finished by 2023-09-29.

@enso-bot
Copy link

enso-bot bot commented Sep 26, 2023

Pavel Marek reports a new STANDUP for today (2023-09-26):

Progress: - Looking into an inspiration for runtime access checks from FastR, graal-py and graal-js.

  • Fix some PR reviews. It should be finished by 2023-09-29.

@enso-bot
Copy link

enso-bot bot commented Sep 27, 2023

Pavel Marek reports a new STANDUP for today (2023-09-27):

Progress: - Experimenting with checking accessibility of methods/types at runtime. It should be finished by 2023-09-29.

@enso-bot
Copy link

enso-bot bot commented Sep 29, 2023

Pavel Marek reports a new STANDUP for today (2023-09-29):

Progress: - Trying to properly ensure that submodule hierarchy has same visibility.

  • Seems that I cannot do that in a compiler pass, but will have to hack into Exports resolver. It should be finished by 2023-09-29.

@enso-bot
Copy link

enso-bot bot commented Oct 2, 2023

Pavel Marek reports a new 🔴 DELAY for yesterday (2023-10-01):

Summary: There is 5 days delay in implementation of the Implement private modules (#7304) task.
It will cause 5 days delay for the delivery of this weekly plan.

Delay Cause: Reverting back the runtime checks.

@enso-bot
Copy link

enso-bot bot commented Oct 2, 2023

Pavel Marek reports a new STANDUP for yesterday (2023-10-01):

Progress: - Simplifying the compiler pass

  • The submodule tree check is done also in the compiler pass.
  • Almost merged. It should be finished by 2023-10-04.

@mergify mergify bot closed this as completed in #7840 Oct 4, 2023
@enso-bot
Copy link

enso-bot bot commented Oct 4, 2023

Pavel Marek reports a new STANDUP for yesterday (2023-10-03):

Progress: - Fighting with the CI

  • Talking about various improvements to the bench framework. It should be finished by 2023-10-04.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-compiler -libs Libraries: New libraries to be implemented -parser p-medium Should be completed in the next few sprints x-new-feature Type: new feature request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants