Just published Chlorine version 0.10.2 - socket REPL package for Atom. On this release, only bugfixes 🙂. Only one new feature is that Chlorine is now caching clj-kondo's results for 20s, so if you have no REPL connected you can issue lots of "doc-for-var" and "goto-var-definition" and they'll resolve really fast 😄. (to be honest, I'm only caching because I'm preparing a release that will also rely on clj-kondo for autocomplete, when there's no REPL connection ready 😄)
Fulcro’s websocket remote has been updated to support client use from CLJ. Most of Fulcro can run in a headless mode in CLJ without React. This makes it possible for you to make a CLJ Fulcro app that can communicate with a Fulcro server. You could use this, for example, to leverage the EQL/transaction processing of Fulcro in any Clojure JVM application. https://github.com/fulcrologic/fulcro-websockets
Can ClojureScript apps also be using the non-react parts of Fulcro?
Of course
@pez see for example: https://www.youtube.com/watch?v=ng-wxe0PBEg&ab_channel=TonyKay
Book excerpt: Applying Git and Optimistic Concurrency Control principles to Data Oriented Programming https://blog.klipse.tech/databook/2020/12/18/occ-do-git.html
I wrote another GitHub App/Bot in Clojure .. it may be useful for the coming week(s) … https://github.com/marketplace/devbots-vacation
Documentation at https://devbots.xyz/documentation/vacation/
Introducing Liz: A new general purpose programming language - written as Clojure look-a-like EDN - compiled down to small native binaries for x86, ARM, RISC-V, WASM and other architectures - seamless interop with C libraries - compiler written in Clojure using tools.analyzer, leveraging Zig compiler https://github.com/dundalek/liz
Interesting!
Yep, interesting.
Small Clojure Interpreter 0.2.0: https://github.com/borkdude/sci/blob/master/CHANGELOG.md#v020 Follow up in #sci
@kloud Looks interesting. So it's a clj -> zig transpiler basically? Why ^:pub
and not just use defn-
for private funs, while defaulting to public? I haven't looked at zig, but your project makes me want to take a look at it.
@borkdude It is basically a transpiler, although clj -> zig would be an over statement, it is more like a zig dialect with some clojureisms. One of the use cases is to have a language that could be used to write native extensions for using in Clojure via JNI, so I try to keep it low level and don't include abstractions with overhead.
Great idea with defn-
, I will add that.
This is interesting. I could also see myself using this to write babashka pods perhaps.
Zig is pretty neat, definitely worth checking out. I wanted to see if there is something better than C for writing native code.
It seems to tick all the boxes, good design choices and focus on simplicity.
@kloud how does it work with the type-system bridging? clj is dynamically typed, but zig is statically typed
Ah, I see, the type hints are translated to type info in the target
Exactly, it feels like a bit of an abuse, but seems to work for now. One limitation is with more complex types, it would be good to create a DSL for it, for now it leaks a bit and one can use a string with a Zig expression for the type.