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

Spec - module system #47

Open
17 tasks
haxscramper opened this issue Nov 13, 2021 · 2 comments
Open
17 tasks

Spec - module system #47

haxscramper opened this issue Nov 13, 2021 · 2 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@haxscramper
Copy link
Collaborator

haxscramper commented Nov 13, 2021

  • Importing exported symbol
  • Importing non-exported symbol
  • export
  • include
  • Magic value interpolation for include strings (it supports "$home" and maybe couple other patterns on top of that)
  • Ambiguous call resolution
  • import A/[X, Y, Z]
  • import except
  • from A import B
  • import A as B
  • Explicitly specifying module names when importing
  • import A as nil
  • Execution order of the toplevel statements in modules
  • Order of semantic checking of the modules, visibility of auto-generated entries (related to macros, but probably should be specified as a part of the module specification).
  • what happens when module is imported twice
  • what happens if the module imported twice while having different environment (for example var state {.compiletime.} in when check)
  • {.define(flag).} before the module import
@haxscramper haxscramper added the documentation Improvements or additions to documentation label Nov 13, 2021
@haxscramper haxscramper self-assigned this Nov 13, 2021
@saem
Copy link
Collaborator

saem commented Nov 13, 2021

Can we mark push and pop as in the danger zone of being axed or heavily changed? I think they're really problematic implementation wise and the syntax doesn't get enough information to know what to do and when.

Perhaps taking a step back, where should we note this info so we can cross reference it with stuff in the spec? My feeling is it should be in the spec as it's rapidly becoming the source of truth, but you might have a better idea.

@haxscramper haxscramper changed the title Language specification - module system Spec - module system Nov 14, 2021
@haxscramper
Copy link
Collaborator Author

haxscramper commented Nov 14, 2021

Can we mark push and pop as in the danger zone of being axed or heavily changed? I think they're really problematic implementation wise and the syntax doesn't get enough information to know what to do and when.

Perhaps taking a step back, where should we note this info so we can cross reference it with stuff in the spec? My feeling is it should be in the spec as it's rapidly becoming the source of truth, but you might have a better idea.

Spec - remove, redesign or make non-experimental/issues/55

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants