Bug-fix release improving log replay robustness, custom file-filter support, identifier analysis for script-level define-record-type, and various internal fixes.
bin/log-debug.sps and bin/parallel-log-debug.sps now support multi-line JSON messages in production logs by buffering body lines until the next read-message/send-message marker.file-filter API supports presets ('akku, 'txt, 'scheme), custom extension lists, and predicate procedures. CLI split into --package-manager/-p (preset) and --file-filter/-f (extension list)..sld is included in the standard Scheme extension set.define-record-type with single-argument immutable fields (e.g. (immutable expression)) appears at the top level of a script file. The rule now correctly falls back to the document’s ordered reference list when the parent index-node is ().dereference-index-node is inlined and repeated dereferences are avoided for better performance.include/resolve libraries now resolves pointer references to real definitions.threaded? check.ufo-match wildcard pattern uses :_ instead of _ to comply with R6RS restrictions on syntax-rules auxiliary literals.Bug-fix release completing shared/cyclic literal handling in binding forms and enabling workspace cache saves from compiled binaries.
let, let*, letrec, let-values, do, fluid-let, let-syntax, letrec-syntax, with-syntax, syntax-case, syntax-rules, define-syntax, define-record-type, s7/lambda*, s7/define*) now dereference shared index-nodes before accessing children, preventing crashes or infinite loops on cyclic parameter/binding lists.tests/analysis/identifier/rules/test-shared-reference-binding-forms.sps covers these edge cases.compile-chez-program --full-chez, so the compiled ./run binary retains the $write-fasl-bytevectors primitive and can save the workspace FASL cache.Dockerfile, Dockerfile.musl, and CI workflows updated to install the static libraries (libuuid, libncurses, libtinfo) required for linking against full-chez.a.Bug-fix release fixing infinite recursion and memory growth caused by cyclic/shared Scheme literals.
init-index-node now detects cyclic and shared reader graph notation (#n= / #n#) via an internal compound->node hashtable.shared-reference field pointing to the defining node, keeping the AST acyclic.src/swish/db.ss, which contains #0=(101 . #0#).Feature and bug-fix release improving rest/dotted parameter handling and type inference.
define, lambda, and case-lambda now produce function signatures containing (inner:list? something? ...).define, case-lambda, and do loop variables now point to the correct per-symbol index-node.Feature release adding a Chez FASL workspace cache with incremental refresh.
--cache-path <dir> CLI option persists the analyzed workspace state to a Chez FASL file (<cache-path>/workspace.fasl).init-references phase; changed/added/deleted files are refreshed incrementally.index-node-expansion-generator, identifier-reference-syntax-expander) are cleared before save and regenerated on demand.README.md, AGENTS.md, doc/analysis/workspace.md, and doc/build-and-startup.md with cache usage and implementation details.Bug-fix release restoring bracket-mismatch diagnostics in the fault-tolerant tokenizer.
unclosed parenthesis, unexpected close bracket) during fault-tolerant parsing, while keeping the R7RS/S7 compatibility fixes from 2.1.1.Bug-fix release with R7RS/S7 tokenizer compatibility, identifier analysis fixes, and improved diagnostics.
typed-lambda / lambda dotted formals crash when encountering typed pair parameters like (ht hash-table?).identifier-compare? to guard symbol->string with symbol? checks.rename / alias import unused-import false positives.index-node-list.#u8(...) → #vu8(...), #\null → #\nul, #\escape → #\esc, #; datum comments.#<eof>, #<undefined>, #<fails:...>, #<predicate?>, #_id, #"..." raw strings.display-condition for clearer compound-condition output.doc/top-environment.md documenting the top-environment mechanism.Major release with expanded diagnostics, macro auto-resolution, performance optimizations, and Docker CI upgraded to Chez 10.4.1.
workspace/symbol search is now supported.source and code fields.lambda, case-lambda, let, letrec, let-values, do, define, with-syntax).only, except, rename, and alias modifiers.syntax-rules to syntax-case, let-syntax, and letrec-syntax. Multi-layer macro cascade reference propagation is fixed.define-record-type now infers record types; car/cdr family macros (caar, cadr, caddr, cadddr, caaar, cadar, etc.) have dedicated type rules.eq? hashtables; matrix operations rewritten with cons+reverse.Content-Length, and malformed JSON; shutdown/exit lifecycle fully compliant with the LSP spec; didChange auto-cancellation removed to comply with the spec; request-queue concurrency hardened with cancel barriers and log-mutex.chez-exe switched to the ufo5260987423/chez-exe fork for 10.x compatibility; test suite refactored to use AST search instead of hard-coded positions.Fixed pretty-print bugs that were mixed with standard I/O.
Publish diagnoses, though now only can figure out “fail to find library”.
Fix many bugs.
Fix many bugs and switch between different top environments.
Now, enjoy type inference!
Now hover and auto completion is ready for use. I also have done many things about parsing fault tolerance.
Fix bugs on uri parsing, do you know LSP request uri may wrongly process escape characters?
Fault tolerant parser.
Fix: Some protocol api bugs. And now it’s basically smooth with Magic Scheme and Vscode.
Fix: hover api. It failed when processing meta.
Why completion api doesn’t work well? I don’t know and just fix.
I just fixed some bugs processing my own other projects.
I just fixed some bugs processing SS/SCM codes.
Re-construct the identifier catching mechanism with abstract interpreter.
Scheme-langserver now releases type information used in corresponding libraries! Its soundness is still not guaranteed!
Type inference has been embedded into autocompletion! And it uses a homemade DSL.
Fix bug: sometimes can’t shutdown server. Optimization: re-construct document-sync mechanism.
Add ss/scm-import-rnrs option.
Gradual Typing system, all basic rules have been passed.
Fix bugs in 1.0.9.
Abandoned: add parallel and synchronize mechanism.
Build index as document synchronizing instead of workspace initializing.
Catch syntax-* identifier bindings.