clojure.core in ClojureCLR
- Implemented
- 99.3%674 / 679
- Mismatched
- 3
- Missing
- 5
- Dialect-Only
- 37
Metadata Mismatches (3)
Vars present in both Clojure (JVM) and this surface but with differing arglists, :macro flag, or :dynamic flag.
| Var | Difference |
|---|---|
defn | :dynamic Clojure (JVM): false this surface: true |
sorted-map | arglists Clojure (JVM): ([& keyvals])this surface: ([] [& keyvals]) |
sorted-set | arglists Clojure (JVM): ([& keys])this surface: ([] [& keys]) |
Vars Present in Clojure (JVM) but Absent from This Surface (5)
| Var |
|---|
*fn-loader* |
add-classpath |
bean |
resultset-seq |
seque |
Vars Present in This Surface but Not in Clojure (JVM) (37)
| Var |
|---|
*allow-symbol-escape* |
*ns-load-mappings* |
add-ns-load-mapping |
array? |
aset-decimal |
aset-sbyte |
aset-uint |
aset-ulong |
aset-ushort |
assembly-load |
assembly-load-file |
assembly-load-from |
assembly-load-with-partial-name |
by-ref |
compile-when |
decimal |
dotnet-platform |
dotnet-version |
enum-and |
enum-or |
enum-val |
enum? |
fp-str |
framework-description |
gen-delegate |
print-throwable |
sbyte |
sbyte-array |
sys-action |
sys-func |
type-args |
uint |
uint-array |
ulong |
ulong-array |
ushort |
ushort-array |
Documented Intentional Divergences in This Namespace (4)
gen-class emits CLR MSIL, not JVM bytecode
- Since
clr-1.0- Rationale
- `gen-class` works on CLR but the AOT artifact is a .NET assembly, not a .class file. Consumers that load the generated class via JVM tooling do not work.
Host classes are CLR System.*, not JVM java.*
- Since
clr-1.0- Rationale
- `(class x)` returns a CLR Type object. Code that pattern-matches on `java.lang.Long` or similar names doesn't work; CLR equivalents are `System.Int64`, `System.String`, etc.
clojure.java.io is intentionally absent
- Since
clr-1.0- Rationale
- CLR's IO abstractions are System.IO.*; a separate ClojureCLR-side namespace `clojure.clr.io` covers the equivalent surface. Code that requires `clojure.java.io` is JVM-bound.
proxy targets CLR types, not JVM interfaces
- Since
clr-1.0- Rationale
- `proxy` is supported on CLR but emits CLR types extending CLR base classes. Proxies of JVM-only interfaces (Runnable, Callable) do not translate.