This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-05-19
Channels
- # beginners (55)
- # boot (1)
- # chestnut (1)
- # cider (130)
- # clara (31)
- # cljsrn (1)
- # clojure (12)
- # clojure-dev (4)
- # clojure-india (1)
- # clojure-italy (2)
- # clojure-uk (33)
- # clojureindia (1)
- # clojurescript (12)
- # component (1)
- # datascript (5)
- # datomic (2)
- # duct (2)
- # emacs (16)
- # hoplon (1)
- # jobs (1)
- # lumo (13)
- # off-topic (3)
- # onyx (4)
- # remote-jobs (1)
- # schema (1)
- # shadow-cljs (110)
- # spacemacs (2)
- # specter (44)
- # vim (6)
If I create a file at src/main/clojure/aaa/bbb.clj
, (ns aaa.bbb)
will be auto inserted, and this is correct. but if I create src/main/cljs/aaa/bbb.cljs
, ns will be (ns main.cljs.aaa.bbb)
. Is this configurable?
@doglooksgood how is your source paths configured? I think the namespace is correct.
actually I create the file before change the deps.edn. I wonder if it will read the aliases extra-paths
config?
@dominicm Btw, I did some massive restructuring of the info middleware - https://github.com/clojure-emacs/cider-nrepl/commit/531d980b524baed792b4ebb5fdfef3fe72b787c8 Extracting things to orchard really puts into perspective some bad API decisions. š
> Itās interesting to watch my emacs colleagues use things, and be surprised when they donāt work š
We didn't find the variables to override for this in the manual! There's only advice for boot and lein.
Are you should about this? š http://cider.readthedocs.io/en/latest/clojurescript/
Ah, I now get what you mean. I first thought you were talking about the variable I mentioned.
@doglooksgood I think this is something in clj-refactor. @benedek probably knows.
Hi š Is CIDER integrated with these functions (or similar ones)? https://github.com/stuartsierra/reloaded/blob/master/src/leiningen/new/reloaded/templates/user.clj Or should I be responsible for having these functions invoked?
@vemv I use something similar to this: https://github.com/stuartsierra/dotfiles/blob/d0d1c46ccc4fdd8d2add363615e625cc29d035b0/.emacs#L307-L312
@andnils gotchu! yeah, have used similar stuff in the past. But I was wondering if there's a more robust way. Classloading can be funny
nREPL 0.3.1 is out - I had done a moronic mistake and compiled the Java sources with a Java 10 target. š
Dumb nREPL PR - updating the BEncode spec URL as it has changed https://github.com/nrepl/nREPL/pull/27
@bozhidar fyi registering http://nrepl.org just so /someone/ has it
Nice. I saw that it was available but figured that itās not important to register it ⦠cool that you have it now
@arrdem I think I already invited you to the org - you can configure some simple GH page (e.g. using the README) under http://nrepl.org.
I was certainly inviting people when I created it and I remember you and @dominicm were on the list.
@arrdem navigating to http://github.com/nrepl brought it up
I actually don't have much familiarity with the desired improvements to nrepl itself. I should look š
Generally thereās also a lot of work to be done with respect to updating the code, as it currently targets Clojure 1.2 and Java 5. š
I'm going through the list now. What are you thinking WRT Clojure version compatibility?
For all that my aesthetic screams to clean the code up /because/ there's nothing really wrong with it ATM, and I'd like to have a plan for how nREPL's version will state Clojure version compatibility before we go drop 1.2 etc.
Iāve put Clojure 1.8+ and Java 8+ on travis based on the Clojure survey (<5% of people on Clojure 1.7, <1% on Java 7)
Frankly, I donāt think anyone will notice the updates, and some of them would be meaningful e.g.
If the only improvement is to drop support for older versions of things, then that's really not an improvement? š
Oh for sure nobody'll notice, I just want to have a plan for more than releasing an 4.0 which just drops older versions.
Or we'll always do a major version bump when dropping support for a Clojure/JVM version
https://github.com/nrepl/nREPL/blob/master/src/java/clojure/tools/nrepl/Connection.java#L100

https://github.com/nrepl/nREPL/blob/master/src/clojure/clojure/tools/nrepl/ack.clj#L30
I'm probably being daft again, but I don't see what we would gain in exchange for switching to a delay there?
https://github.com/nrepl/nREPL/blob/master/src/clojure/clojure/tools/nrepl/server.clj#L113
One thought I had - if we're gonna adopt a "standard" port, we really need different standard ports for "bare" socket nREPL vs BEncode nREPL which is what everyone actually uses.
Since there's now the bare socket repl in Clojure, do we even want to keep the bare repl?
https://github.com/nrepl/nREPL/blob/master/src/clojure/clojure/tools/nrepl/server.clj#L91
https://github.com/nrepl/nREPL/blob/master/src/clojure/clojure/tools/nrepl/server.clj#L102
Iām pretty familiar with using nREPL as an API, but not super familiar with the internal, unless it was something frustrating to me as an end user.
Iām also a bit puzzled about why the Connection
class in implemented in pure Java, maybe it was simpler at the time.
May also make embedding an nREPL endpoint in a Java app easier from an FFI perspective.
I don't see any major features that warrant spending time pulling out support for old versions.
It'd be kinda nice to drop some of the old #^{}
notation and some stuff, but yeah I agree it's kinda an aesthetic only upgrade AFAIK.
Well, thatās certainly not a big deal, but then again - I donāt want to spend time ensuring compatibility with something no one uses.
I'd support adding a cider/version_check
pseudo-ns of some sort that everything requires / forces so that we have some way to check Clojure and Java's version and tell users about (in)compatability.
And Iāve got this dream of nREPL that could be started with a self-hosted cljs, which certainly would require āa fewā changes, but thatās not high up the todo list.
well in order to get an IANA port assignment we need protocol-level versioning support which may or may not be a breaking change.
also probably means we need different port assignments for a "bare" socket REPL vs a BEncode repl because they aren't really wire-compatable or negotiable - they're different formats.
dropping support for ancient clojure / java versions would be a breaking change if we decided to do it
and philosophically I don't support burdening yourself with indefinite backwards compatibility as a design goal, especially when we're as ah lightly resourced as we are
Well, itās done to some extend as I already deleted some compatibility code for Java 5, but I doubt someone is going to notice it. š Weāve also restyled all the ns-es to Clojure 5 syntax or something like this (I donāt quite remember when ns
got its current syntax).
I wonder when exactly to do it, as this will require a ton of PRs to other projects.
can probably get full ownership of that codebase and move it to the nrepl org if I want it.
which is probably the only thing I care to work on besides supporting better custom result handlers
Yeah, thatād be great to have, but weāll have to have a fallback for current clients - e.g. whatever the āversionā was before we introduced this.
@arrdem https://github.com/clojure-vim/nrepl-python-client/ would prefer we use my tree of nrepl-python-client, it supports crazy things like negative numbers.
I'd suggest that I get Chas' (which shows up on google) moved into the nREPL org, merge your code as a big-bang PR and go from there.
I think I broke the api at some point by switching to binary sockets, but I'm not entirely certain. It works.
𤷠I think you're the primary user anyway and there was never a good documented API so shouldn't be a problem.
^ I realise it might be a Pedestal-specific question, but also stdout handling may be a faq
As a quick bandaid I just removed <appender-ref ref="STDOUT" />
from logback.xml. Although it'd be nice to print logger stdout at lein repl
, while not doing so at the CIDER repl
should all new changes happen on a 4.x release and then once its stabilized go to a 5.x?
@vemv Thereās a setting about this in CIDER - cider-redirect-server-output-to-repl
.
Btw, thatās one of the biggest improvements on my personal list for nREPL - the situation with output that ends up in the serverās output instead of the clients is quite annoying. We should certainly fix this, so such workarounds are not needed.
There are also some cases when clients receive out
messages without a request id
attached to them and that breaks stuff.
@dpsutton Iāll likely change the namespace in the next release and mark this as nREPL 1.0 (or 0.4) - I still wonder about this. nREPL has been around for a very long time, so I guess itās time to release 1.0.
I was just thinking prevent any clients from using the new code unless the opt into it by specifying the new major version
And need to keep @cfleming in the loop for any changes. Can't risk interrupting his product with changes to nrepl
@dpsutton I really doubt most clients would be impacted by the internal changes at all - there will be 0 backward incompatible changes to the protocol for now, youāll only notice the changes if youāre doing something with the nREPL API (and the changes are one change - the new namespace).
But yeah - if Colin is using the Clojure API of nREPL heāll have to update a bit of code on Cursive, thatās true.
For me the most painful part is getting this upstream in reply, boot and lein. Everything else should be relatively easy. Luckily itās a one time deal and weāll never have to make changes like this again.
There was also just a little hiccup when switching namespaces previously so just want him to be aware and test with us
And, of course, someone will actually have to update their deps to notice something - nREPL is now essentially a different project than the contrib one, there canāt be accidental updates.
Yeah, the middleware breakages are mostly unavoidable, but Iām not that worried about them controlling directly almost all the nREPL middleware in existence. š
If it gets problematic to push for changes upstream Iāll just start booting cider with custom tasks using the new nREPL and update all of my middleware projects to rely on it. Whoever wants to stick to clojure.tools/nrepl
can do so, but they wonāt have much middleware theyād be able to use with it. š