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

Design the Execution Management Functionality #710

Closed
11 tasks
iamrecursion opened this issue Jan 22, 2020 · 0 comments
Closed
11 tasks

Design the Execution Management Functionality #710

iamrecursion opened this issue Jan 22, 2020 · 0 comments
Assignees
Labels
-tooling Category: tooling p-medium Should be completed in the next few sprints

Comments

@iamrecursion
Copy link
Contributor

Summary

In addition to the standard language server functionality that we aim to provide over time (compile-time diagnostics, auto-completion, and so on), the nature of Enso and its visual environment means that we need to

Value

This functionality is the main building block for letting the GUI get updates on watched portions of the program.

Specification

  • Work carefully to design the exact messages needed to support the following functionality. These messages may be able to be performed on top of executeCommand, or may require custom protocol extensions. This is not yet known:
    • Execution of a function with provided arguments.
    • Execution of a function from a given call site (stack position and code position).
    • Attach an execution listener to an arbitrary code span.
    • Detach an execution listener by ID.
    • Implement heartbeat messages for execution listeners. If a heartbeat response isn't received before some time-out, the language server should detach the listener.
    • Force cache invalidation for arbitrary code spans.
    • Attach an automatic execution request.
    • Detach an automatic execution request.
    • Redirect stdout/stdin/stderr to and from the IDE, and exactly how this should work.
  • For each of the above messages, ensure that they are specified in the design document.

Acceptance Criteria & Test Cases

  • We have a coherent design for how this portion of the integration is going to work.
@iamrecursion iamrecursion assigned kustosz and unassigned kustosz and DmytroMitin Jan 31, 2020
@kustosz kustosz closed this as completed Mar 5, 2020
@iamrecursion iamrecursion transferred this issue from another repository Jun 23, 2020
@joenash joenash added -tooling Category: tooling Change: Non-Breaking p-medium Should be completed in the next few sprints labels Jun 23, 2020
@iamrecursion iamrecursion mentioned this issue Jun 24, 2020
26 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-tooling Category: tooling p-medium Should be completed in the next few sprints
Projects
None yet
Development

No branches or pull requests

5 participants