This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-11-29
Channels
- # aws (1)
- # aws-lambda (2)
- # bangalore-clj (3)
- # beginners (26)
- # boot (25)
- # braveandtrue (1)
- # cider (5)
- # cljsrn (7)
- # clojure (144)
- # clojure-android (2)
- # clojure-czech (1)
- # clojure-greece (3)
- # clojure-italy (17)
- # clojure-poland (5)
- # clojure-russia (25)
- # clojure-spec (9)
- # clojure-uk (100)
- # clojurescript (85)
- # core-async (42)
- # cursive (11)
- # datascript (2)
- # datomic (25)
- # duct (3)
- # emacs (5)
- # figwheel (2)
- # fulcro (49)
- # graphql (16)
- # hoplon (8)
- # klipse (10)
- # leiningen (10)
- # lumo (9)
- # off-topic (12)
- # om (14)
- # onyx (25)
- # planck (34)
- # portkey (6)
- # re-frame (43)
- # reagent (4)
- # remote-jobs (2)
- # ring (36)
- # ring-swagger (1)
- # rum (1)
- # shadow-cljs (187)
- # specter (25)
- # sql (5)
- # unrepl (75)
There are some efforts towards making error messages better, not a the keyboard now, but I will try to fetch the links
@cgrand that's awesome. I think I missed this, how does the data form of the exception look?
I've been hacking on cider's stacktrace excavator recently, so I'd be curious to know if I can get the same thing to work on top of Unrepl's system.
a big feature for me was being able to extract the java.net.URL for the stack frames by looking at file extensions & inferring the ns & symbol (and ergo the position in the classpath).
@dominicm what’s awesome? error display? it’s all @volrath. The current structure is the one returned by clojure Throwable->Map
@dominicm what do you mean by cider's stacktrace excavator? it'd be cool to take a look at it
I went through cider's stacktrace source code and I don't remember seeing that term, but maybe you're referring to something else
I came up with the word "excavator" 🙂 I'm mostly referring to https://github.com/clojure-emacs/cider-nrepl/blob/master/src/cider/nrepl/middleware/stacktrace.clj
yeah I went through the cider emacs mode stacktrace sourcecode, and I noticed they had differentiation for things we don't have
for each frame, the get from the middleware
(file line flags class method name var ns fn)
I haven't got deep into the specifics of any of those or how they produce themA way to extend without breakage would be to associate namespaced keys to what is returned by Throwable->map
If it proves a good idea I’ll provide an extension point in unrepl-make-blob. In the meantime, can you experiment by patching unrepl.print
?
one thing though.. this things we're talking about are frame specific, and frames are returned as vectors by Throwable->map
, [class method file lineno]
.. not sure how would be the appropriate way to extend.. maybe add another key at the :trace
level, that also has a vector of vectors but with the customized extended data? or do you think there might be a better way?
What are the pros and cons of using Throwable->map
to render exceptions in exception context?
re: print limits; initial rendering of an exception in an exception context width different limits ok (how to set them is still an open question) however when you ask for more you are just using an elision which has no context so either I make elision to embed some kind of context or the client set limits for aux before retrieving an elision
for each frame, the get from the middleware
(file line flags class method name var ns fn)
I haven't got deep into the specifics of any of those or how they produce themThe clojure frames are analyzed by looking at the class, and demunging it using the clojure.repl method.
No, :eval
:exception
:log
and depending on the context retrieve print-limits
A way to extend without breakage would be to associate namespaced keys to what is returned by Throwable->map
Guys, what about another unrepl hacktogether day in Berlin on Friday 23/2? (the day before :clojureD)
What are the pros and cons of using Throwable->map
to render exceptions in exception context?
according to the changelog Throwable->map's behavior has changed 1.8->1.9 - we'd need to cover both
the commit https://github.com/clojure/clojure/commit/cd64b71ddb297c10e459537f818cf2cba9a743ec
btw, I'm going to briefly show unrepl.el today at the berlin emacs meetup, wish me luck 🙂
I want to get some feedback on "emacs ergonomics" for the repl.. make it feel comfortable
super!
actually it occurs to me my office is next door - when is the meetup tonight?
cool will try (depending on how long my standup call goes)
Oh and I have a 1-sentence description of its behaviour: > This printer likes rectangular shapes (the wider the better) and despises staircases.
If one wants to pretty print machine-printed unrepl edn, then this is the file to use as a basis: https://github.com/cgrand/packed-printer/blob/master/src/net/cgrand/packed_printer/text/edn.cljc
https://www.youtube.com/watch?v=q4LmSC6xdsI planck has this
https://www.youtube.com/watch?v=xdIwkPEnlFY this is what I was thinking of, not quite the terminal I guess. Still would be a nice thing to have.
It's very good. 🙂 http://shaunlebron.github.io/parinfer/ you can play with it in-browser.
There's a new smart mode which gets rid of these mode changes, but I think you can ignore them for the purposes of unravel.
it went quite well, I think people really dug the idea, got a chance to talk a bit more with pesterhazy about it, and about how to do some unrepl PR.
and Paulus and I talked about how to make unrepl more public, but didn't get to anything concrete..
also, someone asked again about the possibility of using the client (and protocol) for something other than clojure
I'm going to stop now on working on "flashy features" and going to press more on reliability and usability, so we can plan for an actual release