This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-02-27
Channels
- # announcements (26)
- # babashka (36)
- # beginners (7)
- # biff (34)
- # calva (9)
- # cider (5)
- # clj-http (9)
- # clj-kondo (24)
- # cljs-dev (9)
- # clojure (110)
- # clojure-austin (1)
- # clojure-europe (16)
- # clojure-nl (1)
- # clojure-norway (8)
- # clojure-uk (2)
- # clojurescript (4)
- # clr (1)
- # core-async (9)
- # cursive (11)
- # datomic (6)
- # emacs (17)
- # events (3)
- # fulcro (45)
- # graphql (6)
- # helix (1)
- # hyperfiddle (28)
- # java (1)
- # london-clojurians (1)
- # lsp (75)
- # malli (1)
- # membrane (35)
- # reitit (4)
- # releases (1)
- # remote-jobs (1)
- # shadow-cljs (48)
- # tools-build (5)
- # tools-deps (26)
Finally got around to publish https://github.com/ferdinand-beyer/refx to Clojars: v0.0.49 is available now!
refx
is a port of re-frame without Reagent, bringing re-frame’s elegance to next-generation React wrappers such as Helix or UIx. Thanks to @rome-user
(GitHub handle, not sure if they’re in Slack) for fixing a bug in reg-sub
!


Nice work. Great to have the https://github.com/ferdinand-beyer/refx/tree/main/examples too.
Thanks for your work Ferdinand. I've ported some reitit/re-frame examples to refx as well, if anyone is interested in more samples. The port was 1:1 when looking at re-frame vs refx code: https://github.com/rafaeldelboni/helix-refx-reitit-example
Released https://clojure-lsp.io/ https://github.com/clojure-lsp/clojure-lsp/releases/tag/2023.02.27-13.12.12 with fixes, performance and behavior improvements 🎉
There are improvements in hover being able to follow
:arglists
for documentation, support for cljs docs search on clojuredocs, big performance improvement in completion and more improvements!
More details in #CPABC1H61
Thank you for all sponsors and ClojuristsTogether 💙


https://github.com/mpenet/mina 0.1.13 is updated with the latest Nima release (requires java19+Loom preview)
I understand Nima is still relatively new & alpha. But still, I was curious to try apache benchmark against it (or mina). And I was surprised that no matter what value I used for "concurrency" (`-c` ), the benchmark resulted in identical results (total time, requests per second,..)
Also the request per second number wasn't too great: ~ 25k req/s on relatively beefy laptop. I've seen better results on "regular old servers" such as httpkit etc.
Does benchmarking using ab
makes even sense against Nima/Mina? Is is some specific configuration needed in order to get better results?
I recall one benchmark showing 800k req/s on an early nima release, matching the netty impl. of helidon. So I suppose that's likely a config issue and maybe some system level tweaks needed to get there. I haven't run any benchmarks yet myself, but I try to make the code not be wasteful (there are more low hanging fruits, but I don't want to focus on that right now, while in alpha).
if you look at the code involved for reading a req and writing a response it's very thin, I doubt mina is very far from Nima. One thing I will introduce at some point is some "lazy" maps a bit like in aleph to cut down this further, field access would just defer to the underlying method calls and potentially cache values upon access. But not right now.
it's definitely a problem in mina, I got same results with some nima example project (maven + java)
same results
1. https://github.com/tomas-langer/helidon-nima-example (need one more dependency to be added to pom.xml to work)
2. example hello world server using mina
both gave me ~25k req/s using ab
, at both cases it made no difference when I increased concurrency level
right. well, that could be caused by many things, some config tweaks needed in mina/nima itself or OS level (ulimit & co)
I tried checking ulimits and stuff as well, but nothing fishy there. I'll check that TexhEmpower link you mentioned above. Thanks.
I could try to ask the authors to give me some hints on how they achieved 800k for their presentation, they are quite responsive/helpful
I'll also try using different tools than ab
- or at least check if my distro has the up-to-date version
well ab should be able to go further than 20k r/s, I strongly suspect it's not the issue 🙂
it's strange, here's a quick "repro"
(ns httpkitserver.httpkitserver
(:require [org.httpkit.server :as http]
[s-exp.mina :as mina]))
(defn app [_req]
{:status 200
:headers {"Content-Type" "text/html"}
:body "hello HTTP!"})
(comment
;; httpkit start/stop
(def server
(http/run-server app {:port 8080}))
(server)
;; ab -c 8 -k -n 100000
;;Requests per second: 230394.04 [#/sec] (mean)
;; mina start/stop
(def server-mina
(mina/start! app {:port 8080}))
(mina/stop! server-mina)
;; ab -c 8 -k -n 100000
;; Requests per second: 20098.54 [#/sec] (mean)
)
Clojure CLI https://clojure.org/releases/tools#v1.11.1.1237 is now available • Added env var that can be set to temporarily allow support for http repos: CLOJURE_CLI_ALLOW_HTTP_REPO • Remove deprecated support for -R and -C • Clean up help text around repl supporting init-opts

hi @U064X3EF3 thanks for the new release. could you direct me to where i can find more information on CLOJURE_CLI_ALLOW_HTTP_REPO
? can't find it in either cli or tools repos, nor on the TDEPS jira. wondering what it is? thanks
I haven’t doc’ed it yet, but it’s exactly what it says above - an env var that can be set to allow use of Maven repos with http urls (which are disallowed otherwise)