This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-12-11
Channels
- # adventofcode (129)
- # architecture (10)
- # beginners (163)
- # boot (1)
- # cider (34)
- # cljs-dev (9)
- # clojure (210)
- # clojure-austin (11)
- # clojure-czech (2)
- # clojure-gamedev (1)
- # clojure-greece (67)
- # clojure-italy (2)
- # clojure-russia (8)
- # clojure-spec (36)
- # clojure-uk (54)
- # clojurescript (87)
- # cursive (12)
- # data-science (6)
- # datomic (13)
- # devcards (4)
- # editors (2)
- # emacs (34)
- # figwheel (6)
- # fulcro (147)
- # graphql (17)
- # lumo (54)
- # off-topic (37)
- # om (11)
- # onyx (7)
- # parinfer (10)
- # random (1)
- # re-frame (13)
- # ring (10)
- # ring-swagger (2)
- # sfcljs (1)
- # shadow-cljs (1)
- # spacemacs (32)
- # test-check (4)
- # unrepl (84)
morning
Not me. How was lambda up?
It was cool, I found the crowd a bit shy. However for a first event set up in less than 3 months it was great.
Did you deliver a talk?
I know people who were at ClojureX, but had to give it a pass myself due to a delivery deadline. Why do you ask @cgrand?
La Valeur des Valeurs?
@cgrand @bozhidar gave a talk, so I suspect there will be. I'll see if I can get some information from my colleagues.
using a network socket was simpler for now (no multiplexing, no worrying about rogue printlns etc.)
btw I figured out how to distinguish Return (`^M`, \r
) from Enter (`^J`, \n
)
node's readline creates two events - the line
event (`\n` in each time)
but there's also the keypress event, which has :name "return"
and :name "enter"
respectively
in my pau/newline
branch, there's a new command scripts/debug
which gives you a nice two-pane debugging view
with mouse support 🙂
naive question: from the process point of view there’s no way to tell between ^J/^M and actual entre/return keys?
I think the terminal emulator sends ^M
when you press enter
https://github.com/Unrepl/unravel/pull/51 now works as expected in interactive mode, but now it doesn't work in non-interactive mode anymore 🙂
Damn it! Github insists on showing a wrong diff for the PR
Finally a clean diff: https://github.com/Unrepl/unravel/pull/61/files
@cgrand any idea on how to support noninteractive input cleanly?
@cgrand no, I mean that non-interactive use on my branch is broken:
$ echo '(+ 1 1)' | run
(+ 1 1)
(+ 1 1)
using the global flag is fine
how do you mean?
ok pushed a fix
The crux of the issue is that line
is not used anymore and a final line
is sent when the input terminates.
We are competing with https://github.com/nodejs/node/blob/master/lib/readline.js#L920-L932
very weird!
they must have a reason for that though
terminals are full of cruft
ok the pushed version works for me now in interactive and non-interactive modes
$ echo '(str "it " "works")' | run
"it works"
that seems like a spurious newline but can't find where it comes from
hm only with a rich terminal
$ echo '(str "it " "works")' | run | cat
"it works"
rationale is meh https://github.com/nodejs/node/pull/8109
hehe CRLF captcha
Welp, now it echos back the form sent:
$ echo '(str "it " "works")' | run
(str "it " "works")
"it works"
are we printing this, or is this readline?
something to do with the _ttyWrite function: https://github.com/Unrepl/unravel/blob/newline2/src/unravel/loop.cljs#L506
I agree 100% but rewriting readline-ish functionality is gnarly as hell
since @volrath question about eval-file
I have been pondering if there is a need for such operation vs streaming it over the user a connection
To me the main difference, at first, is that when you load a file, evaluation stops at first error, while if you cat the file it will keep evaluating. But that’s no big deal in practice. A more important difference is that there’s no EOF so a malformed exception would just hangs the connection — and closing the connection would make impossible to get messages back from eval, except if we add a way to have an half-closed connection.
A minor difference is that *in*
is set set differently (it would be fun to have *in*
set to the file being compiled as it would allow to “upgrade” a file in the same way we upgrade a connection: “after the blob it’s some BASIC”)
I think when it comes to ClojureX and tooling people wanted better dev tools for ClojureScript. 🙂
I did give a talk, but it wasn’t anything special - just a bit of CIDER and clojure-emacs updates, a note about nREPL’s rebooted development and some ideas about the future of CIDER and nREPL.
Don’t sell yourself short… your talk was ace! 🙂