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

Inline Execution #8132

Closed
4e6 opened this issue Oct 23, 2023 · 18 comments · Fixed by #8148
Closed

Inline Execution #8132

4e6 opened this issue Oct 23, 2023 · 18 comments · Fixed by #8148
Assignees
Labels
-compiler -language-server p-high Should be completed in the next sprint x-new-feature Type: new feature request

Comments

@4e6
Copy link
Contributor

4e6 commented Oct 23, 2023

Description

The engine should allow the execution of arbitrary expressions at the given point in the program with access to local variables defined in the scope.

Currently, the language server provides two endpoints with similar functionality:

The difference is that the executeExpression evaluates the value once and then "detaches" from the expression, and the attachVisualization leaves the expression attached and re-evaluates when the program changes.

ToDo

The limitation of the current functionality is that it does not allow to access expressions in the local scope, for example given the program,

main =
    operator1 = ...
    operator2 = ...

the IDE should be able to request the execution of an expression in the scope of the main method, and the expression can contain operator1 and operator2 symbols.

Notes

  • When designing the new JSON-RPC protocol, how should the scope be specified? One way would be to provide the scope as an expressionId, and then assume that the execution happens in the same scope as expressionId, after the expression is defined.
@4e6 4e6 self-assigned this Oct 23, 2023
@hubertp hubertp moved this from ❓New to 🔧 Implementation in Issues Board Oct 23, 2023
@hubertp hubertp added -language-server -compiler x-new-feature Type: new feature request p-high Should be completed in the next sprint labels Oct 23, 2023
@JaroslavTulach
Copy link
Member

Where to find inline parsing related functionality:

The right functionality must be somewhere along these lines.

@enso-bot
Copy link

enso-bot bot commented Oct 24, 2023

Dmitry Bushev reports a new STANDUP for yesterday (2023-10-23):

Progress: Started working on the task. Had to refresh in my head the visualization infrastructure. Drafted the API. Started experimenting with the inline context. It should be finished by 2023-10-30.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Oct 24, 2023

Dmitry Bushev reports a new STANDUP for today (2023-10-24):

Progress: Continue working on the task. Drafted the runtime infrastructure for getting the inline context and evaluating the expression. Started working on the execution of the evaluated expression. It should be finished by 2023-10-30.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@4e6 4e6 mentioned this issue Oct 25, 2023
3 tasks
@enso-bot
Copy link

enso-bot bot commented Oct 26, 2023

Dmitry Bushev reports a new STANDUP for yesterday (2023-10-25):

Progress: Continue working on the task. Debugging failures related to the evaluated expression. Fixed an issue with the execution. Debugging an issue with the inability to access the local scope during the execution. It should be finished by 2023-10-30.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Oct 26, 2023

Dmitry Bushev reports a new STANDUP for today (2023-10-26):

Progress: Continue working on the task. Fixed the issue with the local scope. Implemented dedicated logic that evaluates the expression in the local scope. Started working on the runtime tests. It should be finished by 2023-10-30.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Oct 27, 2023

Dmitry Bushev reports a new STANDUP for today (2023-10-27):

Progress: Continue working on the task. Started working on wiring the logic to the language server. Updated the engine API. Added the tests. Started to work on the language server part. It should be finished by 2023-10-30.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Oct 31, 2023

Dmitry Bushev reports a new STANDUP for yesterday (2023-10-30):

Progress: Continue working on the task. Tried to unify the two methods of evaluating visualization expressions - in global and local scope. Turned out that the evaluation in local scope is quite different and it is better to implement a separate handling for it. It should be finished by 2023-10-30.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Oct 31, 2023

Dmitry Bushev reports a new 🔴 DELAY for today (2023-10-31):

Summary: There is 2 days delay in implementation of the Inline Execution (#8132) task.
It will cause 2 days delay for the delivery of this weekly plan.

Delay Cause: Need extra time to implement commodity logic around executing expressions in the local scope. Initially thought that I can reuse the infrastructure for visualizations, but turned out that it is a bit different and requires special handling

@enso-bot
Copy link

enso-bot bot commented Oct 31, 2023

Dmitry Bushev reports a new STANDUP for today (2023-10-31):

Progress: Continue working on the task. Finished implementing the new engine API for executing expressions in the local scope. Fixed the engine tests. It should be finished by 2023-11-01.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Nov 2, 2023

Dmitry Bushev reports a new STANDUP for yesterday (2023-11-01):

Progress: Continue working on the task. Implemented the tests for the new ExecuteExpression message. Fixed related errors. Updated the PR. Spent some time debugging the language server initialization issue in the cloud. It should be finished by 2023-11-01.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Nov 3, 2023

Dmitry Bushev reports a new 🔴 DELAY for yesterday (2023-11-02):

Summary: There is 5 days delay in implementation of the Inline Execution (#8132) task.
It will cause 5 days delay for the delivery of this weekly plan.

Delay Cause: After the discussion of initial implementation, decided that the expression evaluation logic should be on the fast path. This will require some modification of the instrumentation logic

@enso-bot
Copy link

enso-bot bot commented Nov 3, 2023

Dmitry Bushev reports a new STANDUP for yesterday (2023-11-02):

Progress: Continue working on the task. Started working on moving the execution logic on the fast path. Separated the Callbacks interface into the node execution callbacks and execution support callbacks. Started implementation of the new methods. It should be finished by 2023-11-06.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Nov 3, 2023

Dmitry Bushev reports a new STANDUP for today (2023-11-03):

Progress: Continue working on the task. Implemented the expression execution as a part of execution callbacks. Implemented a new onExpressionExecuted callback that sends the result of the computed expression to the user. Started working on fixing the tests. It should be finished by 2023-11-06.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Nov 7, 2023

Dmitry Bushev reports a new STANDUP for yesterday (2023-11-06):

Progress: Continue working on the task. Was working on the review comments. Reverted the changes to the callbacks interface. Cleaned up the module and instrumentor changes. It should be finished by 2023-11-06.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Nov 10, 2023

Dmitry Bushev reports a new 🔴 DELAY for today (2023-11-10):

Summary: There is 7 days delay in implementation of the Inline Execution (#8132) task.
It will cause 1 day delay for the delivery of this weekly plan.

Delay Cause: Returning to the task after a break. Need one day to implement the new instrumentation interface.

@enso-bot
Copy link

enso-bot bot commented Nov 10, 2023

Dmitry Bushev reports a new STANDUP for today (2023-11-10):

Progress: Continue working on the task. Updated the branch to a new develop. Implemented the new instrumentation interface. Fixed the tests. It should be finished by 2023-11-13.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@enso-bot
Copy link

enso-bot bot commented Nov 10, 2023

Dmitry Bushev reports a new STANDUP for yesterday (2023-11-09):

Progress: Started working on the task. Updated the runner logic. Started working on the language server part. Implemented requests. It should be finished by 2023-11-13.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

@4e6 4e6 moved this from 🔧 Implementation to 👁️ Code review in Issues Board Nov 13, 2023
@mergify mergify bot closed this as completed in #8148 Nov 13, 2023
mergify bot pushed a commit that referenced this issue Nov 13, 2023
close #8132

Update the `executionContext/executeExpression` request to execute expressions in the local scope.
@github-project-automation github-project-automation bot moved this from 👁️ Code review to 🟢 Accepted in Issues Board Nov 13, 2023
@enso-bot
Copy link

enso-bot bot commented Nov 14, 2023

Dmitry Bushev reports a new STANDUP for yesterday (2023-11-13):

Progress: Continue working on the task. Updated the PR. Fixed the review comments. Final testing. Merged. It should be finished by 2023-11-13.

Next Day: Next day I will be working on the #8132 task. Continue working on the task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-compiler -language-server p-high Should be completed in the next sprint x-new-feature Type: new feature request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants