Fork me on GitHub

Neanderthal 0.38.0 released, with CUDA 11 support! Vectors, matrices, and linear lagebra in Clojure with incredible speed on CPU, Nvidia GPU, and AMD GPUs!


parcera v0.11.4 is out. This release includes support for octal literals and two bug fixes for symbols and eval. Hope you like it 🙂. Thanks to @sogaiu for his support testing all the different scenarios.


Scicloj's interview with Anthony Khong about Geni is now available on YouTube. Geni, written by Anthony, is a REPL-friendly Clojure wrappper for Apache Spark. Tune in to learn about how Anthony Khong got into data science, what limits Spark Notebooks, and how the situation changes with Clojure.


I cannot save it for later in YouTube because it is marked Made for Kids;hl=en-GB


@U3X7174KS This sort of thing belongs in #news-and-articles and not in #announcements which is intended for project/library release announcements (per the topic of the channel).


@U04V70XH6 Maybe mention this policy in the topic then? To me this channel is a perfect place for this type of announcement (I didn't know about the other channel until now) but I'm fine with the other place if it's easy to find.


@U06BE1L6T read this channel's description -- it really is pretty clear.


I know (after I read it) but it's not clear where the other things should go. Also the channel name is quite generic


The description can't be expanded -- Slack has a limit there. I've updated the topic to point to other channels.


Most people read the topic, see it's only for projects and libraries, and ask in #slack-help or #community-development about where they should post non-project/lib announcments.


BTW, channel topics are also limited in length and, unfortunately, any member can change the topic so we're always at the mercy of members changing the topic -- it's not something Admins can control...


@U06BE1L6T Everyone is auto-joined to #events and #news-and-articles so I'm surprised you didn't know about them.


(also to #slack-help #beginners #clojure #off-topic -- from that initial set of seven channels, folks ought to be able to figure out how to get around here)


Thanks, that helps. I wasn't there for some reason - maybe the "auto join" for this channel was only configured after I joined clojurians? (I think more than 3 years ago)


Entirely possible -- but if you've been around that long, I'm genuinely surprised you haven't run across those channels by now... 🙂


@U04V70XH6 Thanks, for letting me know, I'll use #news-and-articles in the future.


cc @U066L8B18


@U0522TWDA Thanks for the feedback! I can reproduce the problem, and I'll look into it.


I made scripts on the OpenSUSE Build Service to make clj-kondo available to install;package=clj-kondo, as well as an AppImage. The instructions have been merged into the clj-kondo repository. No more manual updates!


New version of mate-clj is now available on clojars! 🚀


Is there a difference from tools.trace ?


i would say its a bit different, the aim of mate-clj is to print to repl the steps of execution of the macro/fn and to give the developer more understanding about each step and how it got to the final result.


but that is exactly what tools.trace is trying to do

user=> (use '
user=> (trace-vars + reduce)
user=> (reduce + [1 3 5 7 9])
TRACE t442: (clojure.core/reduce #object[$trace_var_STAR_$fn__319$tracing_wrapper__320 0x71e5f61d "c[email protected]71e5f61d"] [1 3 5 7 9])
TRACE t443: | (clojure.core/+ 1 3)
TRACE t443: | => 4
TRACE t444: | (clojure.core/+ 4 5)
TRACE t444: | => 9
TRACE t445: | (clojure.core/+ 9 7)
TRACE t445: | => 16
TRACE t446: | (clojure.core/+ 16 9)
TRACE t446: | => 25
TRACE t442: => 25


but instead of having separate implementation for core functions it is instrumenting resolvable vars leaving implementation intact


the thing is that I wanted to use a different method not wrapping all the fn so for example if i want to debug a specific execution of reduce and not all the executions in a code block if i have it more then one, also we are working working now on having the ability to set a kind of a level to it so you can control when it will be printed to the repl and when not depends on your needs.