This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-10-26
Channels
- # announcements (9)
- # babashka (98)
- # beginners (52)
- # boot (2)
- # calva (19)
- # cider (58)
- # clj-kondo (4)
- # cljdoc (11)
- # clojure (49)
- # clojure-dev (12)
- # clojure-nl (3)
- # clojure-uk (4)
- # clojurescript (42)
- # core-async (6)
- # cursive (9)
- # data-science (1)
- # fulcro (23)
- # jobs-discuss (2)
- # nrepl (30)
- # off-topic (42)
- # pedestal (6)
- # re-frame (8)
- # reitit (7)
- # remote-jobs (2)
- # shadow-cljs (134)
- # specter (1)
- # vim (13)
Babashka v0.0.22: support for reader conditionals: https://github.com/borkdude/babashka#reader-conditionals
seems to work here on linux:
$ ./bb examples/reader-conditionals.clj
babashka doesn't support in-ns yet!
yes, i learned about :default when doing clojure clr stuff -- and i also see it in some of your other code with :cljs first and :default later so possibly clojure clr support can work later, right? 🙂
> ClojureCLR extends the reader syntax I see, that's nonstandard. I wonder if tools.reader supports this
here's a tools.reader for clr -- it's from some years back, but might have useful bits perhaps: https://github.com/clojure/clr.tools.reader
yeah, but if you're doing reader conditionals, all the readers should support the same features
for example, normal Clojure barfs on this:
user=> (read-string {:read-cond :allow} "#?(:bb 10 :cljr |System.Collections.Generic.IList`1[System.Int32]|)")
Execution error at user/eval143 (REPL:1).
Feature should be a keyword: 1
so if you want to make programs .cljc compatible, they should not contain things that confuse the readers of other platforms
also #|foo|
would maybe have been better, at least it doesn't mess with vars/values starting with the pipe character
pipe use predates reader conditionals by a fair bit iirc -- but i don't know the details 🙂
not sure what the cognitect folks thoughts are, but there was a podcast with the main dev of clojure clr david miller a bit back where he talks about how it came to be -- may be you heard it? it seems possible that when reader conditionals were proposed the pipe char existence and use may have been understood.
it's not like there was something on reader conditionals or pipes there -- just that clojure clr was a kind of "blessed" project by cognitect or at least rich hickey from its infancy.
I know one company in the Netherlands who have been using ClojureCLR for 4 years. It was quite a surprise to discover them. They did a presentation and I saw clojure.spec.alpha.dll on the screen in a Windows explorer window
yes, i think he is one of the main users -- i've seen his posts on the google groups for clojure clr going back some years 🙂
Clojure is already a niche. ClojureCLR is a bigger niche and the tooling story there is much worse due to lack of manpower
having said that, Clojure is a very hackable and tangible language, so you don't need much tooling
it helps to have a good conceptual understanding of things -- which doesn't seem trivial to come by imho
the guy who did the presentation didn't have nREPL, so he just did (require '[foo.bar] :reload)
every time he made an edit
i am waiting for david miller to release the next version -- as that will contain prepl
well on that point...my designs on that end have revolved around externalizing as much as possible to avoid doing things in editors
I've made only one extension for VSCode but I didn't know what I was doing half of the time. like context.subscribe.push(client.start());... wat?
inside this: https://github.com/sogaiu/adorn there are multiple bits -- one of them is a vscode extension in cljs if you are interested
there are some similarities -- however a major difference is that iiuc lsp is into having a server running that does many things
there is also this one: https://github.com/sogaiu/abridge and possibly a few others i haven't released
my motivation for getting native image stuff for clojure working on windows is related to these things 🙂
you are right on that account -- however, with the state of native-image on windows, i wasn't inclined to going around advertising the existence just yet 🙂
that's one benefit of an LSP server I guess. you could also maybe hook up an LSP server and then execute the functions in a JVM on Windows, while having binaries on other systems
if you don't mind the running a server aspect, the lsp approach has a fair bit of merit i think.