@cgrand actually in Js you can’t block tout court
Short if while(true){}
That’s what I mean: no matter how eval is sync in lumo, it’s gonna leak
Right
I have something related to show
Got a few questions about that yesterday
The world is waiting for unrepl.cljs
Daniels presentation of unrepl.el was very well received yesterday
Lots of ooohs and aahhs
I’d like to hear more about the ooohs and aahhs
How did the “one more thing” go?
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
The images were a real crowd pleaser
it’s not as full fledged as current lumo implem, but this is showing a way to refactor lumo to make it upgradable
The elided exception in lazy-seq is also very effective
with a :poop: emoji?
Very cool
Do I just evaluate that in lumo?
(Not the emoji, the plain repl)
lumo -c src/ -n '{"port": 5557, "accept": "plain-repl.lumo/accept"}'
Ahh I’ll try that when I’m in the office
Wow this is great! can't wait to take a look
Oh and yeah, people did like the images rolling down the repl haha
I'm going to add a gif for that in the project's README file
Mess is fixed and there’s example in README
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.
so what would be the next steps?
as you can see bindings management and session managemnt (which are related) is bit done
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)
Long term I’d like async read and async eval (at least as placeholders) to go in cljs proper
right
and *in*
I'm not sure I follow what does *print-fn*
does.. is it a lumo internal thing?
cljs internal?
no it’s *out*
in cljs
ah
i see
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)?
@volrath hard to predict how the proposed apis could evolve but yes
alright cool
@volrath I’m going to extract from accept
a template repl similar to clojure.main/repl
i kinda like the repl -> epl -> pl -> l
haha
@volrath do you talk at clojureD?
I wish I had submitted a talk, but I didn't
do a lightning talk!
that's a good idea, I will 🙂
Do we need some :unicorn_face: repl swag for the conf? 😉
imagine coming with cljs support... I think that'd be difficult to top!
I had something else on my mind but cljs.js support may come first
what is it? 😄
unrepl in breakpoints
ohh.. that could be cool!
what do you have in mind?
yeah but all the cool kids do cljs 🙂
yeah
javascript reaches..
breakpoints was what I had in mind
yeah but what exactly
like, what type of behavior do you see
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.)
sounds really good
we definitely should think on a big feature for clojured, and who knows, maybe we can do both
I’m more confident in cljs.js it’s doable if we use plain-repl as a shim
agree
and then you’ll do the same demo but with a canvas object 😉
*exactly*
🙂
in reality I'm not sure I can haha
why?
but maybe something close
image is well supported across all emacs installations these days, but browser views are not
I barely started reading about that a week ago
it's possible though: http://i.imgur.com/T5efpL0.gifv
but you require to compile emacs with webkit support, which is not default
that’s not what I meant
canvas as the server-side object
communication would still be base64 png or whatever
it should work with no client change
only blob
but afaik, canvas are not server side
I think there are node implementations
yes
like this one
hmm yeah that could work!
that’s what I had in mind
sounds really cool
but you know what cljs-js support means too? using unravel to develop unravel
hahaha yeah
so far, I'm using unrepl.el to develop unrepl.el tools
cool
let’s get serious and implement an unrepl blob for EL
ehmm.. let's stick with cljs first haha