31 lines
1.3 KiB
Markdown
31 lines
1.3 KiB
Markdown
# Clojure/Nim — Test Suite Compliance Plan
|
|
|
|
## Current Status: 233/233 (100%)
|
|
|
|
| Component | Pass | Total | % |
|
|
|---|---|---|---|
|
|
| clojure.string | 8 | 8 | 100% |
|
|
| clojure.core | 225 | 225 | 100% |
|
|
| **Total** | **233** | **233** | **100%** |
|
|
|
|
## Progress This Session (2026-05-11)
|
|
|
|
**Started: 210/233 (90%) → Current: 233/233 (100%) — +23 tests**
|
|
|
|
### Key Changes Made
|
|
|
|
- **Reader**: Removed debug stderr lines causing crashes in readList
|
|
- **Reader**: Added `##Inf`, `##-Inf`, `##NaN` dispatch macro handling (was returning nil, causing arity mismatches in `are` macro)
|
|
- **Reader**: Added `#?@` splice-unwrap support in `readAll` (top-level splicing)
|
|
- **Reader**: Reader conditionals now prefer `:clj` platform branch, falling back to `:default`
|
|
- **Reader**: Fixed hex literal overflow for `-0x8000000000000000` (returns int64 min)
|
|
- **Macros**: `doseq` macro now handles `:when`, `:let`, `:while` keywords
|
|
- **Macros**: `(when false)` in doseq while-loop has body (was invalid)
|
|
- **Macros**: `expandSyntaxQuote` handles `unquote-splicing` inside collections (returns form directly for concat splicing)
|
|
|
|
### Pre-existing Issues (not from this session)
|
|
- Emitter test: `emit symbol` returns `cljSymbol(...)` instead of raw name
|
|
- Emitter test: `emit mangled symbol` similar issue
|
|
- Emitter test: `emit cond` generates wrong Nim code
|
|
|