Skip to content

Commit ece34d3

Browse files
committed
add deref
1 parent 99eb4a2 commit ece34d3

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

content/news/2024/04/19/deref.adoc

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
= Clojure Deref (Apr 19, 2024)
2+
Alex Miller
3+
2024-04-19
4+
:jbake-type: post
5+
6+
ifdef::env-github,env-browser[:outfilesuffix: .adoc]
7+
8+
Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem (feed: https://clojure.org/feed.xml[RSS]). Thanks to Anton Fonarev for link aggregation.
9+
10+
== From the core
11+
12+
We have three big chunks of work remaining for 1.12. The first one, reworking the symbolic array type representation is complete, is captured in https://clojure.atlassian.net/browse/CLJ-2807[CLJ-2807]. That will rollback the previous implementation added in alpha6 and replace it with a new representation. Array symbols will have the syntax `ComponentType/dimension`, eg `String/1` or `long/2`. More to say on that when we release.
13+
14+
The second piece is reworking the method value and param-tags implementation. The big picture is that param-tags must resolve to a single method, and that qualified methods will otherwise support reflective invocation. Additionally, we're going to alter the syntax of qualified instance methods to make them distinct with Classname/.method (vs Classname/method for static). There are existing cases in the JDK (Double.isNaN()) that have both static and instance methods that overlap in effective arity (instance methods take the instance object as first "arg") - method values have no way to differentiate between these and that was causing a lot of pain in the implementation. This work is nearing completion.
15+
16+
The final piece is functional interface conversion. We've been working through some of the implementation details and figuring out some of the gnarly bits of optimizing method values passed as FIs (avoiding intermediate thunks or converters). This piece is also getting close. At an interim point this week I ran some wide regression testing and found a few interesting cases, some were actual bugs I found in the wild, some were things I was able to smooth over in the implementation. Integrating all of the things above cleanly has been quite challenging, but we are getting close.
17+
18+
Have been working on Clojure/Conj stuff too, hoping to get info about CFP, tickets, and sponsorship out in the next month.
19+
20+
== Podcasts and videos
21+
22+
* https://www.therepl.net/episodes/52/[52: Coding in YAML with Ingy döt Net] - The REPL
23+
* https://www.youtube.com/watch?v=J2ae-ttSCjs[What's That Function? clojure.core - conj peek and pop] - What's That Function
24+
* https://www.youtube.com/watch?v=8VsMCk8J8EE[Learn Clojure – Starting with Clojure spec] - Clojure Diary
25+
26+
== Blogs, articles, and projects
27+
28+
* https://humanscode.com/columns-for-tablecloth-launch[Launching Columns for Tablecloth] - Ethan Miller
29+
* https://gaiwan.co/blog/heart-of-clojure-2-0/[Heart of Clojure 2.0] - Arne Brasseur (Gaiwan)
30+
* https://scicloj.github.io/blog/clojurists-together-project-scicloj-community-building-march-2024-update/[Clojurists Together project - Scicloj community building - March 2024 update] - Daniel Slutsky
31+
* https://yamlscript.org/posts/apr-16-2024/[YAMLScript Spring Update] - Ingy döt Net
32+
* https://sagarvrajalal.com/blog/composing-caches[Composing Caches] - Sagar Vrajalal
33+
34+
35+
== Libraries and Tools
36+
37+
New releases and tools this week:
38+
39+
* https://github.com/kurtharriger/clj-mergetool[clj-mergetool] https://github.com/kurtharriger/clj-mergetool/blob/main/CHANGELOG.md[0.4.3] - smarter git mergetool for clojure and edn
40+
* https://github.com/constacts/milvus-clj[milvus-clj] 0.2.1 - Clojure libraray for Milvus
41+
* https://github.com/stefanvstein/testify[testify] 0.4.0 - Running clojure code comments
42+
* https://github.com/metosin/oksa[oksa] https://github.com/metosin/oksa/blob/main/CHANGELOG.md[0.1.0] - Generate GraphQL queries using Clojure data structures
43+
* https://github.com/frenchy64/fully-satisfies[fully-satisfies] https://github.com/frenchy64/fully-satisfies/blob/main/CHANGELOG.md[1.10.4] - Utility functions for Clojure
44+
* https://github.com/igrishaev/pg2[pg2] https://github.com/igrishaev/pg2/blob/master/CHANGELOG.md[0.1.11] - A fast PostgreSQL driver for Clojure
45+
* https://github.com/onionpancakes/chassis[chassis] https://github.com/onionpancakes/chassis/releases/tag/v1.0.365[1.0.365] - Fast HTML5 serialization for Clojure
46+
* https://github.com/guillerglez88/hl7v2[hl7v2] 0.0.1-SNAPSHOT - Hl7v2 Clojure lib
47+
* https://github.com/tonsky/clj-reload[clj-reload] https://github.com/tonsky/clj-reload/blob/main/CHANGELOG.md[0.5.0] - Smarter way to reload Clojure code
48+
* https://github.com/flow-storm/flow-storm-debugger[flow-storm-debugger] https://github.com/flow-storm/flow-storm-debugger/blob/master/CHANGELOG.md[3.15.2] - A debugger for Clojure and ClojureScript with some unique features
49+
* https://github.com/raystubbs/zero[zero] 0.1.7 - Build web components in ClojureScript
50+
* https://github.com/BetterThanTomorrow/calva[calva] https://github.com/BetterThanTomorrow/calva/blob/published/CHANGELOG.md[2.0.443] - Clojure & ClojureScript Interactive Programming for VS Code
51+
* https://github.com/nubank/k8s-api[k8s-api] https://github.com/nubank/k8s-api/releases/tag/1.0.0[1.0.0] - Kubernetes client, data driven
52+
* https://github.com/scicloj/tablecloth[tablecloth] 7.029.2 - Dataset manipulation library built on the top of tech.ml.dataset
53+
* https://github.com/taoensso/telemere[telemere] https://github.com/taoensso/telemere/releases/tag/v1.0.0-beta1[v1.0.0-beta1] - Structured telemetry library for Clojure/Script
54+
* https://github.com/abogoyavlensky/automigrate[automigrate] https://github.com/abogoyavlensky/automigrate/releases/tag/0.3.3[0.3.3] - 🤖 Auto-generated database migrations for Clojure
55+
* https://github.com/squint-cljs/squint[squint] https://github.com/squint-cljs/squint/blob/main/CHANGELOG.md[0.7.105] - Light-weight ClojureScript dialect
56+
* https://github.com/squint-cljs/cherry[cherry] https://github.com/squint-cljs/cherry/blob/main/CHANGELOG.md[0.1.17] - Experimental ClojureScript to ES6 module compiler
57+
* https://github.com/soulspace-org/overarch[overarch] https://github.com/soulspace-org/overarch/blob/main/Changelog.md[0.15.1] - A data driven description of software architecture based on UML and the C4 model
58+
* https://github.com/nextjournal/clojure-mode[clojure-mode] https://github.com/nextjournal/clojure-mode/blob/main/CHANGELOG.md[0.3.2] - Clojure/Script mode for CodeMirror 6
59+
* https://github.com/babashka/nbb[nbb] https://github.com/babashka/nbb/blob/main/CHANGELOG.md[1.2.188] - Scripting in Clojure on Node.js using SCI
60+
* https://github.com/babashka/babashka[babashka] https://github.com/babashka/babashka/blob/master/CHANGELOG.md[1.3.190] - Native, fast starting Clojure interpreter for scripting
61+
* https://github.com/juji-io/datalevin[datalevin] https://github.com/juji-io/datalevin/blob/master/CHANGELOG.md[0.9.5] - A simple, fast and versatile Datalog database
62+
* https://github.com/babashka/http-client[http-client] https://github.com/babashka/http-client/blob/main/CHANGELOG.md[0.4.18] - HTTP client for Clojure and Babashka built on java.net.http
63+
* https://github.com/babashka/instaparse-bb[instaparse-bb] https://github.com/babashka/instaparse-bb/blob/main/CHANGELOG.md[0.0.4] - Use instaparse from babashka

0 commit comments

Comments
 (0)