This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-12-06
Channels
- # adventofcode (112)
- # announcements (6)
- # beginners (197)
- # boot (3)
- # calva (52)
- # cider (25)
- # clara (14)
- # cljdoc (6)
- # clojure (147)
- # clojure-austin (6)
- # clojure-berlin (7)
- # clojure-brasil (2)
- # clojure-europe (3)
- # clojure-india (4)
- # clojure-italy (8)
- # clojure-new-zealand (2)
- # clojure-nl (7)
- # clojure-russia (7)
- # clojure-spec (29)
- # clojure-uk (63)
- # clojurescript (103)
- # core-async (5)
- # cursive (11)
- # datomic (16)
- # devcards (1)
- # emacs (28)
- # figwheel-main (3)
- # fulcro (97)
- # graphql (4)
- # hyperfiddle (1)
- # jobs (1)
- # kaocha (3)
- # lumo (9)
- # nrepl (4)
- # off-topic (29)
- # onyx (1)
- # pathom (4)
- # pedestal (8)
- # re-frame (24)
- # reagent (1)
- # reitit (13)
- # ring-swagger (7)
- # rum (11)
- # shadow-cljs (79)
- # sql (46)
- # tools-deps (67)
- # yada (8)
The new eval dispatch refuses to eval stuff outside the context of your project (to prevent you from accidentally evaluating code against the wrong connection) and such third-party libraries were affected by this.
I haven't been watching REBL closely but is there a possibility to integrate it with Emacs/Cider and, preferably, leiningen?
I just mean that my project is based on leiningen and not on deps.edn - not sure if that changes anything or not.
You can run it from a REPL, so you’ve got some integration for free, but I haven’t used it and I don’t know many details. I hope that we’ll bring some of its features to CIDER’s inspector down the road.
Ok, so I did this to install rebl into local repo:
mvn install:install-file -Dfile=/Users/jumar/tools/clojure/rebl/REBL-0.9.109/REBL-0.9.109.jar -DgroupId=com.cognitect -DartifactId=rebl -Dversion=0.9.109 -Dpackaging=jar -DgeneratePom=true
# Then in project.clj
[com.cognitect/rebl "0.9.109"]
Now launch the UI from the REPL:
(cognitect.rebl/ui)
I can "send" expressions to the REBL:
(cognitect.rebl/inspect (+ 10 20))
;;=> true
... but it would be nice to have better integration: just eval inside my emacs and having it sent to the REBL automatically.
In the end, I think that having the features directly in the cider inspector can be more valuable - just wanna play with this REBL now 🙂> In the end, I think that having the features directly in the cider inspector can be more valuable - just wanna play with this REBL now 🙂
I share @plexus’s sentiment. 🙂 It’s a cool idea, but I don’t plan to use it, and unfortunately I don’t have time to work on a clone any time soon.
I'm bothering someone here in JUXT. He's been working on stuff like REBL for years. Now there's helpers in core, he might be able to do something much better than before 🙂
nav and datify seem pretty useful, and I guess it's great to have them in core so people are encouraged to implement the protocols in their own libraries, but it does mean anything you build with them is Clojure 1.10+ only. Had it been a library we could use it today on pretty much any version of Clojure.
is this really a concern? Updating clojure is almost always just upgrading a coordinate and have it just work.
It certainly is - but the clojure community upgrade pretty quick if you look at the state of clojure surveys. I think this is a bigger issue for tool smiths than library authors though… but I guess this is #cider 🙂
Exactly. For Kaocha I'm targeting 1.9+, which since it's a new tool I'm fine with not bothering about older versions, but I'm not planning to drop 1.9 support until 1.10 has been out for at least a year or two. That's just basic courtesy to your users.
:thumbsup: ahh I’ve been looking at kaocha, it looks really nice… My understanding though is that it’s only been out a few months - do you think you’ll have lots of 1.9 users?
BTW it would probably be pretty easy to target 1.9 and 1.10 — but conditionalise datafy/navify so you only get them if *clojure-version*
is 1.10+
the metadata is quite useful to avoid it, because you can do:
(vary-meta '{clojure.core.protocols/datafy (fn)} [])
The core thing in Clojure 1.10 AFAICT is the metadata-protocol-extension, so that you can actually call datafy and nav on everything, not just records. Everything else could easily live in a library, but would be much less useful.
Yeah it’s a big deal being able to hook a protocol onto a map, vector or set value. As it means just data can participate in a protocol now.