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

Tree@\loc to Tree.src #20

Open
jurgenvinju opened this issue Nov 23, 2021 · 4 comments
Open

Tree@\loc to Tree.src #20

jurgenvinju opened this issue Nov 23, 2021 · 4 comments
Assignees

Comments

@jurgenvinju
Copy link
Member

  • In ParseTree.rsc in the standard library it says: anno loc Tree@\loc;
  • The interpreter already simulates this by data Tree(loc src=|unknown:///|)
  • Most of our Rascal code still uses the @\loc annotation syntax which is simulated by the interpreter and the compiler by .src
  • This is scattered over:
    • rascal
    • rascal-core
    • typepal
    • flybytes
    • rascal-eclipse
    • rascal-language-servers
    • ... ?
  • We have simple cripts to automatically rewrite locations to keyword parameters, including the renaming of "loc" to "src".
  • We need to synchronize this in the same way as the Java11 move, starting with rascal we have to move one-by-one through the dependency graph.
  • Its complex to do this while other changes are being done at the same time, since it can invite commit conflicts due to the many small changes in many files.
@DavyLandman
Copy link
Member

I agree.

  • Is this the right repo?
  • we also have to migrate the is defined check to an is pres ent check.

@jurgenvinju
Copy link
Member Author

we also have to migrate the is defined check to an is pres ent check

that has already been done. the only matter left is to decide to remove the has operator. The ? operator on keyword fields checks whether or not the field has been set explicitly, or that a default will be returned when the field is projected.

Is this the right repo?

this is the right repo for all crosscutting concerns where almost all usethesource projects have to synchronize on a non-backward compatible change. an copy issue per repo is useful in case it takes long.

@DavyLandman
Copy link
Member

this is the right repo for all crosscutting concerns where almost all usethesource projects have to synchronize on a non-backward compatible change. an copy issue per repo is useful in case it takes long.

true, but keeping this in the rascal repo would also be fine, as it's fallout from a change in that repo.

@jurgenvinju
Copy link
Member Author

See https://usethesource.io/about/processes.html#:~:text=Architectural%20Change%20Process,issue%20is%20closed.

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

No branches or pull requests

3 participants