docs: language specification RFC + spec skeleton with normative exemplars
RFC 0001 proposes a normative, implementation-independent Clojure language spec (the reader, evaluation model, special forms, data types, seq/laziness contracts, namespaces/vars, and the portable clojure.core surface) to the standard of R7RS/Racket — Clojure has none, and every alternative implementation re-derives semantics from the reference and folklore. The spec is executable-first: every numbered normative statement cites its conformance test or is marked UNVERIFIED. docs/spec/ carries the front matter (conformance terms, entry format, host classification), the special-form catalog with worked normative entries for if and let*, the core-library entry format with worked entries for first, reduce, and parse-uuid, and a generated coverage dashboard over the 694-var ClojureDocs inventory (tools/spec_coverage.py cross-references the surface against jolt's interned+resolvable vars and the test suites). Measured baseline: 380 implemented+tested, 154 implemented-untested, 35 portable-but-missing (filed), 22 resolvable-but-not-interned (filed — seed fns invisible to resolve/ns-publics), rest classified host/JVM/concurrency.
This commit is contained in:
parent
bd5142abac
commit
7003926eda
7 changed files with 1478 additions and 0 deletions
721
docs/spec/coverage.md
Normal file
721
docs/spec/coverage.md
Normal file
|
|
@ -0,0 +1,721 @@
|
|||
# Appendix A — Coverage Dashboard (generated)
|
||||
|
||||
Generated 2026-06-10 by `tools/spec_coverage.py` — do not edit by hand.
|
||||
|
||||
Surface: **694** clojure.core vars (ClojureDocs export; 648 with
|
||||
community examples). jolt interns 534 of them.
|
||||
|
||||
| Status | Count | Meaning |
|
||||
|---|---|---|
|
||||
| implemented+tested | 380 | in jolt and exercised by spec/conformance |
|
||||
| implemented-untested | 154 | in jolt, no direct test — spec entries will add them |
|
||||
| resolvable-not-interned | 22 | works in code but invisible to ns introspection (conformance finding) |
|
||||
| missing-portable | 35 | portable semantics, jolt lacks it — implementation gap |
|
||||
| special-form | 13 | specified in §3, not a library var |
|
||||
| dynamic-var | 29 | classification needed: portable default vs host-dependent |
|
||||
| agents-taps | 22 | out of scope pending concurrency design note |
|
||||
| stm-refs | 11 | out of scope pending concurrency design note |
|
||||
| jvm-specific | 50 | catalogued, not specified |
|
||||
|
||||
Classifications are initial and mechanical — reclassifying is an ordinary
|
||||
spec change. A var is *Verified* only when its §9 entry exists and carries no
|
||||
UNVERIFIED field; that column will be added as entries land.
|
||||
|
||||
## Per-var status
|
||||
|
||||
| Var | Status | ClojureDocs examples |
|
||||
|---|---|---|
|
||||
| `*` | implemented+tested | ✓ |
|
||||
| `*'` | implemented-untested | ✓ |
|
||||
| `*1` | implemented-untested | ✓ |
|
||||
| `*2` | implemented-untested | ✓ |
|
||||
| `*3` | implemented-untested | ✓ |
|
||||
| `*agent*` | dynamic-var | ✓ |
|
||||
| `*allow-unresolved-vars*` | dynamic-var | ✓ |
|
||||
| `*assert*` | dynamic-var | ✓ |
|
||||
| `*clojure-version*` | implemented-untested | ✓ |
|
||||
| `*command-line-args*` | dynamic-var | ✓ |
|
||||
| `*compile-files*` | dynamic-var | ✓ |
|
||||
| `*compile-path*` | dynamic-var | ✓ |
|
||||
| `*compiler-options*` | dynamic-var | ✓ |
|
||||
| `*data-readers*` | dynamic-var | ✓ |
|
||||
| `*default-data-reader-fn*` | dynamic-var | ✓ |
|
||||
| `*e` | implemented-untested | ✓ |
|
||||
| `*err*` | implemented-untested | ✓ |
|
||||
| `*file*` | dynamic-var | ✓ |
|
||||
| `*flush-on-newline*` | dynamic-var | |
|
||||
| `*fn-loader*` | dynamic-var | |
|
||||
| `*in*` | dynamic-var | |
|
||||
| `*math-context*` | dynamic-var | |
|
||||
| `*ns*` | dynamic-var | ✓ |
|
||||
| `*out*` | implemented-untested | ✓ |
|
||||
| `*print-dup*` | dynamic-var | ✓ |
|
||||
| `*print-length*` | dynamic-var | ✓ |
|
||||
| `*print-level*` | dynamic-var | ✓ |
|
||||
| `*print-meta*` | dynamic-var | ✓ |
|
||||
| `*print-namespace-maps*` | dynamic-var | ✓ |
|
||||
| `*print-readably*` | dynamic-var | ✓ |
|
||||
| `*read-eval*` | dynamic-var | ✓ |
|
||||
| `*reader-resolver*` | dynamic-var | |
|
||||
| `*repl*` | dynamic-var | |
|
||||
| `*source-path*` | dynamic-var | ✓ |
|
||||
| `*suppress-read*` | dynamic-var | |
|
||||
| `*unchecked-math*` | implemented-untested | ✓ |
|
||||
| `*use-context-classloader*` | dynamic-var | ✓ |
|
||||
| `*verbose-defrecords*` | dynamic-var | |
|
||||
| `*warn-on-reflection*` | dynamic-var | ✓ |
|
||||
| `+` | implemented+tested | ✓ |
|
||||
| `+'` | implemented-untested | ✓ |
|
||||
| `-` | implemented+tested | ✓ |
|
||||
| `-'` | implemented-untested | ✓ |
|
||||
| `->` | implemented+tested | ✓ |
|
||||
| `->>` | implemented+tested | ✓ |
|
||||
| `->ArrayChunk` | jvm-specific | |
|
||||
| `->Eduction` | implemented-untested | |
|
||||
| `->Vec` | jvm-specific | |
|
||||
| `->VecNode` | jvm-specific | |
|
||||
| `->VecSeq` | jvm-specific | |
|
||||
| `-cache-protocol-fn` | jvm-specific | |
|
||||
| `-reset-methods` | jvm-specific | |
|
||||
| `.` | implemented-untested | ✓ |
|
||||
| `..` | implemented-untested | ✓ |
|
||||
| `/` | implemented-untested | ✓ |
|
||||
| `<` | implemented+tested | ✓ |
|
||||
| `<=` | implemented+tested | ✓ |
|
||||
| `=` | implemented+tested | ✓ |
|
||||
| `==` | implemented+tested | ✓ |
|
||||
| `>` | implemented+tested | ✓ |
|
||||
| `>=` | implemented+tested | ✓ |
|
||||
| `EMPTY-NODE` | jvm-specific | |
|
||||
| `Inst` | jvm-specific | |
|
||||
| `NaN?` | implemented+tested | ✓ |
|
||||
| `PrintWriter-on` | jvm-specific | ✓ |
|
||||
| `StackTraceElement->vec` | jvm-specific | ✓ |
|
||||
| `Throwable->map` | jvm-specific | ✓ |
|
||||
| `abs` | implemented+tested | ✓ |
|
||||
| `accessor` | jvm-specific | ✓ |
|
||||
| `aclone` | implemented-untested | ✓ |
|
||||
| `add-classpath` | jvm-specific | ✓ |
|
||||
| `add-tap` | agents-taps | ✓ |
|
||||
| `add-watch` | implemented+tested | ✓ |
|
||||
| `agent` | agents-taps | ✓ |
|
||||
| `agent-error` | agents-taps | ✓ |
|
||||
| `agent-errors` | agents-taps | |
|
||||
| `aget` | implemented+tested | ✓ |
|
||||
| `alength` | implemented+tested | ✓ |
|
||||
| `alias` | missing-portable | ✓ |
|
||||
| `all-ns` | implemented-untested | ✓ |
|
||||
| `alter` | stm-refs | ✓ |
|
||||
| `alter-meta!` | implemented+tested | ✓ |
|
||||
| `alter-var-root` | implemented+tested | ✓ |
|
||||
| `amap` | jvm-specific | ✓ |
|
||||
| `ancestors` | implemented+tested | ✓ |
|
||||
| `and` | implemented+tested | ✓ |
|
||||
| `any?` | implemented-untested | ✓ |
|
||||
| `apply` | implemented+tested | ✓ |
|
||||
| `areduce` | jvm-specific | ✓ |
|
||||
| `array-map` | implemented-untested | ✓ |
|
||||
| `as->` | implemented+tested | ✓ |
|
||||
| `aset` | implemented+tested | ✓ |
|
||||
| `aset-boolean` | implemented-untested | ✓ |
|
||||
| `aset-byte` | implemented-untested | ✓ |
|
||||
| `aset-char` | implemented-untested | ✓ |
|
||||
| `aset-double` | implemented-untested | ✓ |
|
||||
| `aset-float` | implemented-untested | ✓ |
|
||||
| `aset-int` | implemented-untested | ✓ |
|
||||
| `aset-long` | implemented-untested | ✓ |
|
||||
| `aset-short` | implemented-untested | ✓ |
|
||||
| `assert` | implemented+tested | ✓ |
|
||||
| `assoc` | implemented+tested | ✓ |
|
||||
| `assoc!` | implemented+tested | ✓ |
|
||||
| `assoc-in` | implemented+tested | ✓ |
|
||||
| `associative?` | implemented+tested | ✓ |
|
||||
| `atom` | implemented+tested | ✓ |
|
||||
| `await` | agents-taps | ✓ |
|
||||
| `await-for` | agents-taps | ✓ |
|
||||
| `await1` | agents-taps | |
|
||||
| `bases` | jvm-specific | ✓ |
|
||||
| `bean` | implemented-untested | ✓ |
|
||||
| `bigdec` | implemented+tested | ✓ |
|
||||
| `bigint` | implemented+tested | ✓ |
|
||||
| `biginteger` | implemented-untested | ✓ |
|
||||
| `binding` | implemented+tested | ✓ |
|
||||
| `bit-and` | implemented+tested | ✓ |
|
||||
| `bit-and-not` | implemented-untested | ✓ |
|
||||
| `bit-clear` | implemented+tested | ✓ |
|
||||
| `bit-flip` | implemented-untested | ✓ |
|
||||
| `bit-not` | implemented-untested | ✓ |
|
||||
| `bit-or` | implemented+tested | ✓ |
|
||||
| `bit-set` | implemented+tested | ✓ |
|
||||
| `bit-shift-left` | implemented+tested | ✓ |
|
||||
| `bit-shift-right` | implemented+tested | ✓ |
|
||||
| `bit-test` | implemented+tested | ✓ |
|
||||
| `bit-xor` | implemented+tested | ✓ |
|
||||
| `boolean` | implemented+tested | ✓ |
|
||||
| `boolean-array` | implemented-untested | ✓ |
|
||||
| `boolean?` | implemented+tested | ✓ |
|
||||
| `booleans` | implemented-untested | ✓ |
|
||||
| `bound-fn` | missing-portable | ✓ |
|
||||
| `bound-fn*` | missing-portable | ✓ |
|
||||
| `bound?` | missing-portable | ✓ |
|
||||
| `bounded-count` | implemented+tested | ✓ |
|
||||
| `butlast` | implemented+tested | ✓ |
|
||||
| `byte` | implemented-untested | ✓ |
|
||||
| `byte-array` | implemented-untested | ✓ |
|
||||
| `bytes` | implemented-untested | ✓ |
|
||||
| `bytes?` | implemented-untested | ✓ |
|
||||
| `case` | implemented+tested | ✓ |
|
||||
| `cast` | jvm-specific | ✓ |
|
||||
| `cat` | implemented-untested | ✓ |
|
||||
| `catch` | special-form | ✓ |
|
||||
| `char` | implemented+tested | ✓ |
|
||||
| `char-array` | implemented-untested | ✓ |
|
||||
| `char-escape-string` | implemented-untested | ✓ |
|
||||
| `char-name-string` | implemented-untested | ✓ |
|
||||
| `char?` | implemented+tested | ✓ |
|
||||
| `chars` | implemented-untested | ✓ |
|
||||
| `chunk` | implemented-untested | ✓ |
|
||||
| `chunk-append` | implemented-untested | ✓ |
|
||||
| `chunk-buffer` | implemented-untested | ✓ |
|
||||
| `chunk-cons` | implemented-untested | ✓ |
|
||||
| `chunk-first` | implemented-untested | ✓ |
|
||||
| `chunk-next` | implemented-untested | ✓ |
|
||||
| `chunk-rest` | implemented-untested | ✓ |
|
||||
| `chunked-seq?` | implemented+tested | ✓ |
|
||||
| `class` | implemented-untested | ✓ |
|
||||
| `class?` | jvm-specific | ✓ |
|
||||
| `clear-agent-errors` | agents-taps | |
|
||||
| `clojure-version` | implemented-untested | ✓ |
|
||||
| `coll?` | implemented+tested | ✓ |
|
||||
| `comment` | implemented+tested | ✓ |
|
||||
| `commute` | stm-refs | ✓ |
|
||||
| `comp` | implemented+tested | ✓ |
|
||||
| `comparator` | implemented+tested | ✓ |
|
||||
| `compare` | implemented+tested | ✓ |
|
||||
| `compare-and-set!` | implemented+tested | ✓ |
|
||||
| `compile` | implemented-untested | ✓ |
|
||||
| `complement` | implemented+tested | ✓ |
|
||||
| `completing` | implemented+tested | ✓ |
|
||||
| `concat` | implemented+tested | ✓ |
|
||||
| `cond` | implemented+tested | ✓ |
|
||||
| `cond->` | implemented+tested | ✓ |
|
||||
| `cond->>` | implemented+tested | ✓ |
|
||||
| `condp` | implemented+tested | ✓ |
|
||||
| `conj` | implemented+tested | ✓ |
|
||||
| `conj!` | implemented+tested | ✓ |
|
||||
| `cons` | implemented+tested | ✓ |
|
||||
| `constantly` | implemented+tested | ✓ |
|
||||
| `construct-proxy` | implemented-untested | ✓ |
|
||||
| `contains?` | implemented+tested | ✓ |
|
||||
| `count` | implemented+tested | ✓ |
|
||||
| `counted?` | implemented+tested | ✓ |
|
||||
| `create-ns` | implemented+tested | ✓ |
|
||||
| `create-struct` | jvm-specific | ✓ |
|
||||
| `cycle` | implemented+tested | ✓ |
|
||||
| `dec` | implemented+tested | ✓ |
|
||||
| `dec'` | implemented-untested | ✓ |
|
||||
| `decimal?` | implemented+tested | ✓ |
|
||||
| `declare` | implemented+tested | ✓ |
|
||||
| `dedupe` | implemented+tested | ✓ |
|
||||
| `def` | special-form | ✓ |
|
||||
| `default-data-readers` | jvm-specific | ✓ |
|
||||
| `definline` | jvm-specific | |
|
||||
| `definterface` | implemented-untested | ✓ |
|
||||
| `defmacro` | implemented+tested | ✓ |
|
||||
| `defmethod` | implemented+tested | ✓ |
|
||||
| `defmulti` | implemented+tested | ✓ |
|
||||
| `defn` | implemented+tested | ✓ |
|
||||
| `defn-` | implemented+tested | ✓ |
|
||||
| `defonce` | implemented+tested | ✓ |
|
||||
| `defprotocol` | implemented+tested | ✓ |
|
||||
| `defrecord` | implemented+tested | ✓ |
|
||||
| `defstruct` | jvm-specific | ✓ |
|
||||
| `deftype` | implemented+tested | ✓ |
|
||||
| `delay` | implemented+tested | ✓ |
|
||||
| `delay?` | implemented-untested | ✓ |
|
||||
| `deliver` | implemented+tested | ✓ |
|
||||
| `denominator` | implemented+tested | ✓ |
|
||||
| `deref` | implemented+tested | ✓ |
|
||||
| `derive` | implemented+tested | ✓ |
|
||||
| `descendants` | implemented+tested | ✓ |
|
||||
| `destructure` | implemented-untested | ✓ |
|
||||
| `disj` | implemented+tested | ✓ |
|
||||
| `disj!` | implemented+tested | ✓ |
|
||||
| `dissoc` | implemented+tested | ✓ |
|
||||
| `dissoc!` | implemented+tested | ✓ |
|
||||
| `distinct` | implemented+tested | ✓ |
|
||||
| `distinct?` | implemented+tested | ✓ |
|
||||
| `do` | special-form | ✓ |
|
||||
| `doall` | implemented+tested | ✓ |
|
||||
| `dorun` | implemented+tested | ✓ |
|
||||
| `doseq` | implemented+tested | ✓ |
|
||||
| `dosync` | stm-refs | ✓ |
|
||||
| `dotimes` | implemented+tested | ✓ |
|
||||
| `doto` | implemented+tested | ✓ |
|
||||
| `double` | implemented-untested | ✓ |
|
||||
| `double-array` | implemented-untested | ✓ |
|
||||
| `double?` | implemented+tested | ✓ |
|
||||
| `doubles` | implemented-untested | ✓ |
|
||||
| `drop` | implemented+tested | ✓ |
|
||||
| `drop-last` | implemented+tested | ✓ |
|
||||
| `drop-while` | implemented+tested | ✓ |
|
||||
| `eduction` | implemented+tested | ✓ |
|
||||
| `empty` | implemented+tested | ✓ |
|
||||
| `empty?` | implemented+tested | ✓ |
|
||||
| `ensure` | stm-refs | ✓ |
|
||||
| `ensure-reduced` | implemented-untested | ✓ |
|
||||
| `enumeration-seq` | implemented-untested | ✓ |
|
||||
| `error-handler` | agents-taps | ✓ |
|
||||
| `error-mode` | agents-taps | ✓ |
|
||||
| `eval` | implemented+tested | ✓ |
|
||||
| `even?` | implemented+tested | ✓ |
|
||||
| `every-pred` | implemented+tested | ✓ |
|
||||
| `every?` | implemented+tested | ✓ |
|
||||
| `ex-cause` | implemented+tested | ✓ |
|
||||
| `ex-data` | implemented+tested | ✓ |
|
||||
| `ex-info` | implemented+tested | ✓ |
|
||||
| `ex-message` | implemented+tested | ✓ |
|
||||
| `extend` | implemented-untested | ✓ |
|
||||
| `extend-protocol` | implemented+tested | ✓ |
|
||||
| `extend-type` | implemented+tested | ✓ |
|
||||
| `extenders` | missing-portable | ✓ |
|
||||
| `extends?` | implemented-untested | ✓ |
|
||||
| `false?` | implemented+tested | ✓ |
|
||||
| `ffirst` | implemented+tested | ✓ |
|
||||
| `file-seq` | missing-portable | ✓ |
|
||||
| `filter` | implemented+tested | ✓ |
|
||||
| `filterv` | implemented+tested | ✓ |
|
||||
| `finally` | special-form | ✓ |
|
||||
| `find` | implemented+tested | ✓ |
|
||||
| `find-keyword` | missing-portable | ✓ |
|
||||
| `find-ns` | implemented+tested | ✓ |
|
||||
| `find-protocol-impl` | jvm-specific | |
|
||||
| `find-protocol-method` | implemented-untested | |
|
||||
| `find-var` | implemented+tested | ✓ |
|
||||
| `first` | implemented+tested | ✓ |
|
||||
| `flatten` | implemented+tested | ✓ |
|
||||
| `float` | implemented-untested | ✓ |
|
||||
| `float-array` | implemented-untested | ✓ |
|
||||
| `float?` | implemented+tested | ✓ |
|
||||
| `floats` | implemented-untested | ✓ |
|
||||
| `flush` | implemented-untested | ✓ |
|
||||
| `fn` | implemented+tested | ✓ |
|
||||
| `fn?` | implemented+tested | ✓ |
|
||||
| `fnext` | implemented+tested | ✓ |
|
||||
| `fnil` | implemented+tested | ✓ |
|
||||
| `for` | implemented+tested | ✓ |
|
||||
| `force` | implemented+tested | ✓ |
|
||||
| `format` | implemented+tested | ✓ |
|
||||
| `frequencies` | implemented+tested | ✓ |
|
||||
| `future` | implemented+tested | ✓ |
|
||||
| `future-call` | implemented-untested | ✓ |
|
||||
| `future-cancel` | implemented+tested | ✓ |
|
||||
| `future-cancelled?` | implemented+tested | ✓ |
|
||||
| `future-done?` | implemented+tested | ✓ |
|
||||
| `future?` | implemented+tested | ✓ |
|
||||
| `gen-class` | jvm-specific | ✓ |
|
||||
| `gen-interface` | jvm-specific | ✓ |
|
||||
| `gensym` | implemented+tested | ✓ |
|
||||
| `get` | implemented+tested | ✓ |
|
||||
| `get-in` | implemented+tested | ✓ |
|
||||
| `get-method` | implemented+tested | ✓ |
|
||||
| `get-proxy-class` | implemented-untested | ✓ |
|
||||
| `get-thread-bindings` | missing-portable | ✓ |
|
||||
| `get-validator` | implemented+tested | ✓ |
|
||||
| `group-by` | implemented+tested | ✓ |
|
||||
| `halt-when` | implemented-untested | ✓ |
|
||||
| `hash` | implemented-untested | ✓ |
|
||||
| `hash-combine` | implemented-untested | ✓ |
|
||||
| `hash-map` | implemented+tested | ✓ |
|
||||
| `hash-ordered-coll` | implemented-untested | ✓ |
|
||||
| `hash-set` | implemented+tested | ✓ |
|
||||
| `hash-unordered-coll` | implemented-untested | ✓ |
|
||||
| `ident?` | implemented+tested | ✓ |
|
||||
| `identical?` | implemented+tested | ✓ |
|
||||
| `identity` | implemented+tested | ✓ |
|
||||
| `if` | special-form | ✓ |
|
||||
| `if-let` | implemented+tested | ✓ |
|
||||
| `if-not` | implemented+tested | ✓ |
|
||||
| `if-some` | implemented+tested | ✓ |
|
||||
| `ifn?` | implemented+tested | ✓ |
|
||||
| `import` | implemented+tested | ✓ |
|
||||
| `in-ns` | implemented+tested | ✓ |
|
||||
| `inc` | implemented+tested | ✓ |
|
||||
| `inc'` | implemented-untested | ✓ |
|
||||
| `indexed?` | implemented+tested | ✓ |
|
||||
| `infinite?` | implemented+tested | ✓ |
|
||||
| `init-proxy` | implemented-untested | ✓ |
|
||||
| `inst-ms` | implemented-untested | ✓ |
|
||||
| `inst-ms*` | missing-portable | |
|
||||
| `inst?` | implemented-untested | ✓ |
|
||||
| `instance?` | implemented+tested | ✓ |
|
||||
| `int` | implemented+tested | ✓ |
|
||||
| `int-array` | implemented-untested | ✓ |
|
||||
| `int?` | implemented+tested | ✓ |
|
||||
| `integer?` | implemented+tested | ✓ |
|
||||
| `interleave` | implemented+tested | ✓ |
|
||||
| `intern` | implemented+tested | ✓ |
|
||||
| `interpose` | implemented+tested | ✓ |
|
||||
| `into` | implemented+tested | ✓ |
|
||||
| `into-array` | implemented-untested | ✓ |
|
||||
| `ints` | implemented-untested | ✓ |
|
||||
| `io!` | stm-refs | ✓ |
|
||||
| `isa?` | implemented+tested | ✓ |
|
||||
| `iterate` | implemented+tested | ✓ |
|
||||
| `iteration` | jvm-specific | ✓ |
|
||||
| `iterator-seq` | implemented-untested | ✓ |
|
||||
| `juxt` | implemented+tested | ✓ |
|
||||
| `keep` | implemented+tested | ✓ |
|
||||
| `keep-indexed` | implemented+tested | ✓ |
|
||||
| `key` | implemented+tested | ✓ |
|
||||
| `keys` | implemented+tested | ✓ |
|
||||
| `keyword` | implemented+tested | ✓ |
|
||||
| `keyword?` | implemented+tested | ✓ |
|
||||
| `last` | implemented+tested | ✓ |
|
||||
| `lazy-cat` | implemented+tested | ✓ |
|
||||
| `lazy-seq` | implemented+tested | ✓ |
|
||||
| `let` | implemented+tested | ✓ |
|
||||
| `letfn` | implemented+tested | ✓ |
|
||||
| `line-seq` | implemented-untested | ✓ |
|
||||
| `list` | implemented+tested | ✓ |
|
||||
| `list*` | implemented+tested | ✓ |
|
||||
| `list?` | implemented+tested | ✓ |
|
||||
| `load` | jvm-specific | ✓ |
|
||||
| `load-file` | jvm-specific | ✓ |
|
||||
| `load-reader` | jvm-specific | ✓ |
|
||||
| `load-string` | implemented-untested | ✓ |
|
||||
| `loaded-libs` | jvm-specific | ✓ |
|
||||
| `locking` | implemented+tested | ✓ |
|
||||
| `long` | implemented-untested | ✓ |
|
||||
| `long-array` | implemented-untested | ✓ |
|
||||
| `longs` | implemented-untested | ✓ |
|
||||
| `loop` | implemented+tested | ✓ |
|
||||
| `macroexpand` | missing-portable | ✓ |
|
||||
| `macroexpand-1` | implemented+tested | ✓ |
|
||||
| `make-array` | implemented-untested | ✓ |
|
||||
| `make-hierarchy` | implemented+tested | ✓ |
|
||||
| `map` | implemented+tested | ✓ |
|
||||
| `map-entry?` | implemented+tested | ✓ |
|
||||
| `map-indexed` | implemented+tested | ✓ |
|
||||
| `map?` | implemented+tested | ✓ |
|
||||
| `mapcat` | implemented+tested | ✓ |
|
||||
| `mapv` | implemented+tested | ✓ |
|
||||
| `max` | implemented+tested | ✓ |
|
||||
| `max-key` | implemented+tested | ✓ |
|
||||
| `memfn` | implemented-untested | ✓ |
|
||||
| `memoize` | implemented+tested | ✓ |
|
||||
| `merge` | implemented+tested | ✓ |
|
||||
| `merge-with` | implemented+tested | ✓ |
|
||||
| `meta` | implemented+tested | ✓ |
|
||||
| `method-sig` | jvm-specific | ✓ |
|
||||
| `methods` | implemented+tested | ✓ |
|
||||
| `min` | implemented+tested | ✓ |
|
||||
| `min-key` | implemented+tested | ✓ |
|
||||
| `mix-collection-hash` | jvm-specific | |
|
||||
| `mod` | implemented+tested | ✓ |
|
||||
| `monitor-enter` | special-form | |
|
||||
| `monitor-exit` | special-form | |
|
||||
| `munge` | implemented-untested | ✓ |
|
||||
| `name` | implemented+tested | ✓ |
|
||||
| `namespace` | implemented+tested | ✓ |
|
||||
| `namespace-munge` | implemented+tested | ✓ |
|
||||
| `nat-int?` | implemented+tested | ✓ |
|
||||
| `neg-int?` | implemented+tested | ✓ |
|
||||
| `neg?` | implemented+tested | ✓ |
|
||||
| `new` | special-form | ✓ |
|
||||
| `newline` | missing-portable | ✓ |
|
||||
| `next` | implemented+tested | ✓ |
|
||||
| `nfirst` | implemented-untested | ✓ |
|
||||
| `nil?` | implemented+tested | ✓ |
|
||||
| `nnext` | implemented+tested | ✓ |
|
||||
| `not` | implemented+tested | ✓ |
|
||||
| `not-any?` | implemented+tested | ✓ |
|
||||
| `not-empty` | implemented+tested | ✓ |
|
||||
| `not-every?` | implemented+tested | ✓ |
|
||||
| `not=` | implemented+tested | ✓ |
|
||||
| `ns` | implemented+tested | ✓ |
|
||||
| `ns-aliases` | implemented-untested | ✓ |
|
||||
| `ns-imports` | implemented-untested | ✓ |
|
||||
| `ns-interns` | implemented-untested | ✓ |
|
||||
| `ns-map` | implemented-untested | ✓ |
|
||||
| `ns-name` | implemented+tested | ✓ |
|
||||
| `ns-publics` | missing-portable | ✓ |
|
||||
| `ns-refers` | missing-portable | ✓ |
|
||||
| `ns-resolve` | implemented+tested | ✓ |
|
||||
| `ns-unalias` | missing-portable | ✓ |
|
||||
| `ns-unmap` | implemented-untested | ✓ |
|
||||
| `nth` | implemented+tested | ✓ |
|
||||
| `nthnext` | implemented+tested | ✓ |
|
||||
| `nthrest` | implemented+tested | ✓ |
|
||||
| `num` | implemented+tested | ✓ |
|
||||
| `number?` | implemented+tested | ✓ |
|
||||
| `numerator` | implemented+tested | ✓ |
|
||||
| `object-array` | implemented+tested | ✓ |
|
||||
| `odd?` | implemented+tested | ✓ |
|
||||
| `or` | implemented+tested | ✓ |
|
||||
| `parents` | implemented+tested | ✓ |
|
||||
| `parse-boolean` | missing-portable | ✓ |
|
||||
| `parse-double` | missing-portable | ✓ |
|
||||
| `parse-long` | missing-portable | ✓ |
|
||||
| `parse-uuid` | implemented+tested | ✓ |
|
||||
| `partial` | implemented+tested | ✓ |
|
||||
| `partition` | implemented+tested | ✓ |
|
||||
| `partition-all` | implemented+tested | ✓ |
|
||||
| `partition-by` | implemented+tested | ✓ |
|
||||
| `partitionv` | missing-portable | |
|
||||
| `partitionv-all` | missing-portable | |
|
||||
| `pcalls` | jvm-specific | ✓ |
|
||||
| `peek` | implemented+tested | ✓ |
|
||||
| `persistent!` | implemented+tested | ✓ |
|
||||
| `pmap` | jvm-specific | ✓ |
|
||||
| `pop` | implemented+tested | ✓ |
|
||||
| `pop!` | implemented+tested | ✓ |
|
||||
| `pop-thread-bindings` | implemented-untested | |
|
||||
| `pos-int?` | implemented+tested | ✓ |
|
||||
| `pos?` | implemented+tested | ✓ |
|
||||
| `pr` | implemented+tested | ✓ |
|
||||
| `pr-str` | implemented+tested | ✓ |
|
||||
| `prefer-method` | implemented+tested | ✓ |
|
||||
| `prefers` | implemented-untested | ✓ |
|
||||
| `primitives-classnames` | jvm-specific | ✓ |
|
||||
| `print` | implemented+tested | ✓ |
|
||||
| `print-ctor` | jvm-specific | ✓ |
|
||||
| `print-dup` | implemented-untested | ✓ |
|
||||
| `print-method` | implemented-untested | ✓ |
|
||||
| `print-simple` | jvm-specific | ✓ |
|
||||
| `print-str` | implemented+tested | ✓ |
|
||||
| `printf` | implemented+tested | ✓ |
|
||||
| `println` | implemented+tested | ✓ |
|
||||
| `println-str` | implemented+tested | ✓ |
|
||||
| `prn` | implemented+tested | ✓ |
|
||||
| `prn-str` | implemented+tested | ✓ |
|
||||
| `promise` | implemented+tested | ✓ |
|
||||
| `proxy` | implemented-untested | ✓ |
|
||||
| `proxy-call-with-super` | implemented-untested | |
|
||||
| `proxy-mappings` | implemented-untested | ✓ |
|
||||
| `proxy-name` | jvm-specific | |
|
||||
| `proxy-super` | implemented-untested | ✓ |
|
||||
| `push-thread-bindings` | implemented-untested | |
|
||||
| `pvalues` | jvm-specific | ✓ |
|
||||
| `qualified-ident?` | implemented+tested | ✓ |
|
||||
| `qualified-keyword?` | implemented+tested | ✓ |
|
||||
| `qualified-symbol?` | implemented+tested | ✓ |
|
||||
| `quot` | implemented+tested | ✓ |
|
||||
| `quote` | special-form | ✓ |
|
||||
| `rand` | implemented+tested | ✓ |
|
||||
| `rand-int` | implemented+tested | ✓ |
|
||||
| `rand-nth` | implemented+tested | ✓ |
|
||||
| `random-sample` | implemented-untested | ✓ |
|
||||
| `random-uuid` | implemented+tested | ✓ |
|
||||
| `range` | implemented+tested | ✓ |
|
||||
| `ratio?` | implemented+tested | ✓ |
|
||||
| `rational?` | implemented+tested | ✓ |
|
||||
| `rationalize` | implemented+tested | ✓ |
|
||||
| `re-find` | implemented+tested | ✓ |
|
||||
| `re-groups` | implemented-untested | ✓ |
|
||||
| `re-matcher` | implemented-untested | ✓ |
|
||||
| `re-matches` | implemented+tested | ✓ |
|
||||
| `re-pattern` | implemented+tested | ✓ |
|
||||
| `re-seq` | implemented+tested | ✓ |
|
||||
| `read` | missing-portable | ✓ |
|
||||
| `read+string` | missing-portable | ✓ |
|
||||
| `read-line` | missing-portable | ✓ |
|
||||
| `read-string` | implemented+tested | ✓ |
|
||||
| `reader-conditional` | implemented-untested | ✓ |
|
||||
| `reader-conditional?` | implemented+tested | ✓ |
|
||||
| `realized?` | implemented+tested | ✓ |
|
||||
| `record?` | implemented+tested | ✓ |
|
||||
| `recur` | special-form | ✓ |
|
||||
| `reduce` | implemented+tested | ✓ |
|
||||
| `reduce-kv` | implemented+tested | ✓ |
|
||||
| `reduced` | implemented+tested | ✓ |
|
||||
| `reduced?` | implemented+tested | ✓ |
|
||||
| `reductions` | implemented+tested | ✓ |
|
||||
| `ref` | stm-refs | ✓ |
|
||||
| `ref-history-count` | stm-refs | ✓ |
|
||||
| `ref-max-history` | stm-refs | |
|
||||
| `ref-min-history` | stm-refs | ✓ |
|
||||
| `ref-set` | stm-refs | ✓ |
|
||||
| `refer` | implemented-untested | ✓ |
|
||||
| `refer-clojure` | implemented-untested | ✓ |
|
||||
| `reify` | implemented+tested | ✓ |
|
||||
| `release-pending-sends` | agents-taps | ✓ |
|
||||
| `rem` | implemented+tested | ✓ |
|
||||
| `remove` | implemented+tested | ✓ |
|
||||
| `remove-all-methods` | implemented+tested | ✓ |
|
||||
| `remove-method` | implemented+tested | ✓ |
|
||||
| `remove-ns` | implemented+tested | ✓ |
|
||||
| `remove-tap` | agents-taps | |
|
||||
| `remove-watch` | implemented+tested | ✓ |
|
||||
| `repeat` | implemented+tested | ✓ |
|
||||
| `repeatedly` | implemented+tested | ✓ |
|
||||
| `replace` | implemented+tested | ✓ |
|
||||
| `replicate` | implemented+tested | ✓ |
|
||||
| `require` | implemented+tested | ✓ |
|
||||
| `requiring-resolve` | jvm-specific | ✓ |
|
||||
| `reset!` | implemented+tested | ✓ |
|
||||
| `reset-meta!` | implemented-untested | ✓ |
|
||||
| `reset-vals!` | implemented+tested | ✓ |
|
||||
| `resolve` | implemented+tested | ✓ |
|
||||
| `rest` | implemented+tested | ✓ |
|
||||
| `restart-agent` | agents-taps | ✓ |
|
||||
| `resultset-seq` | jvm-specific | ✓ |
|
||||
| `reverse` | implemented+tested | ✓ |
|
||||
| `reversible?` | implemented+tested | ✓ |
|
||||
| `rseq` | implemented+tested | ✓ |
|
||||
| `rsubseq` | implemented+tested | ✓ |
|
||||
| `run!` | implemented+tested | ✓ |
|
||||
| `satisfies?` | implemented+tested | ✓ |
|
||||
| `second` | implemented+tested | ✓ |
|
||||
| `select-keys` | implemented+tested | ✓ |
|
||||
| `send` | agents-taps | ✓ |
|
||||
| `send-off` | agents-taps | ✓ |
|
||||
| `send-via` | agents-taps | ✓ |
|
||||
| `seq` | implemented+tested | ✓ |
|
||||
| `seq-to-map-for-destructuring` | implemented-untested | ✓ |
|
||||
| `seq?` | implemented+tested | ✓ |
|
||||
| `seqable?` | implemented+tested | ✓ |
|
||||
| `seque` | implemented-untested | ✓ |
|
||||
| `sequence` | implemented+tested | ✓ |
|
||||
| `sequential?` | implemented+tested | ✓ |
|
||||
| `set` | implemented+tested | ✓ |
|
||||
| `set!` | special-form | ✓ |
|
||||
| `set-agent-send-executor!` | agents-taps | ✓ |
|
||||
| `set-agent-send-off-executor!` | agents-taps | ✓ |
|
||||
| `set-error-handler!` | agents-taps | ✓ |
|
||||
| `set-error-mode!` | agents-taps | ✓ |
|
||||
| `set-validator!` | implemented+tested | ✓ |
|
||||
| `set?` | implemented+tested | ✓ |
|
||||
| `short` | implemented-untested | ✓ |
|
||||
| `short-array` | implemented-untested | ✓ |
|
||||
| `shorts` | implemented-untested | ✓ |
|
||||
| `shuffle` | implemented+tested | ✓ |
|
||||
| `shutdown-agents` | agents-taps | ✓ |
|
||||
| `simple-ident?` | implemented+tested | ✓ |
|
||||
| `simple-keyword?` | implemented+tested | ✓ |
|
||||
| `simple-symbol?` | implemented+tested | ✓ |
|
||||
| `slurp` | implemented-untested | ✓ |
|
||||
| `some` | implemented+tested | ✓ |
|
||||
| `some->` | implemented+tested | ✓ |
|
||||
| `some->>` | implemented+tested | ✓ |
|
||||
| `some-fn` | implemented+tested | ✓ |
|
||||
| `some?` | implemented+tested | ✓ |
|
||||
| `sort` | implemented+tested | ✓ |
|
||||
| `sort-by` | implemented+tested | ✓ |
|
||||
| `sorted-map` | implemented+tested | ✓ |
|
||||
| `sorted-map-by` | implemented+tested | ✓ |
|
||||
| `sorted-set` | implemented+tested | ✓ |
|
||||
| `sorted-set-by` | implemented+tested | ✓ |
|
||||
| `sorted?` | implemented+tested | ✓ |
|
||||
| `special-symbol?` | implemented-untested | ✓ |
|
||||
| `spit` | implemented-untested | ✓ |
|
||||
| `split-at` | implemented+tested | ✓ |
|
||||
| `split-with` | implemented+tested | ✓ |
|
||||
| `splitv-at` | missing-portable | |
|
||||
| `str` | implemented+tested | ✓ |
|
||||
| `stream-into!` | jvm-specific | |
|
||||
| `stream-reduce!` | jvm-specific | |
|
||||
| `stream-seq!` | jvm-specific | |
|
||||
| `stream-transduce!` | jvm-specific | |
|
||||
| `string?` | implemented+tested | ✓ |
|
||||
| `struct` | implemented-untested | ✓ |
|
||||
| `struct-map` | jvm-specific | ✓ |
|
||||
| `subs` | implemented+tested | ✓ |
|
||||
| `subseq` | implemented+tested | ✓ |
|
||||
| `subvec` | implemented+tested | ✓ |
|
||||
| `supers` | implemented-untested | ✓ |
|
||||
| `swap!` | implemented+tested | ✓ |
|
||||
| `swap-vals!` | implemented+tested | ✓ |
|
||||
| `symbol` | implemented+tested | ✓ |
|
||||
| `symbol?` | implemented+tested | ✓ |
|
||||
| `sync` | stm-refs | |
|
||||
| `tagged-literal` | implemented+tested | ✓ |
|
||||
| `tagged-literal?` | implemented+tested | |
|
||||
| `take` | implemented+tested | ✓ |
|
||||
| `take-last` | implemented+tested | ✓ |
|
||||
| `take-nth` | implemented+tested | ✓ |
|
||||
| `take-while` | implemented+tested | ✓ |
|
||||
| `tap>` | agents-taps | ✓ |
|
||||
| `test` | implemented-untested | ✓ |
|
||||
| `the-ns` | implemented+tested | ✓ |
|
||||
| `thread-bound?` | missing-portable | ✓ |
|
||||
| `throw` | special-form | ✓ |
|
||||
| `time` | missing-portable | ✓ |
|
||||
| `to-array` | implemented-untested | ✓ |
|
||||
| `to-array-2d` | implemented+tested | ✓ |
|
||||
| `trampoline` | implemented+tested | ✓ |
|
||||
| `transduce` | implemented+tested | ✓ |
|
||||
| `transient` | implemented+tested | ✓ |
|
||||
| `tree-seq` | implemented+tested | ✓ |
|
||||
| `true?` | implemented+tested | ✓ |
|
||||
| `try` | implemented+tested | ✓ |
|
||||
| `type` | implemented-untested | ✓ |
|
||||
| `unchecked-add` | implemented-untested | ✓ |
|
||||
| `unchecked-add-int` | implemented-untested | ✓ |
|
||||
| `unchecked-byte` | implemented-untested | ✓ |
|
||||
| `unchecked-char` | implemented-untested | |
|
||||
| `unchecked-dec` | implemented-untested | ✓ |
|
||||
| `unchecked-dec-int` | implemented-untested | ✓ |
|
||||
| `unchecked-divide-int` | implemented-untested | ✓ |
|
||||
| `unchecked-double` | implemented-untested | ✓ |
|
||||
| `unchecked-float` | implemented-untested | ✓ |
|
||||
| `unchecked-inc` | implemented-untested | ✓ |
|
||||
| `unchecked-inc-int` | implemented-untested | ✓ |
|
||||
| `unchecked-int` | implemented-untested | ✓ |
|
||||
| `unchecked-long` | implemented-untested | ✓ |
|
||||
| `unchecked-multiply` | implemented-untested | ✓ |
|
||||
| `unchecked-multiply-int` | implemented-untested | |
|
||||
| `unchecked-negate` | implemented-untested | ✓ |
|
||||
| `unchecked-negate-int` | implemented-untested | ✓ |
|
||||
| `unchecked-remainder-int` | implemented-untested | |
|
||||
| `unchecked-short` | implemented-untested | ✓ |
|
||||
| `unchecked-subtract` | implemented-untested | ✓ |
|
||||
| `unchecked-subtract-int` | implemented-untested | ✓ |
|
||||
| `underive` | implemented-untested | ✓ |
|
||||
| `unquote` | jvm-specific | ✓ |
|
||||
| `unquote-splicing` | jvm-specific | ✓ |
|
||||
| `unreduced` | implemented+tested | ✓ |
|
||||
| `unsigned-bit-shift-right` | implemented-untested | ✓ |
|
||||
| `update` | implemented+tested | ✓ |
|
||||
| `update-in` | implemented+tested | ✓ |
|
||||
| `update-keys` | missing-portable | ✓ |
|
||||
| `update-proxy` | implemented-untested | ✓ |
|
||||
| `update-vals` | missing-portable | ✓ |
|
||||
| `uri?` | implemented-untested | ✓ |
|
||||
| `use` | implemented+tested | ✓ |
|
||||
| `uuid?` | implemented+tested | ✓ |
|
||||
| `val` | implemented+tested | ✓ |
|
||||
| `vals` | implemented+tested | ✓ |
|
||||
| `var` | special-form | ✓ |
|
||||
| `var-get` | implemented+tested | ✓ |
|
||||
| `var-set` | implemented+tested | ✓ |
|
||||
| `var?` | implemented+tested | ✓ |
|
||||
| `vary-meta` | implemented+tested | ✓ |
|
||||
| `vec` | implemented+tested | ✓ |
|
||||
| `vector` | implemented+tested | ✓ |
|
||||
| `vector-of` | jvm-specific | ✓ |
|
||||
| `vector?` | implemented+tested | ✓ |
|
||||
| `volatile!` | implemented+tested | ✓ |
|
||||
| `volatile?` | implemented+tested | ✓ |
|
||||
| `vreset!` | implemented+tested | ✓ |
|
||||
| `vswap!` | implemented+tested | ✓ |
|
||||
| `when` | implemented+tested | ✓ |
|
||||
| `when-first` | implemented+tested | ✓ |
|
||||
| `when-let` | implemented+tested | ✓ |
|
||||
| `when-not` | implemented+tested | ✓ |
|
||||
| `when-some` | implemented+tested | ✓ |
|
||||
| `while` | implemented+tested | ✓ |
|
||||
| `with-bindings` | missing-portable | ✓ |
|
||||
| `with-bindings*` | missing-portable | ✓ |
|
||||
| `with-in-str` | missing-portable | ✓ |
|
||||
| `with-loading-context` | jvm-specific | |
|
||||
| `with-local-vars` | missing-portable | ✓ |
|
||||
| `with-meta` | implemented+tested | ✓ |
|
||||
| `with-open` | missing-portable | ✓ |
|
||||
| `with-out-str` | implemented+tested | ✓ |
|
||||
| `with-precision` | missing-portable | ✓ |
|
||||
| `with-redefs` | missing-portable | ✓ |
|
||||
| `with-redefs-fn` | missing-portable | ✓ |
|
||||
| `xml-seq` | implemented-untested | ✓ |
|
||||
| `zero?` | implemented+tested | ✓ |
|
||||
| `zipmap` | implemented+tested | ✓ |
|
||||
Loading…
Add table
Add a link
Reference in a new issue