enso-org / enso

Hybrid visual and textual functional programming.
https://enso.org
Apache License 2.0
7.34k stars 323 forks source link

Implement private modules #7304

Closed Akirathan closed 11 months ago

Akirathan commented 1 year ago

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
- [x] Parser handles `private` keyword at the beginning of the module.
- [x] Ensure that private modules cannot be accessed outside the defining project. Neither via imports during compilation time, neither via FQN during runtime.
jdunkerley commented 1 year ago

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

Akirathan commented 1 year ago

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[bot] commented 1 year ago

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[bot] commented 1 year ago

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

Progress: - Catching up

enso-bot[bot] commented 1 year ago

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

Progress: - Discussion with Kaz about the parser modifications

enso-bot[bot] commented 12 months ago

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.

enso-bot[bot] commented 12 months ago

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

enso-bot[bot] commented 12 months ago

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

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

enso-bot[bot] commented 12 months ago

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[bot] commented 12 months ago

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.

enso-bot[bot] commented 11 months ago

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.

enso-bot[bot] commented 11 months ago

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[bot] commented 11 months ago

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

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

enso-bot[bot] commented 11 months ago

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[bot] commented 11 months ago

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

Progress: - Simplifying the compiler pass

enso-bot[bot] commented 11 months ago

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

Progress: - Fighting with the CI