unrepl

discussing specification of an edn-based repl and its implementations.
2018-03-14T12:23:03.000312Z

Ah! Idea! I can merge the action maps client side! 😸

cgrand 2018-03-14T12:26:10.000283Z

@kotarak the (start) without map in start-aux is indeed wrong but I believe your solution is not right (conceptually)

cgrand 2018-03-14T12:27:59.000445Z

extensions maps allow to expose context-free actions, there’s no value in readvertising them on aux (the client already got them on the main conn)

cgrand 2018-03-14T12:28:45.000273Z

also what would we do if we allow dynamic advertising? broadcast the advertising to all related conns?

cgrand 2018-03-14T12:30:25.000083Z

Maybe they should even be advertise separately from session actions (the real ones which depend on session)

2018-03-14T13:35:39.000390Z

With blob-independent action map read my need for dynamic registration diminished. I can built the actions dynamically on the client. For session they then can be static. (My problem is blob generation. But with independent actions that isn't necessary anymore.)

2018-03-14T13:37:00.000703Z

Regarding auxed connections. Why shouldn't they advertise the possible actions? You don't know how they are used on the client.

2018-03-14T13:38:40.000008Z

Your view was always the initial connection to be the user connection and the tooling conn auxed from there. I actually do it the other way around. The initial conn is tooling. User repls are auxed.

2018-03-14T13:41:27.000259Z

I don't see why it should be conceptually wrong to broadcast what the connection can do. Because most actions don't care about the actual connection used. Actions needing a side channel like interrupt notwithstanding.

2018-03-14T13:42:48.000473Z

I agree that dynamic actions may shoot over the target. Maybe they are a XY-problem.

2018-03-14T13:46:46.000172Z

Dynamic actions vs. static actions with dynamically provided action map vs. static actions with static blobbed actions.

2018-03-14T13:48:00.000629Z

My problem was the latter. So I desperately proposed the former. My changes implement the middle. And that works quite well.

2018-03-14T13:51:02.000775Z

Whether the additional actions are advertised on auxed connections is completely orthogonal.

cgrand 2018-03-14T13:54:33.000746Z

My view is that whatever a client pref, there will be always a “first” connection. It’s enough to have this connection adverstising “familiy-wide” actions.

cgrand 2018-03-14T13:56:21.000293Z

Likewise if dynamic advertising come to be the rule could be that actions announced on any connections are merged.

2018-03-14T14:00:26.000978Z

Yes. As I said. Maybe dynamic action definition is too much.

2018-03-14T14:01:40.000158Z

With "your view" I meant what you used always as example in past discussions. Sorry if I got that wrong.

cgrand 2018-03-14T14:03:05.000141Z

That’s true that I usually consider the first one to be the user repl but there’s nothing preventing you from doing otherwise

2018-03-14T14:03:16.000712Z

Regarding advertising on aux: does it hurt?

2018-03-14T14:03:50.000151Z

Yes. I know. I did otherwise. 😸 And it worked. 😸

cgrand 2018-03-14T14:04:29.000222Z

It adds code and state and I perceive no value.

2018-03-14T14:04:53.000250Z

Then don't do it.

cgrand 2018-03-14T14:05:09.000163Z

All this discussion is pushing me to revise the spec to discuss of sibling connections

2018-03-14T14:05:30.000643Z

(I'm not sold on either way. Just asking stupid questions.)

2018-03-14T14:06:51.000320Z

Although it may add code and complexity on the client since there are now several types of flavours of actions.

2018-03-14T14:09:48.000777Z

I can understand there is a master connection which has the sideloader attached (possibly). New connections are auxed from there. Then auxing a connection from an auxed connection should work as if it was done from the initial one.

2018-03-14T14:09:54.000679Z

Nope.

2018-03-14T14:11:00.000372Z

The first connection creates a session with sideloader attached to the session. No master connection.

2018-03-14T14:11:59.000338Z

And connections are auxed from the session. Not a connection.

2018-03-14T14:13:16.000524Z

(This just a brain dump of what I'm thinking while typing. Does any of that make sense?)

cgrand 2018-03-14T14:21:48.000107Z

family/group: shared classloader, has actions (start aux and start side loader would be amongst them) session actions (setting limits etc.) msg actions (interrupt etc.)

2018-03-14T14:33:28.000027Z

I do not understand problem with the actions. They are advertised and they can be send through any connection belonging to the same family (what I called session). The only thing to keep in mind: the effect the *vars of the used connection.

2018-03-14T14:35:50.000081Z

The scope is completely irrelevant since it is provided by the action already. Eg. Set-source already brings the connection id! There is no difference to eg. a conn-unrelated doclookup request for tooling.

2018-03-14T14:36:44.000384Z

I do not understand problem with the actions. They are advertised and they can be send through any connection belonging to the same family (what I called session). The only thing to keep in mind: they affect the *vars of the used connection.

2018-03-14T14:37:05.000685Z

? Slack......