Skip to content

Document why clone is called clone; consider merging with describe into a register op #4

Description

@bbatsov

Two related items from the PR #1 discussion about session establishment.

  • @imrekoszo asked why the op is called clone rather than something like new-session, and followed up asking for the explanation to live in the doc. @alexander-yakushev explained that the name is literal: when invoked on an existing session, it clones that session's state (notably dynamic-variable bindings); when invoked without a parent session, there's nothing to clone yet. The spec should say this.
  • Now that the spec asks clients to send describe immediately on connecting, @technomancy suggested folding the two together into a single register op that returns describe-style info and also registers a session. Worth a real discussion before doing anything.

My take:

  • I'm open to the register op idea, though we could probably retrofit clone to do the same thing.
  • Even if we introduce a new op, I'd probably keep clone around for backwards compatibility.
  • In general I like it when all ops are verbs. completions is an exception for historical reasons (to avoid collisions with cider-nrepl), but down the road anything is possible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions