Skip to content

Commit 9121a72

Browse files
committed
Bump README versions for 1.3.0
1 parent 5babd9d commit 9121a72

File tree

16 files changed

+133
-130
lines changed

16 files changed

+133
-130
lines changed

CHANGELOG.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,71 @@
1+
# 1.3.0 (2025/03/09)
2+
3+
- annotate `clojure.core/empty`
4+
- support `(t/Val "string")` in `t/pred`
5+
- Close https://github.com/typedclojure/typedclojure/issues/143
6+
- correctly scope datatype type variables when checking deftype
7+
- fix t/Match to work without type variables
8+
- revert bad optimization in analyzer (caught by David Miller during CLR port)
9+
- support Clojure 1.9.0 in analyzers
10+
- add alternative syntax for "or" proposition: (or Props...)
11+
- using requiring-resolve to resolve protocol vars during type checking
12+
- allows `:as-alias` to be used in annotations
13+
- add clj-kondo hook for `clojure.core.typed/pred`
14+
- add `clojure.string/starts-with?` annotation
15+
- default `:check-config` `:check-ns-dep` to `:never` and fix `:recheck`
16+
- add `{:typed.clojure {:experimental #{:cache}}}` namespace meta to start investigating caching of type checking results
17+
- currently prints results to screen
18+
- fix verbose printing for composite types
19+
- don't uniquify type variables with verbose printing
20+
- add new new `:unique-tvars` option to `*verbose-types*` to uniquify type variable names
21+
- namespace-level functions like `check-ns` now `require`s the namespace being checked before type checking it, and does not evaluate individual forms
22+
- usual `require` behavior applies (only loads if not already loaded), so user is now responsible for reloading type annotations, similar to spec
23+
- e.g., if you change a `t/ann`, make sure to evaluate the form just as you would an `s/def`
24+
- this enables future optimizations to type check forms in parallel and integrate type checking with tools.namespace/clj-reload namespace loading hooks
25+
- for previous behavior, use:
26+
```clojure
27+
(check-ns *ns* :check-config {:check-ns-load :never, :check-form-eval :after})
28+
```
29+
- micro-optimization improvements thanks to Oleksandr Yakushev (@alexander-yakushev)
30+
- use fully-satisfies library for thread-safe variant of requiring-resolve in all submodules
31+
- add additional typing rule for this function
32+
- restructure `clojure.core.typed` to optimize loading time
33+
- 80% improvement, also improves `typed.clojure` loading time
34+
- performance of generated code from `pred` and contracts may be affected because of `requiring-resolve` calls in output
35+
- merged first batch of ClojureCLR specializations to analyzer and runtime, thanks to David Miller (@dmiller)
36+
- pretty printing of Classes by their simple names only supported for classes interned by their simple names
37+
- fix Array <: Seqable subtyping
38+
- refactor tail of subtyping using single-dispatch, thanks to Oleksandr Yakushev (@alexander-yakushev)
39+
- enable parallel checking by default, one thread per top-level form
40+
- defaults to number of processors
41+
- configurable via options: `(check-ns *ns* {:max-processors 1})`
42+
- reset lexical type environment when checking ns dependency
43+
- type check `clojure.core/assert` as if `*assert*` is true
44+
- remove `*verbose-{types,forms}*`
45+
- use `:verbose-{types,forms} true` option
46+
- remove system property `clojure.core.typed.intern-defaliases`
47+
- support `:typed.clojure/ignore true` metadata on macro vars which is
48+
a hint to the checker that it always expands to ignored forms
49+
- use `(t/cat T1 T2 T3)` to instantiate dotted variables via `t/inst`
50+
- polymorphic binders with one trailing dotted variable still support the old style of `T1 T2 T3`
51+
- assert `t/Rec` binder must have simple symbols
52+
- BREAKING: remove support for `...` and `:...` syntax in `t/All` binder, `t/IFn`, `t/cat`, and `t/HSequential`
53+
- now `:..`
54+
- support bounded strings in `t/pred`
55+
```clojure
56+
(t/defalias String1<=10 (t/I t/Str (t/CountRange 1 10)))
57+
(def string1<=10? (t/pred String1<=10))
58+
(is (not (string1<=10? "")))
59+
(is (string1<=10? "012345"))
60+
(is (not (string1<=10? "0123456789ten")))
61+
```
62+
- use `bounded-count` in `t/CountRange` predicates to support infinite collections
63+
```clojure
64+
(is ((t/pred (t/CountRange 1)) (range)))
65+
```
66+
- leaner bytecode in `t/pred` output
67+
- support infinite Names types in `t/pred`
68+
169
# 1.2.1 (2024/03/20)
270

371
- lib.core.async improvements

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ time, and the runtime dependencies in production.
3131
In Clojure CLI's `deps.edn`, this will look something like this:
3232

3333
```clojure
34-
{:deps {org.typedclojure/typed.clj.runtime {:mvn/version "1.2.1"}}
35-
:aliases {:dev {:extra-deps {org.typedclojure/typed.clj.checker {:mvn/version "1.2.1"}}}}}
34+
{:deps {org.typedclojure/typed.clj.runtime {:mvn/version "1.3.0"}}
35+
:aliases {:dev {:extra-deps {org.typedclojure/typed.clj.checker {:mvn/version "1.3.0"}}}}}
3636
```
3737

3838
You can then start a dev repl with `clj -A:dev`.
@@ -41,8 +41,8 @@ In Leiningen's `project.clj`, it will look something like this:
4141

4242
```clojure
4343
(defproject com.my-domain/a-project "1.0.0-SNAPSHOT"
44-
:dependencies [[org.typedclojure/typed.clj.runtime "1.2.1"]]
45-
:profiles {:dev {:dependencies [[org.typedclojure/typed.clj.checker "1.2.1"]]}})
44+
:dependencies [[org.typedclojure/typed.clj.runtime "1.3.0"]]
45+
:profiles {:dev {:dependencies [[org.typedclojure/typed.clj.checker "1.3.0"]]}})
4646
```
4747

4848
Then, `lein repl` will automatically activate the `:dev` profile. Verify the type
@@ -61,7 +61,7 @@ For ClojureScript support, use `org.typedclojure/typed.cljs.runtime` and `org.ty
6161

6262
## Releases and Dependency Information
6363

64-
Latest stable release is 1.2.1.
64+
Latest stable release is 1.3.0.
6565

6666
See modules for specific version coordinates:
6767

current-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.2.2-SNAPSHOT
1+
1.3.1-SNAPSHOT

next-release-changes.md

Lines changed: 0 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +0,0 @@
1-
- annotate `clojure.core/empty`
2-
- support `(t/Val "string")` in `t/pred`
3-
- Close https://github.com/typedclojure/typedclojure/issues/143
4-
- correctly scope datatype type variables when checking deftype
5-
- fix t/Match to work without type variables
6-
- revert bad optimization in analyzer (caught by David Miller during CLR port)
7-
- support Clojure 1.9.0 in analyzers
8-
- add alternative syntax for "or" proposition: (or Props...)
9-
- using requiring-resolve to resolve protocol vars during type checking
10-
- allows `:as-alias` to be used in annotations
11-
- add clj-kondo hook for `clojure.core.typed/pred`
12-
- add `clojure.string/starts-with?` annotation
13-
- default `:check-config` `:check-ns-dep` to `:never` and fix `:recheck`
14-
- add `{:typed.clojure {:experimental #{:cache}}}` namespace meta to start investigating caching of type checking results
15-
- currently prints results to screen
16-
- fix verbose printing for composite types
17-
- don't uniquify type variables with verbose printing
18-
- add new new `:unique-tvars` option to `*verbose-types*` to uniquify type variable names
19-
- namespace-level functions like `check-ns` now `require`s the namespace being checked before type checking it, and does not evaluate individual forms
20-
- usual `require` behavior applies (only loads if not already loaded), so user is now responsible for reloading type annotations, similar to spec
21-
- e.g., if you change a `t/ann`, make sure to evaluate the form just as you would an `s/def`
22-
- this enables future optimizations to type check forms in parallel and integrate type checking with tools.namespace/clj-reload namespace loading hooks
23-
- for previous behavior, use:
24-
```clojure
25-
(check-ns *ns* :check-config {:check-ns-load :never, :check-form-eval :after})
26-
```
27-
- micro-optimization improvements thanks to Oleksandr Yakushev (@alexander-yakushev)
28-
- use fully-satisfies library for thread-safe variant of requiring-resolve in all submodules
29-
- add additional typing rule for this function
30-
- restructure `clojure.core.typed` to optimize loading time
31-
- 80% improvement, also improves `typed.clojure` loading time
32-
- performance of generated code from `pred` and contracts may be affected because of `requiring-resolve` calls in output
33-
- merged first batch of ClojureCLR specializations to analyzer and runtime, thanks to David Miller (@dmiller)
34-
- pretty printing of Classes by their simple names only supported for classes interned by their simple names
35-
- fix Array <: Seqable subtyping
36-
- refactor tail of subtyping using single-dispatch, thanks to Oleksandr Yakushev (@alexander-yakushev)
37-
- enable parallel checking by default, one thread per top-level form
38-
- defaults to number of processors
39-
- configurable via options: `(check-ns *ns* {:max-processors 1})`
40-
- reset lexical type environment when checking ns dependency
41-
- type check `clojure.core/assert` as if `*assert*` is true
42-
- remove `*verbose-{types,forms}*`
43-
- use `:verbose-{types,forms} true` option
44-
- remove system property `clojure.core.typed.intern-defaliases`
45-
- support `:typed.clojure/ignore true` metadata on macro vars which is
46-
a hint to the checker that it always expands to ignored forms
47-
- use `(t/cat T1 T2 T3)` to instantiate dotted variables via `t/inst`
48-
- polymorphic binders with one trailing dotted variable still support the old style of `T1 T2 T3`
49-
- assert `t/Rec` binder must have simple symbols
50-
- BREAKING: remove support for `...` and `:...` syntax in `t/All` binder, `t/IFn`, `t/cat`, and `t/HSequential`
51-
- now `:..`
52-
- support bounded strings in `t/pred`
53-
```clojure
54-
(t/defalias String1<=10 (t/I t/Str (t/CountRange 1 10)))
55-
(def string1<=10? (t/pred String1<=10))
56-
(is (not (string1<=10? "")))
57-
(is (string1<=10? "012345"))
58-
(is (not (string1<=10? "0123456789ten")))
59-
```
60-
- use `bounded-count` in `t/CountRange` predicates to support infinite collections
61-
```clojure
62-
(is ((t/pred (t/CountRange 1)) (range)))
63-
```
64-
- leaner bytecode in `t/pred` output
65-
- support infinite Names types in `t/pred`

stable-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.2.1
1+
1.3.0

typed/clj.analyzer/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ Analyzer for JVM Clojure, tuned for consumption by an optional type checker.
77

88
## Releases and Dependency Information
99

10-
Latest stable release is 1.2.1.
10+
Latest stable release is 1.3.0.
1111

1212
* [All Released Versions](https://clojars.org/org.typedclojure/typed.clj.analyzer)
1313

1414
[deps.edn](https://clojure.org/reference/deps_and_cli) JAR dependency information:
1515

1616
```clj
17-
org.typedclojure/typed.clj.analyzer {:mvn/version "1.2.1"}
17+
org.typedclojure/typed.clj.analyzer {:mvn/version "1.3.0"}
1818
```
1919

2020
[deps.edn](https://clojure.org/reference/deps_and_cli) Git dependency information:
@@ -25,13 +25,13 @@ Latest stable release is 1.2.1.
2525
org.typedclojure/typed.clj.analyzer
2626
{:git/url "https://github.com/typedclojure/typedclojure"
2727
:deps/root "typed/clj.analyzer"
28-
:git/tag "1.2.1"}
28+
:git/tag "1.3.0"}
2929
```
3030

3131
[Leiningen](https://github.com/technomancy/leiningen) dependency information:
3232

3333
```clojure
34-
[org.typedclojure/typed.clj.analyzer "1.2.1"]
34+
[org.typedclojure/typed.clj.analyzer "1.3.0"]
3535
```
3636

3737
[Maven](https://maven.apache.org/) dependency information:
@@ -40,7 +40,7 @@ Latest stable release is 1.2.1.
4040
<dependency>
4141
<groupId>org.typedclojure</groupId>
4242
<artifactId>typed.clj.analyzer</artifactId>
43-
<version>1.2.1</version>
43+
<version>1.3.0</version>
4444
</dependency>
4545
```
4646

typed/clj.checker/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ Type checker for Typed Clojure, for JVM Clojure.
77

88
## Releases and Dependency Information
99

10-
Latest stable release is 1.2.1.
10+
Latest stable release is 1.3.0.
1111

1212
* [All Released Versions](https://clojars.org/org.typedclojure/typed.clj.checker)
1313

1414
[deps.edn](https://clojure.org/reference/deps_and_cli) JAR dependency information:
1515

1616
```clj
17-
org.typedclojure/typed.clj.checker {:mvn/version "1.2.1"}
17+
org.typedclojure/typed.clj.checker {:mvn/version "1.3.0"}
1818
```
1919

2020
[deps.edn](https://clojure.org/reference/deps_and_cli) Git dependency information:
@@ -25,13 +25,13 @@ Latest stable release is 1.2.1.
2525
org.typedclojure/typed.clj.checker
2626
{:git/url "https://github.com/typedclojure/typedclojure"
2727
:deps/root "typed/clj.checker"
28-
:git/tag "1.2.1"}
28+
:git/tag "1.3.0"}
2929
```
3030

3131
[Leiningen](https://github.com/technomancy/leiningen) dependency information:
3232

3333
```clojure
34-
[org.typedclojure/typed.clj.checker "1.2.1"]
34+
[org.typedclojure/typed.clj.checker "1.3.0"]
3535
```
3636

3737
[Maven](https://maven.apache.org/) dependency information:
@@ -40,7 +40,7 @@ Latest stable release is 1.2.1.
4040
<dependency>
4141
<groupId>org.typedclojure</groupId>
4242
<artifactId>typed.clj.checker</artifactId>
43-
<version>1.2.1</version>
43+
<version>1.3.0</version>
4444
</dependency>
4545
```
4646

typed/clj.runtime/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ Runtime dependency needed to annotate Typed Clojure code in JVM Clojure.
77

88
## Releases and Dependency Information
99

10-
Latest stable release is 1.2.1.
10+
Latest stable release is 1.3.0.
1111

1212
* [All Released Versions](https://clojars.org/org.typedclojure/typed.clj.runtime)
1313

1414
[deps.edn](https://clojure.org/reference/deps_and_cli) JAR dependency information:
1515

1616
```clj
17-
org.typedclojure/typed.clj.runtime {:mvn/version "1.2.1"}
17+
org.typedclojure/typed.clj.runtime {:mvn/version "1.3.0"}
1818
```
1919

2020
[deps.edn](https://clojure.org/reference/deps_and_cli) Git dependency information:
@@ -25,13 +25,13 @@ Latest stable release is 1.2.1.
2525
org.typedclojure/typed.clj.runtime
2626
{:git/url "https://github.com/typedclojure/typedclojure"
2727
:deps/root "typed/clj.runtime"
28-
:git/tag "1.2.1"}
28+
:git/tag "1.3.0"}
2929
```
3030

3131
[Leiningen](https://github.com/technomancy/leiningen) dependency information:
3232

3333
```clojure
34-
[org.typedclojure/typed.clj.runtime "1.2.1"]
34+
[org.typedclojure/typed.clj.runtime "1.3.0"]
3535
```
3636

3737
[Maven](https://maven.apache.org/) dependency information:
@@ -40,7 +40,7 @@ Latest stable release is 1.2.1.
4040
<dependency>
4141
<groupId>org.typedclojure</groupId>
4242
<artifactId>typed.clj.runtime</artifactId>
43-
<version>1.2.1</version>
43+
<version>1.3.0</version>
4444
</dependency>
4545
```
4646

typed/clj.spec/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,14 @@ See tests for more examples:
100100

101101
## Releases and Dependency Information
102102

103-
Latest stable release is 1.2.1.
103+
Latest stable release is 1.3.0.
104104

105105
* [All Released Versions](https://clojars.org/org.typedclojure/typed.clj.spec)
106106

107107
[deps.edn](https://clojure.org/reference/deps_and_cli) JAR dependency information:
108108

109109
```clj
110-
org.typedclojure/typed.clj.spec {:mvn/version "1.2.1"}
110+
org.typedclojure/typed.clj.spec {:mvn/version "1.3.0"}
111111
```
112112

113113
[deps.edn](https://clojure.org/reference/deps_and_cli) Git dependency information:
@@ -118,13 +118,13 @@ Latest stable release is 1.2.1.
118118
org.typedclojure/typed.clj.spec
119119
{:git/url "https://github.com/typedclojure/typedclojure"
120120
:deps/root "typed/clj.spec"
121-
:git/tag "1.2.1"}
121+
:git/tag "1.3.0"}
122122
```
123123

124124
[Leiningen](https://github.com/technomancy/leiningen) dependency information:
125125

126126
```clojure
127-
[org.typedclojure/typed.clj.spec "1.2.1"]
127+
[org.typedclojure/typed.clj.spec "1.3.0"]
128128
```
129129

130130
[Maven](https://maven.apache.org/) dependency information:
@@ -133,7 +133,7 @@ Latest stable release is 1.2.1.
133133
<dependency>
134134
<groupId>org.typedclojure</groupId>
135135
<artifactId>typed.clj.spec</artifactId>
136-
<version>1.2.1</version>
136+
<version>1.3.0</version>
137137
</dependency>
138138
```
139139

typed/cljc.analyzer/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ A common base for Clojure analyzers, tuned for consumption by an optional type c
77

88
## Releases and Dependency Information
99

10-
Latest stable release is 1.2.1.
10+
Latest stable release is 1.3.0.
1111

1212
* [All Released Versions](https://clojars.org/org.typedclojure/typed.cljc.analyzer)
1313

1414
[deps.edn](https://clojure.org/reference/deps_and_cli) JAR dependency information:
1515

1616
```clj
17-
org.typedclojure/typed.cljc.analyzer {:mvn/version "1.2.1"}
17+
org.typedclojure/typed.cljc.analyzer {:mvn/version "1.3.0"}
1818
```
1919

2020
[deps.edn](https://clojure.org/reference/deps_and_cli) Git dependency information:
@@ -25,13 +25,13 @@ Latest stable release is 1.2.1.
2525
org.typedclojure/typed.cljc.analyzer
2626
{:git/url "https://github.com/typedclojure/typedclojure"
2727
:deps/root "typed/cljc.analyzer"
28-
:git/tag "1.2.1"}
28+
:git/tag "1.3.0"}
2929
```
3030

3131
[Leiningen](https://github.com/technomancy/leiningen) dependency information:
3232

3333
```clojure
34-
[org.typedclojure/typed.cljc.analyzer "1.2.1"]
34+
[org.typedclojure/typed.cljc.analyzer "1.3.0"]
3535
```
3636

3737
[Maven](https://maven.apache.org/) dependency information:
@@ -40,7 +40,7 @@ Latest stable release is 1.2.1.
4040
<dependency>
4141
<groupId>org.typedclojure</groupId>
4242
<artifactId>typed.cljc.analyzer</artifactId>
43-
<version>1.2.1</version>
43+
<version>1.3.0</version>
4444
</dependency>
4545
```
4646

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy