clojure.core in mino
- Implemented
- 82.5%560 / 679
- Mismatched
- 78
- Missing
- 119
- Dialect-Only
- 184
Metadata Mismatches (78)
Vars present in both Clojure (JVM) and this surface but with differing arglists, :macro flag, or :dynamic flag.
| Var | Difference |
|---|---|
*agent* | :dynamic Clojure (JVM): false this surface: true |
*assert* | :dynamic Clojure (JVM): false this surface: true |
*clojure-version* | :dynamic Clojure (JVM): true this surface: false |
*command-line-args* | :dynamic Clojure (JVM): false this surface: true |
*compile-files* | :dynamic Clojure (JVM): false this surface: true |
*compile-path* | :dynamic Clojure (JVM): false this surface: true |
*err* | :dynamic Clojure (JVM): false this surface: true |
*file* | :dynamic Clojure (JVM): false this surface: true |
*flush-on-newline* | :dynamic Clojure (JVM): false this surface: true |
*in* | :dynamic Clojure (JVM): false this surface: true |
*math-context* | :dynamic Clojure (JVM): false this surface: true |
*out* | :dynamic Clojure (JVM): false this surface: true |
*print-dup* | :dynamic Clojure (JVM): false this surface: true |
*print-meta* | :dynamic Clojure (JVM): false this surface: true |
*print-readably* | :dynamic Clojure (JVM): false this surface: true |
*source-path* | :dynamic Clojure (JVM): false this surface: true |
*unchecked-math* | :dynamic Clojure (JVM): false this surface: true |
*warn-on-reflection* | :dynamic Clojure (JVM): false this surface: true |
-> | :macro Clojure (JVM): true this surface: false |
->> | :macro Clojure (JVM): true this surface: false |
and | :macro Clojure (JVM): true this surface: false |
as-> | :macro Clojure (JVM): true this surface: false |
assert | :macro Clojure (JVM): true this surface: false |
bound-fn | :macro Clojure (JVM): true this surface: false |
case | :macro Clojure (JVM): true this surface: false |
comment | :macro Clojure (JVM): true this surface: false |
cond | :macro Clojure (JVM): true this surface: false |
cond-> | :macro Clojure (JVM): true this surface: false |
cond->> | :macro Clojure (JVM): true this surface: false |
condp | :macro Clojure (JVM): true this surface: false |
definterface | :macro Clojure (JVM): true this surface: false |
defmethod | :macro Clojure (JVM): true this surface: false |
defmulti | :macro Clojure (JVM): true this surface: false |
defn | :macro Clojure (JVM): true this surface: false |
defn- | :macro Clojure (JVM): true this surface: false |
defonce | :macro Clojure (JVM): true this surface: false |
defprotocol | :macro Clojure (JVM): true this surface: false |
defrecord | :macro Clojure (JVM): true this surface: false |
deftype | :macro Clojure (JVM): true this surface: false |
delay | :macro Clojure (JVM): true this surface: false |
doseq | :macro Clojure (JVM): true this surface: false |
dosync | :macro Clojure (JVM): true this surface: false |
dotimes | :macro Clojure (JVM): true this surface: false |
doto | :macro Clojure (JVM): true this surface: false |
extend-protocol | :macro Clojure (JVM): true this surface: false |
extend-type | :macro Clojure (JVM): true this surface: false |
for | :macro Clojure (JVM): true this surface: false |
future | :macro Clojure (JVM): true this surface: false |
gen-class | :macro Clojure (JVM): true this surface: false |
if-let | :macro Clojure (JVM): true this surface: false |
if-not | :macro Clojure (JVM): true this surface: false |
if-some | :macro Clojure (JVM): true this surface: false |
import | :macro Clojure (JVM): true this surface: false |
io! | :macro Clojure (JVM): true this surface: false |
lazy-cat | :macro Clojure (JVM): true this surface: false |
letfn | :macro Clojure (JVM): true this surface: false |
or | :macro Clojure (JVM): true this surface: false |
pr | :dynamic Clojure (JVM): true this surface: false |
proxy | :macro Clojure (JVM): true this surface: false |
pvalues | :macro Clojure (JVM): true this surface: false |
reify | :macro Clojure (JVM): true this surface: false |
some-> | :macro Clojure (JVM): true this surface: false |
some->> | :macro Clojure (JVM): true this surface: false |
time | :macro Clojure (JVM): true this surface: false |
vswap! | :macro Clojure (JVM): true this surface: false |
when | :macro Clojure (JVM): true this surface: false |
when-first | :macro Clojure (JVM): true this surface: false |
when-let | :macro Clojure (JVM): true this surface: false |
when-not | :macro Clojure (JVM): true this surface: false |
when-some | :macro Clojure (JVM): true this surface: false |
while | :macro Clojure (JVM): true this surface: false |
with-bindings | :macro Clojure (JVM): true this surface: false |
with-in-str | :macro Clojure (JVM): true this surface: false |
with-local-vars | :macro Clojure (JVM): true this surface: false |
with-open | :macro Clojure (JVM): true this surface: false |
with-out-str | :macro Clojure (JVM): true this surface: false |
with-precision | :macro Clojure (JVM): true this surface: false |
with-redefs | :macro Clojure (JVM): true this surface: false |
Vars Present in Clojure (JVM) but Absent from This Surface (119)
| Var |
|---|
*allow-unresolved-vars* |
*compiler-options* |
*fn-loader* |
*ns* |
*read-eval* |
*reader-resolver* |
*repl* |
*suppress-read* |
*use-context-classloader* |
*verbose-defrecords* |
->ArrayChunk |
->Eduction |
->Vec |
->VecNode |
->VecSeq |
-cache-protocol-fn |
-reset-methods |
.. |
EMPTY-NODE |
Inst |
PrintWriter-on |
StackTraceElement->vec |
Throwable->map |
accessor |
aclone |
add-classpath |
agent-errors |
amap |
areduce |
aset-boolean |
aset-byte |
aset-char |
aset-double |
aset-float |
aset-int |
aset-long |
aset-short |
await1 |
bases |
bean |
binding |
booleans |
bytes |
cast |
char-escape-string |
char-name-string |
chars |
class |
class? |
clear-agent-errors |
compile |
construct-proxy |
create-struct |
declare |
default-data-readers |
definline |
defmacro |
defstruct |
doubles |
enumeration-seq |
extend |
extenders |
extends? |
find-protocol-impl |
find-protocol-method |
floats |
fn |
gen-interface |
get-proxy-class |
init-proxy |
inst-ms* |
ints |
iterator-seq |
lazy-seq |
let |
line-seq |
load |
load-reader |
locking |
longs |
loop |
make-array |
memfn |
method-sig |
munge |
namespace-munge |
ns |
ns-imports |
primitives-classnames |
print-ctor |
print-dup |
print-simple |
proxy-call-with-super |
proxy-mappings |
proxy-name |
proxy-super |
read+string |
refer-clojure |
resultset-seq |
seque |
set-agent-send-executor! |
set-agent-send-off-executor! |
shorts |
stream-into! |
stream-reduce! |
stream-seq! |
stream-transduce! |
struct |
struct-map |
supers |
sync |
test |
to-array-2d |
unquote |
unquote-splicing |
update-proxy |
vector-of |
with-loading-context |
xml-seq |
Vars Present in This Surface but Not in Clojure (JVM) (184)
| Var |
|---|
-empty-queue |
-thread-bound? |
-var-root-bound? |
Boolean/parseBoolean |
Character/toString |
CollReduce |
CollReduce--coll-reduce |
Datafiable |
Datafiable--datafy |
Double/isInfinite |
Double/isNaN |
Double/parseDouble |
Float/parseFloat |
IKVReduce |
IKVReduce--kv-reduce |
Integer/parseInt |
Long/parseLong |
Math/abs |
Math/atan |
Math/atan2 |
Math/ceil |
Math/cos |
Math/exp |
Math/floor |
Math/log |
Math/log10 |
Math/max |
Math/min |
Math/pow |
Math/round |
Math/sin |
Math/sqrt |
Math/tan |
Navigable |
Navigable--nav |
String/valueOf |
System/currentTimeMillis |
System/exit |
System/getProperty |
System/getenv |
System/nanoTime |
Thread/sleep |
add-load-path! |
agent? |
alloc-profile-dump! |
alloc-profile-enabled? |
alloc-profile-reset! |
async-sched-enqueue* |
async-schedule-timer* |
atom? |
bigint? |
bits |
bits-get |
bitstring? |
car |
cdr |
chan-buf-add |
chan-buf-count |
chan-buf-full? |
chan-close |
chan-closed? |
chan-flush-buf-to-takers |
chan-get-ex-handler |
chan-get-xform |
chan-has-pending-putter? |
chan-has-pending-taker? |
chan-instance? |
chan-new |
chan-offer |
chan-poll |
chan-put |
chan-put-alts |
chan-set-xform |
chan-take |
chan-take-alts |
char-at |
chdir |
coll-reduce |
cons? |
datafy |
defrecord* |
deref-delay |
directory? |
dosync* |
drain! |
drain-loop! |
drop-seq |
error? |
exit |
file-exists? |
file-mtime |
future-deref |
gc! |
gc-stats |
getcwd |
getenv |
host/call |
host/get |
host/new |
host/static-call |
in-transaction? |
internal-reduce |
internal-reduce-kv |
io!-check |
java.util.List/of |
java.util.Map/of |
java.util.Set/of |
java.util.UUID/fromString |
java.util.UUID/randomUUID |
kv-reduce |
last-error |
lazy-filter |
lazy-map-1 |
lazy-take |
let-bits |
map-entry |
math-acos |
math-asin |
math-atan |
math-atan2 |
math-cbrt |
math-ceil |
math-copy-sign |
math-cos |
math-cosh |
math-exp |
math-expm1 |
math-floor |
math-hypot |
math-ieee-remainder |
math-log |
math-log10 |
math-log1p |
math-next-down |
math-next-up |
math-pow |
math-round |
math-signum |
math-sin |
math-sinh |
math-sqrt |
math-tan |
math-tanh |
math-to-degrees |
math-to-radians |
mino-capability |
mino-installed? |
mino-thread-count |
mino-thread-limit |
mkdir-p |
nano-time |
nav |
pop-thread-bindings* |
postwalk |
postwalk-replace |
pr-builtin |
prewalk |
prewalk-replace |
protocol-dispatch |
push-thread-bindings* |
queue? |
random-seed! |
rangev |
read* |
record* |
record-fields |
record-from-map |
record-type? |
ref? |
regex? |
rm-rf |
set! |
set-dyn-binding! |
set-fail-alloc-at! |
set-print-method! |
sh |
sh! |
subbits |
thread |
thread-sleep |
throw |
time-ms |
transient? |
walk |
Documented Extensions in This Namespace (4)
Keyword-based bitmask matching primitive
- Since
v0.422.0- Affected Vars
clojure.core/bits-kw-match
- Rationale
- Bit-level pattern matching against a keyword's internal representation. Designed for embedded use cases where bits-and-bytes ergonomics beat structural collection ops.
C++ RAII wrappers in mino.hpp
- Since
v0.421.0- Affected Vars
clojure.core/cpp-wrappers
- Rationale
- Optional C++ header (mino.hpp) gives embedders RAII semantics over mino_state lifecycle and value ownership. Not a Clojure-visible API; documented here to flag that mino's embedding surface extends beyond the C ABI.
JVM static method mirrors for integer radix conversion
- Since
v0.422.5- Affected Vars
clojure.core/Integer/toBinaryStringclojure.core/Integer/toHexStringclojure.core/Integer/toOctalStringclojure.core/Long/toBinaryStringclojure.core/Long/toHexStringclojure.core/Long/toOctalString
- Rationale
- Clojure code that calls Integer/toBinaryString etc. is fairly common; mino mirrors these as named bindings so portable code does not need to special- case mino. The implementation is in C, exposed via the jvm_statics module.
Monotonic-clock primitive
- Since
v0.166.0- Affected Vars
clojure.core/time-ms
- Rationale
- mino-native replacement for (System/currentTimeMillis). Returns milliseconds since an implementation-defined epoch; suitable for measuring elapsed time within a single process.
Documented Intentional Divergences in This Namespace (13)
class behaves like type -- no JVM-class semantics
- Since
v0.1.0- Rationale
- There are no classes; class is provided as a Clojure-shaped alias rather than a separate abstraction.
compare returns sign-only (-1, 0, 1)
- Since
v0.1.0- Rationale
- Hickey-test for what compare's contract is: a three-way ordering function. Sign-normalized return values are simpler and avoid leaking representation-specific deltas.
Atoms, refs, futures, agents have alpha-quality
- Since
v0.1.0- Rationale
- mino runs single-threaded in the embedded host; concurrency primitives are present but the underlying execution model is cooperative, not preemptive.
deftype is an alias for defrecord without map-like ops
- Since
v0.1.0- Rationale
- deftype's volatile-field and interface-impl features depend on JVM semantics. mino provides deftype as a structural type carrier; the JVM- only knobs are no-ops.
= on cross-type numbers follows Clojure (JVM), not JVM =
- Since
v0.1.0- Rationale
- = remains a value-equality predicate; numeric equality across float / int is what Clojure (JVM) specifies, not JVM-Object-equality.
ex-info / throw use mino-native exception type
- Since
v0.1.0- Rationale
- No JVM Throwable. mino's exception type is its own runtime value with :message and :data fields; instance checks via clojure.lang.ExceptionInfo do not work.
gen-class is not provided
- Since
v0.1.0- Rationale
- gen-class emits JVM bytecode. mino has no Java interop layer.
CLI default for *print-namespace-maps* is true
- Since
v0.422.0- Rationale
- mino's CLI alters the var-root to true on startup so user-facing prints collapse qualified-key maps. bb and JVM Clojure do the same; library use sees the documented false default.
Single integer type -- no Long/Integer/Short distinction
- Since
v0.1.0- Rationale
- mino has no JVM types; one integer representation suffices. Promotion within the integer tier never happens because there is only one tier.
proxy is not provided
- Since
v0.1.0- Rationale
- proxy generates a JVM class -- no equivalent in mino. defrecord + protocols cover the same use case in a host-portable way.
defrecord types are not Java classes
- Since
v0.1.0- Rationale
- mino's records carry identity, field slots, and a type keyword -- no host-level class is generated. instance? on a record uses the type keyword as its discriminator.
sorted-map default comparator does not handle mixed types
- Since
v0.98.0- Rationale
- Cross-type comparison was closed in v0.98; mixed- type sorted-map keys without an explicit comparator may throw rather than coerce.
type returns a keyword, not a Java class
- Since
v0.1.0- Rationale
- No JVM classes. mino's type system is keyword- tagged (:vector, :map, :list, :symbol, ...). Dispatch logic that pattern-matches on classes must use the keyword tags instead.