Fork me on GitHub
#nrepl
<
2018-12-18
>
cgrand15:12:22

I’m trying to come up with a typology of eval messages, so far I identified four kinds: 1/ regular repl 2/ eval selection (in file buffer) and update repl (`*1` and friends are impacted), serialized with evals of type #1; switch and restore ns as required 3/ eval selection (in file buffer) but displays output in a transient buffer, not serialized with type #1, doesn’t update bindings 4/ out-of-the-blue eval for tooling purposes (doesn’t change bindings)

cgrand15:12:28

#4 and #3 may be the same

eraserhd16:12:11

maybe interprocess remote control?

eraserhd16:12:32

Not sure the purpose of the typology, but one use I've overheard is processes talking to each other. There's a bit in the nREPL about using the protocol to notify another server that it's alive and on what port, for example.

eraserhd16:12:53

I can't delete my DynamoDBs which back my Datomic databases from my laptop, so my restore-dev-environment-from-prod-back script runs datomic.api/delete-database via the socket REPL (over SSH).

eraserhd16:12:38

Is this tooling for purposes of your typology?

cgrand17:12:41

yes becaue it’s not tied to a user session (a user session being embodied by a repl buffer with history etc.)

eraserhd16:12:52

Also might be just #4

eraserhd16:12:30

hey, so it's pretty featureless and not yet documented, but rep, a single-shot nREPL client, is here: https://github.com/eraserhd/rep/tree/develop

eraserhd16:12:16

Building with Graal will be documented. It's painful and requires a patched Clojure and patched spec.alpha.

cgrand16:12:25

hat do you mean?

cgrand17:12:01

Rendering is half broken but remote browsing in action