Fork me on GitHub
#unrepl
<
2017-12-14
>
pesterhazy11:12:29

@cgrand actually in Js you can’t block tout court

pesterhazy11:12:10

Short if while(true){}

cgrand11:12:19

That’s what I mean: no matter how eval is sync in lumo, it’s gonna leak

cgrand11:12:57

I have something related to show

pesterhazy11:12:18

Got a few questions about that yesterday

pesterhazy11:12:47

The world is waiting for unrepl.cljs

pesterhazy11:12:31

Daniels presentation of unrepl.el was very well received yesterday

pesterhazy11:12:00

Lots of ooohs and aahhs

cgrand11:12:09

I’d like to hear more about the ooohs and aahhs

cgrand11:12:19

How did the “one more thing” go?

cgrand11:12:45

https://github.com/Unrepl/plain-repl/blob/master/src/plain_repl/lumo.cljs is a one-file no-deps implementation of an upgradable repl in lumo

pesterhazy11:12:46

The images were a real crowd pleaser

cgrand11:12:42

it’s not as full fledged as current lumo implem, but this is showing a way to refactor lumo to make it upgradable

pesterhazy11:12:43

The elided exception in lazy-seq is also very effective

cgrand11:12:10

with a :poop: emoji?

pesterhazy11:12:40

Do I just evaluate that in lumo?

pesterhazy11:12:06

(Not the emoji, the plain repl)

cgrand11:12:42

lumo -c src/ -n '{"port": 5557, "accept": "plain-repl.lumo/accept"}'

pesterhazy11:12:15

Ahh I’ll try that when I’m in the office

volrath12:12:46

Wow this is great! can't wait to take a look

volrath12:12:28

Oh and yeah, people did like the images rolling down the repl haha

volrath12:12:45

I'm going to add a gif for that in the project's README file

cgrand12:12:16

Mess is fixed and there’s example in README

volrath13:12:29

amazing.. I just gave it a read. I think i need more time to wrap my head around it completely, but I get the idea.

volrath13:12:37

so what would be the next steps?

cgrand13:12:39

as you can see bindings management and session managemnt (which are related) is bit done

cgrand13:12:27

There are several ways forward but mostly it would be to make plain-repl on par with lumo.repl (or retrofit it into lumo.repl)

cgrand13:12:38

Long term I’d like async read and async eval (at least as placeholders) to go in cljs proper

volrath13:12:08

I'm not sure I follow what does *print-fn* does.. is it a lumo internal thing?

volrath13:12:22

cljs internal?

cgrand13:12:28

no it’s *out* in cljs

volrath13:12:41

and with this plain repl implementation, do you think someone could start working on a unrepl cljs for it, while we wait for lumo to integrate it (or something similar to it)?

cgrand13:12:06

@volrath hard to predict how the proposed apis could evolve but yes

volrath13:12:35

alright cool

cgrand15:12:02

@volrath I’m going to extract from accept a template repl similar to clojure.main/repl

volrath15:12:22

i kinda like the repl -> epl -> pl -> l haha

cgrand16:12:18

@volrath do you talk at clojureD?

volrath16:12:40

I wish I had submitted a talk, but I didn't

cgrand16:12:52

do a lightning talk!

volrath16:12:14

that's a good idea, I will 🙂

cgrand16:12:37

Do we need some :unicorn_face: repl swag for the conf? 😉

volrath16:12:50

imagine coming with cljs support... I think that'd be difficult to top!

cgrand16:12:26

I had something else on my mind but cljs.js support may come first

volrath16:12:40

what is it? 😄

cgrand16:12:59

unrepl in breakpoints

volrath16:12:30

ohh.. that could be cool!

volrath16:12:36

what do you have in mind?

cgrand16:12:49

yeah but all the cool kids do cljs 🙂

volrath16:12:10

javascript reaches..

cgrand16:12:13

breakpoints was what I had in mind

volrath16:12:21

yeah but what exactly

volrath16:12:47

like, what type of behavior do you see

cgrand16:12:54

on a breakpoint (either user set or exception being thrown), the user may enter an unrepl session in the context of the breakpoint (looking at and modifying fields and locals, running code etc.)

volrath16:12:15

sounds really good

volrath16:12:05

we definitely should think on a big feature for clojured, and who knows, maybe we can do both

cgrand16:12:59

I’m more confident in cljs.js it’s doable if we use plain-repl as a shim

cgrand16:12:11

and then you’ll do the same demo but with a canvas object 😉

volrath16:12:52

in reality I'm not sure I can haha

volrath16:12:02

but maybe something close

volrath16:12:31

image is well supported across all emacs installations these days, but browser views are not

volrath16:12:46

I barely started reading about that a week ago

volrath17:12:25

but you require to compile emacs with webkit support, which is not default

cgrand17:12:52

that’s not what I meant

cgrand17:12:10

canvas as the server-side object

cgrand17:12:31

communication would still be base64 png or whatever

cgrand17:12:49

it should work with no client change

volrath17:12:17

but afaik, canvas are not server side

volrath17:12:24

I think there are node implementations

volrath17:12:37

like this one

volrath17:12:54

hmm yeah that could work!

cgrand17:12:56

that’s what I had in mind

volrath17:12:04

sounds really cool

cgrand17:12:37

but you know what cljs-js support means too? using unravel to develop unravel

volrath17:12:53

hahaha yeah

volrath17:12:13

so far, I'm using unrepl.el to develop unrepl.el tools

cgrand17:12:57

let’s get serious and implement an unrepl blob for EL

volrath17:12:21

ehmm.. let's stick with cljs first haha