You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Oleksandr Yakushev](#oleksandr-yakushev): CIDER, clj-async-profiler and Flamebin, clj-memory-meter
19
19
20
20
21
21
## Dragan Duric
22
-
2025 Annual Funding Report 2. Published May xx, 2025.
22
+
2025 Annual Funding Report 2. Published May 5, 2025.
23
23
24
+
My goal with this funding in 2025 is to support Apple silicon (M cpus) in Neanderthal
25
+
(and other Uncomplicate libraries where that makes sense and where it's possible).
24
26
27
+
In March and April, I implemented the JNI bindings for 5 Apple Accelerate libraries (blas_new, lapack_new, Sparse, BNNS, BNNS Graph, vDSP, vForce and vImage) and implemented almost all functionality of Neaanderthal's Apple M engine based on Accelerate.
28
+
It will soon be ready for proper release (currently waiting some bugfixes, polishing, and a javacpp-presets release to be available in Maven Central).
29
+
30
+
In more detail:
31
+
32
+
Here's what I've proposed when applying for the CT grant.
33
+
34
+
I proposed to *Implement an Apple M engine for Neanderthal.* This involves:
35
+
- buying an Apple M2/3 Mac (the cheapest M3 in Serbia is almost 3000 USD (with VAT).
36
+
- learning enough macOS tools (Xcode was terrible back in the days) to be able to do anything.
37
+
- exploring JavaCPP support for ARM and macOS.
38
+
- exploring relevant libraries (OpenBLAS may even work through JavaCPP).
39
+
- exploring Apple Accelerate.
40
+
- learning enough JavaCPP tooling to be able to see whether it is realistic that I build Accelerate wrapper (and if I can't, at least to know how much I don't know).
41
+
- I forgot even little C/C++ that I did know back in the day. This may also give me some headaches, as I'll have to quickly pick up whatever is needed.
42
+
- writing articles about relevant topics so Clojurians can pick this functionality as it arrives.
43
+
44
+
Projects directly involved:
45
+
https://github.com/uncomplicate/neanderthal
46
+
https://github.com/uncomplicate/deep-diamond
47
+
https://github.com/uncomplicate/clojure-cpp
48
+
49
+
As I implemented and OpenBLAS-based engine in January-February, in March-April I tackled the main objective: Apple Accelerate bindings. As Apple's documentation is not stellar, and there are multiple tools and languages involved, it was a slow and tedious work consisting of lots of experimentation and discovery. Even boring, I would say. But, slowly and steadily I discovered how relevant JavaCPP generators work, I unearthed Accelerate C++ intricacies, fought with them one by one, and slowly I managed to create the proper Java bindings! Along the way I even contributed some fixes and updates to JavaCPP itself! YAY! This is available as a new project under Uncomplicate umbrella at https://github.com/uncomplicate/apple-presets
50
+
51
+
Next, I returned to the pleasant part of work - programming in Clojure - and almost completed the dedicated Neanderthal engine that utilizes Apple Accelerate for BLAS, LAPACK, as well as Math functions and random generators on M Macs. This covers the core and linalg namespace, that was already supported by the alternative OpenBLAS engine (implemented in Jan-Feb) AND Math and RNG engines. I didn't manage to iron out all the bugs so it could be ready for release, but this will certainly be ready in May-June. I also didn't manage to tackle Sparse matrices, but as I managed to create Accelerate bindings for all types, including Sparse, I expect this to not be a problem and be completed during this funding round.
52
+
53
+
Looking at the funding proposal, I can say that I'm very satisfied that all the features that I promised to build are progressing even better than expected, so that will leave some time to try to do some of the features
54
+
that I said I hope to be able to support, namely to explore Deep Diamond Tensor support on Apple M (via BNNS and/or BNNS Graph) and GPU support via Metal.
55
+
56
+
I even got some ideas for additional projects based on native Apple functionality related to machine learning and audio/video, but lets not getting too much ahead.
57
+
58
+
All in all, I feel optimistic about how this project progresses! <br>
59
+
60
+
---
25
61
26
62
27
63
## Eric Dallo
28
-
2025 Annual Funding Report 2. Published May xx, 2025.
64
+
2025 Annual Funding Report 2. Published April 30, 2025.
65
+
66
+
In these 2 last months I could work on multiple projects and even focus on a new exciting project called [metrepl](https://github.com/ericdallo/metrepl), a nREPL middleware to help extract metrics about your REPL, really helpful when you have multiple coworkers working in multiple projects and you want to collect information about performance, time spent in REPL features and others!
67
+
Besides that, I worked hard on keep improving the IntelliJ experience using the 2 OSS plugins of LSP + REPL, and of cource improving clojure-lsp the base of all major editors now.
- Fix `event/op-completed` metric to measure time correctly
76
+
- Add `event/test-executed` event.
77
+
- Add `event/test-passed`, `event/test-errored` and `event/test-failed` events.
78
+
- Add `session-time-ms` to `close` op.
79
+
- Add `:project-path` to metrics.
80
+
- Add compatibility with older Clojure versions
81
+
82
+
## [clojure-lsp](https://clojure-lsp.io/)
83
+
84
+
### 2025.03.07-17.42.36 - 2025.04.23-18.16.46
85
+
86
+
- General
87
+
- Bump clj-kondo to `2025.02.20`.
88
+
- Add support for OpenTelemetry(otlp) log, enabled if configured. #1963
89
+
- Bump rewrite-clj to `0bb572a03c0025c01f9c36bfca2815254683fbde`. #1984
90
+
- Bump clj-kondo to `2025.02.21-20250314.135629-7`.
91
+
- Add support for ignoring tests references for the `clojure-lsp/unused-public-var` linter. #1878
92
+
- Add `:test-locations-regex` configuration to allow customizing test file detection for the `unused-public-var` linter's `:ignore-test-references?` and test code lenses. #1878
93
+
- Improve and standardize all logs for better troubleshooting and metrics collection.
94
+
- Fix `unused-public-var` false positives when `:ignore-test-references? true`.
95
+
- Bump clj-kondo to `2025.04.07`.
96
+
- Editor
97
+
- Improve paredit slurp and barf corner cases. #1973#1976
98
+
- Add Semantic Tokens support for the Clojure Reader Dispatch macro `#_` (ignore next form). #1965
99
+
- Fix regression on previous version on snippets completion. #1978
100
+
- Add `forward`, `forward-select`, `backward` and `backward-select` paredit actions.
101
+
- Show add require code action for invalid syntax codes like `my-alias/`. #1957
102
+
- Improve startup performance for huge projects avoiding publish empty diagnostics for every file of the project unnecessarily.
103
+
- Improve timbre context log.
104
+
- Fix suggestion for add require code action. #2017
105
+
- Improve find definition so it works on `declare` forms too. #1986
Together with the help of [@afucher](https://github.com/afucher), we improved so much the IntelliJ REPL experience, fixing multiple issues and adding multiple features, the experience now is pretty close to other REPL experiences in other editors!
122
+
123
+
### 2.3.0 - 2.5.2
124
+
125
+
- Update repl window ns after switching ns.
126
+
- Fix exception on settings page.
127
+
- Fix special form evaluations. #135
128
+
- Add support for JVM args on local REPL configuration. #124
129
+
- Send to REPL eval results. #92
130
+
- Fix repl input when evaluated the same input of last eval.
131
+
- Fix history navigation via shortcut not working after 2.0.0.
132
+
- Enhance REPL evaluations. #108
133
+
- Isolate ns from REPL windows and file editors
134
+
- Evaluate ns form from file automatically to avoid namespace-not-found errors.
135
+
- Fix REPL window horizontal scrollbar not working.
136
+
- Fix REPL window broken after making any change to its layout. #144
137
+
- Disable "clear REPL" action when REPL is not connected. #126
138
+
- Bump clj4intellij to 0.8.0
139
+
- Configure project with IntelliJ integration tests (headless)
0 commit comments