-
Notifications
You must be signed in to change notification settings - Fork 236
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Separate data and control in the interactive protocol
Apart from using JSON messages, the new protocol is essentially the same as the old one. Significant differences: - Instead of crashing, invalid requests (missing fields, unsupported queries, etc) now cause F* to print a reasonably helpful diagnostic message. - Each query now includes an editor-supplied query id, and each response contains the id of the corresponding query. - Some of the queries were renamed (info → lookup, completions → autocomplete) for consistency (all query names are now verbs). - Messages that F* used to print to stdout or stderr are now translated into proper JSON messages and labeled with a severity level (a review of these messages is needed to decide which of these should be turned into properly reported errors or warnings including range information). - F* now prints the protocol's version and a list of supported interactive features before starting the interactive loop. This lets the Emacs mode do dynamic capability detection instead of relying on version numbers. The same information is available through a new "describe-protocol" query. - A failed “push” doesn't require the editor to immediately send a corresponding “pop” any more — instead, the pop happens automatically. Fixes #361, #366, and #828.
- Loading branch information
1 parent
9c81162
commit 90e901f
Showing
8 changed files
with
472 additions
and
359 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.