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

nrepl backend #29

Closed
jonase opened this issue Jan 2, 2013 · 6 comments
Closed

nrepl backend #29

jonase opened this issue Jan 2, 2013 · 6 comments

Comments

@jonase
Copy link
Contributor

jonase commented Jan 2, 2013

I think it would make sense to use nrepl as the evaluation service. It would open the door for simple solutions to at least the following issues:

Some work has already been done in an old patch by @hiredman (#3). I could try to move this forward if you (@kovasb) still think it’s a good idea.

[1] https://github.com/clojure/tools.nrepl/blob/master/src/main/clojure/clojure/tools/nrepl/middleware/interruptible_eval.clj

@kovasb
Copy link
Owner

kovasb commented Jan 2, 2013

I think going "nrepl" is a good next step.

Should session be a middleware, a transport, both, or neither? Trying to get up to speed on the design of nrepl.

In any case, it would be great to support both
a) evaluation from the session web UI
b) evaluation from other nrepl clients (and log the back-and-forth traffic in datomic)

The main design question is, how should this traffic be represented in datomic? The main options seem to be
a) treat the messages as a string
b) have a more granular schema to capture the map components as attributes

In the longer term we'll also want to hook into the likes of ritz.

There are some interesting design notes at https://github.com/clojure/tools.nrepl/wiki/nREPL.Next that I will try to internalize.

@kovasb
Copy link
Owner

kovasb commented Jan 3, 2013

Is there a list of repl endpoint implementations somewhere?

The base case example shows starting up the server on a port, and connecting the client to it.

I'm looking for a way to do it without ports for our base case (when the session server and the nrepl endpoint are in the same jvm) . Seems there should be a way but requires understanding the code.

@kovasb
Copy link
Owner

kovasb commented Jan 3, 2013

If we make an nrepl schema, we'd want it to somehow mirror whats here: https://github.com/clojure/tools.nrepl/blob/master/doc/ops.md

@jonase
Copy link
Contributor Author

jonase commented Jan 3, 2013

First cut at nrepl backend here: jonase/session@master...nrepl

Note that there are more changes than are necessary for the nrepl backend as i did the work in a branch where I had previously made the datomic connection and aleph channel explicit (inside a ctx map) instead of as global vars.

The interesting part for the nrepl backend is probably the new session.nrepl namespace and corresponding schema changes.

@kovasb
Copy link
Owner

kovasb commented Jan 4, 2013

Thats great news! Is there any reason not to merge this in?

@kovasb
Copy link
Owner

kovasb commented Mar 25, 2014

In the latest version of session, we are going with a different architecture that is not particularly compatible with nrepl...

@kovasb kovasb closed this as completed Mar 25, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants