Skip to content

Commit 42a137a

Browse files
committed
Update changelog
1 parent 3f8c7e1 commit 42a137a

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

changes.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,60 @@
11
<!-- -*- mode: markdown ; mode: visual-line ; coding: utf-8 -*- -->
22

3+
# Changes to Clojure in Version 1.12.4
4+
5+
* [CLJ-2924](https://clojure.atlassian.net/browse/CLJ-2924) - LazySeq - fix visibility issues with non-volatile reads
6+
7+
# Changes to ClojureCLR in Version 1.12.4
8+
9+
* [CLJCLR-181](https://clojure.atlassian.net/browse/CLJCLR-181) - Fix handling of a primitive type hint on the var name for a defn .
10+
* [CLJCLR-183](https://clojure.atlassian.net/browse/CLJCLR-183) - Fix NullReferenceException that sometimes occurs in printing a stack trace.
11+
* [CLJCLR-185](https://clojure.atlassian.net/browse/CLJCLR-185) - Change lookup directory for Clojure.Source.dll to be the same as for the spec.alpha dlls.
12+
* [CLJCLR-186](https://clojure.atlassian.net/browse/CLJCLR-186) - Fix parsing of dotnet version when version is release candidate or other preview
13+
* [CLJCLR-187](https://clojure.atlassian.net/browse/CLJCLR-187) - Include .NET 10 as a target framework
14+
* [CLJCLR-188](https://clojure.atlassian.net/browse/CLJCLR-188) - Fix sort-by to work with IComparable
15+
* [CLJCLR-190](https://clojure.atlassian.net/browse/CLJCLR-190) - Allow RT.classForName to look up non-public types (fix a regression)
16+
* [CLJCLR-189](https://clojure.atlassian.net/browse/CLJCLR-189) - Make clojure.core.Num throw an Exception on non-numeric types. (Better match to JVM behavior.)
17+
* [CLJCLR-191](https://clojure.atlassian.net/browse/CLJCLR-191) - PersistentVector.TransientVector should implement IFn.invoke(object arg1)
18+
19+
## Type specification and Loading
20+
21+
A significant change was made to the type specification language. Instead of having to type `|System.Collections.Generic.Dictionary``2[System.String, System.Collections.List``1[System.Int64]]|`,
22+
one can now declare type aliases and also use special type names such as `int` as generic type arguments.
23+
By declaring type aliases
24+
25+
```clojure
26+
(alias-type Dictionary |System.Collections.Generic.Dictionary`2|)
27+
(alias-type List |System.Collections.Generic.List`1|)
28+
(alias-type IntList |List[int]|)
29+
```
30+
31+
one can refer to types in this way:
32+
33+
```clojure
34+
|Dictionary[String, List<long>]|
35+
|Dictionary[String, IntList]|
36+
```
37+
38+
and create expressions such as
39+
40+
```clojure
41+
(def my-list (IntList/new))
42+
(IntList/.Add my-list 42)
43+
```
44+
45+
In addition, changes were made to improve discovery of assemblies that should be checked and automatically loaded when looking up types.
46+
The `DependencyContext` class is used to find the entry assembly's dependencies. We also discover assemblies that are part of the shared
47+
.NET runtime via `AppContext.GetData("TRUSTED_PLATFORM_ASSEMBLIES")`.
48+
49+
Note that the `AppContext.GetData` is not available on Framework 4.6.2. A build for Framework 4.8.1 was added -- if you want to take advantage of the improved assembly discovery under .NET Framework, you will have to move to that version.
50+
51+
Details are available in the blog post [Typename syntax and resolution in ClojureCLR](https://dmiller.github.io/clojure-clr-next/general/2025/09/21/typename-syntax-and-resolution.html).
52+
53+
54+
# Changes to Clojure in Version 1.12.3
55+
56+
* [CLJ-2919](https://clojure.atlassian.net/browse/CLJ-2919) - Compiler - fix nested compilation emitting for keyword and protocol call sites
57+
358
# Changes to Clojure in Version 1.12.2
459

560
* [CLJ-2914](https://clojure.atlassian.net/browse/CLJ-2914) - Compiler - syntax error if qualified instance method expression is missing instance

0 commit comments

Comments
 (0)