core: #inst instant values + syntax-quote literal collapse (spec 2.3/2.4)
#inst (jolt-rnh): an instant is an immutable tagged struct
{:jolt/type :jolt/inst :ms <epoch-millis>} — equality and map-key hashing by
INSTANT, so different offsets denoting the same moment are =. The reader
parses RFC3339 with Clojure's partial-timestamp defaults (#inst "2020" is
2020-01-01T00:00:00.000Z) and errors on malformed input; inst?/inst-ms in
the overlay; pr-str prints the canonical
#inst "yyyy-MM-ddThh:mm:ss.fff-00:00" and round-trips; str gives the bare
RFC3339 string. Self-evaluating in the evaluator (like uuid/chars).
Syntax-quote (jolt-l2a): a syntax-quoted self-evaluating literal (string,
number, boolean, nil, keyword, char) collapses to the literal at READ time,
matching Clojure's reader — so nested/adjacent backticks over literals are
inert: (= "meow" ```"meow") is true (jank pass-adjacent). Symbols still
qualify and collections still template. General nested syntax-quote over
non-literals remains UNVERIFIED in spec S25.
Tests: inst-spec (18 cases incl. partial defaults, offsets, round-trip),
+10 literal-collapse reader rows, +5 conformance rows (321x3). Spec
02-reader S20/S25 updated to normative. Suite stable 4470/86.
This commit is contained in:
parent
094152a8c3
commit
e58be2fbd2
10 changed files with 169 additions and 17 deletions
|
|
@ -7,8 +7,8 @@ community examples). jolt interns 550 of them.
|
|||
|
||||
| Status | Count | Meaning |
|
||||
|---|---|---|
|
||||
| implemented+tested | 397 | in jolt and exercised by spec/conformance |
|
||||
| implemented-untested | 153 | in jolt, no direct test — spec entries will add them |
|
||||
| implemented+tested | 399 | in jolt and exercised by spec/conformance |
|
||||
| implemented-untested | 151 | 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 | 19 | portable semantics, jolt lacks it — implementation gap |
|
||||
| special-form | 13 | specified in §3, not a library var |
|
||||
|
|
@ -345,9 +345,9 @@ UNVERIFIED field; that column will be added as entries land.
|
|||
| `indexed?` | implemented+tested | ✓ |
|
||||
| `infinite?` | implemented+tested | ✓ |
|
||||
| `init-proxy` | implemented-untested | ✓ |
|
||||
| `inst-ms` | implemented-untested | ✓ |
|
||||
| `inst-ms` | implemented+tested | ✓ |
|
||||
| `inst-ms*` | missing-portable | |
|
||||
| `inst?` | implemented-untested | ✓ |
|
||||
| `inst?` | implemented+tested | ✓ |
|
||||
| `instance?` | implemented+tested | ✓ |
|
||||
| `int` | implemented+tested | ✓ |
|
||||
| `int-array` | implemented-untested | ✓ |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue