mcp: add project-aware verification and refresh data
ober
e4d03cd6664bceb3b6ba49493071d101747fdf6e
--- a/Makefile +++ b/Makefile @@ -94,6 +94,7 @@ help: @echo "" @echo "LSP server (jerboa-lsp + jlsp binary):" @echo " lsp Compile-check the LSP server (lsp/main.ss)" + @echo " api-signatures Regenerate data/api-signatures.sexp from source" @echo " lsp-gen Regenerate completion tables from data/api-signatures.sexp" @echo " lsp-run Run the LSP server from source over stdio" @echo " lsp-test Run LSP unit + e2e tests" @@ -626,15 +627,20 @@ jmcp-portable: jmcp jmcp-macos-amd64 jmcp-linux-amd64 jmcp-linux-arm64 jmcp-free # LSP clients already expect), with all boot files + program embedded. LSP_ENTRY = lsp/main.ss LSP_GEN = lsp/gen-completion-tables.ss +API_SIG_GEN = tools/gen-api-signatures.ss LSP_UNIT_TEST = lsp/test/unit-test.ss LSP_E2E_TEST = lsp/test/e2e-test.py LSP_BIN = $(HOME)/.local/bin/jerboa-lsp # Cross builds compile lsp/ + std/ against the host libdirs; boot files come # from jerboa's own cross prefixes (.chez-cross-<m>). LSP_XC_LIBDIRS = $(JERBOA_HOME):$(JERBOA_HOME)/lib:$(JERBOA_HOME)/.chez-cross-ta6le/lib:$(JERBOA_HOME)/.chez-cross-ta6fb/lib -.PHONY: lsp lsp-gen lsp-run lsp-test lsp-test-unit lsp-test-e2e \ +.PHONY: api-signatures lsp lsp-gen lsp-run lsp-test lsp-test-unit lsp-test-e2e \ jlsp jlsp-install jlsp-linux-amd64 jlsp-freebsd-amd64 jlsp-portable +# Regenerate the MCP/LSP API map from current library-form source files. +api-signatures: chez + @JERBOA_HOME=$(JERBOA_HOME) $(SCHEME) --script $(API_SIG_GEN) + # Regenerate the completion tables from the live API map (data/api-signatures.sexp). lsp-gen: chez @JERBOA_HOME=$(JERBOA_HOME) $(SCHEME) --script $(LSP_GEN) --- a/data/api-signatures.sexp +++ b/data/api-signatures.sexp @@ -1,4 +1,4 @@ -(("errors") ("generated" . "2026-04-22") +(("errors") ("generated" . "2026-05-27") ("modules" ("(jerboa build musl)" ("exports" "build-musl-binary" "make-musl-cross-target" @@ -7,7 +7,7 @@ "musl-cross-available?" "musl-crt-objects" "musl-gcc-path" "musl-libkernel-path" "musl-link-command" "musl-sysroot" "validate-musl-setup") - ("file" . "lib/jerboa/build/musl.sls") + ("file" . "lib/jerboa/build/musl.ss") ("tier" . "core")) ("(jerboa build)" ("exports" "build-binary" "build-boot-file" "build-project" @@ -20,19 +20,19 @@ "target-linux-aarch64" "target-linux-x64" "target-macos-aarch64" "target-macos-x64" "trace-imports" "tree-shake-imports" "wpo-compile") - ("file" . "lib/jerboa/build.sls") + ("file" . "lib/jerboa/build.ss") ("tier" . "core")) ("(jerboa cache)" ("exports" "cache-clear!" "cache-directory" "cache-key" "cache-lookup" "cache-stats" "cache-store!" "with-compilation-cache") - ("file" . "lib/jerboa/cache.sls") + ("file" . "lib/jerboa/cache.ss") ("tier" . "core")) ("(jerboa cloj)" ("exports" "activate-cloj-reader!" "fn-literal" "reader-cloj-mode") - ("file" . "lib/jerboa/cloj.sls") + ("file" . "lib/jerboa/cloj.ss") ("tier" . "core")) ("(jerboa clojure)" ("exports" "*method-tables*" "*struct-types*" "->" "->>" @@ -209,8 +209,8 @@ "with-meta" "with-output-to-string" "with-resource" "write-csv" "write-csv-file" "write-file-string" "write-json" "zip" "zipmap" "~") - ("file" . "lib/jerboa/clojure.sls") - ("tier" . "compat")) + ("file" . "lib/jerboa/clojure.ss") + ("tier" . "core")) ("(jerboa core)" ("exports" "*method-tables*" "*struct-types*" "1+" "1-" "any" "arithmetic-shift" "bind-method!" "bytes->string" @@ -277,7 +277,7 @@ "pointer-size-for-target" "target-arch-aarch64?" "target-arch-riscv64?" "target-arch-x86-64?" "target-os-linux?" "target-os-macos?" "target-os-windows?") - ("file" . "lib/jerboa/cross.sls") + ("file" . "lib/jerboa/cross.ss") ("tier" . "core")) ("(jerboa embed)" ("exports" "make-sandbox" "make-sandbox-config" "sandbox-call" @@ -286,7 +286,7 @@ "sandbox-error?" "sandbox-eval" "sandbox-eval-string" "sandbox-import!" "sandbox-ref" "sandbox-reset!" "sandbox?" "with-sandbox") - ("file" . "lib/jerboa/embed.sls") + ("file" . "lib/jerboa/embed.ss") ("tier" . "core")) ("(jerboa ffi)" ("exports" "begin-ffi" "c-declare" "c-lambda" @@ -301,7 +301,7 @@ "reloader-on-reload!" "reloader-reload!" "reloader-unwatch!" "reloader-watch!" "reloader-watched" "reloader?" "with-reloader") - ("file" . "lib/jerboa/hot.sls") + ("file" . "lib/jerboa/hot.ss") ("tier" . "core")) ("(jerboa lock)" ("exports" "lock-entry-deps" "lock-entry-hash" "lock-entry-name" @@ -311,7 +311,7 @@ "lockfile-read" "lockfile-remove!" "lockfile-write" "lockfile?" "make-lock-entry" "make-lockfile" "sexp->lockfile") - ("file" . "lib/jerboa/lock.sls") + ("file" . "lib/jerboa/lock.ss") ("tier" . "core")) ("(jerboa pkg)" ("exports" "constraint-satisfied?" "dep-name" @@ -322,7 +322,7 @@ "package-description" "package-name" "package-version" "package?" "resolve-deps" "version->list" "version-compare" "version<?" "version=?" "version>=?") - ("file" . "lib/jerboa/pkg.sls") + ("file" . "lib/jerboa/pkg.ss") ("tier" . "core")) ("(jerboa prelude clean)" ("exports" "*method-tables*" "*struct-types*" @@ -355,7 +355,7 @@ "struct-field-set!" "struct-predicate" "struct-type-info" "take" "try" "unique" "until" "while" "write-file-string" "write-json" "zip" "~") - ("file" . "lib/jerboa/prelude/clean.sls") + ("file" . "lib/jerboa/prelude/clean.ss") ("tier" . "core")) ("(jerboa prelude safe)" ("exports" "&jerboa" "&sandbox-error" "*default-timeout*" @@ -416,28 +416,30 @@ "while" "with-input-from-string" "with-output-to-string" "with-resource" "with-resource1" "with-task-scope" "with-timeout" "write-file-string" "write-json" "zip" "~") - ("file" . "lib/jerboa/prelude/safe.sls") + ("file" . "lib/jerboa/prelude/safe.ss") ("tier" . "core")) ("(jerboa prelude)" ("exports" "*method-tables*" "*struct-types*" "->" "->>" - "->>?" "->?" "1+" "1-" ":" "<...>" "<>" "ContractViolation" - "Error" "acons" "add-watch!" "aget" "agetq" "agetv" "aif" - "alist" "alist->hash-table" "alist->plist*" "alist?" - "alists->csv" "and-then" "any" "append-map" "append1" "arem" - "arem!" "aremq" "aremq!" "aremv" "aremv!" "as->" "aset" - "aset!" "asetq" "asetq!" "asetv" "asetv!" "assert!" - "assoc-in" "assoc-in!" "atom" "atom-deref" "atom-reset!" - "atom-swap!" "atom-update!" "atom?" "awhen" "begin-ffi" - "bind-method!" "butlast" "c-declare" "c-lambda" - "call-method" "call-with-list-builder" "capture" "catch" - "chain" "chain-and" "comp" "compare-and-set!" "complement" - "compose" "compose1" "cond->" "cond->>" "conjoin" - "constantly" "cpu-count" "csv->alists" "csv-port->rows" - "curry" "curryn" "cut" "cute" "date->string" - "datetime->alist" "datetime->epoch" "datetime->iso8601" - "datetime->julian" "datetime->string" "datetime-add" - "datetime-clamp" "datetime-day" "datetime-diff" - "datetime-floor-day" "datetime-floor-hour" + "->>?" "->?" "1+" "1-" ":" ":-" ":?" ":~" "<...>" "<>" + "ContractViolation" "Error" "acons" "add-watch!" "aget" + "agetq" "agetv" "aif" "alist" "alist->hash-table" + "alist->plist*" "alist?" "alists->csv" "and-then" "any" + "append-map" "append1" "arem" "arem!" "aremq" "aremq!" + "aremv" "aremv!" "as->" "aset" "aset!" "asetq" "asetq!" + "asetv" "asetv!" "assert!" "assoc-in" "assoc-in!" "atom" + "atom-deref" "atom-reset!" "atom-swap!" "atom-update!" + "atom?" "awhen" "begin-ffi" "bind-method!" "butlast" + "c-declare" "c-lambda" "call-method" + "call-with-list-builder" "capture" "catch" "chain" + "chain-and" "comp" "compare-and-set!" "complement" "compose" + "compose1" "cond->" "cond->>" "conjoin" "constantly" + "contract-violation-message" "contract-violation-who" + "contract-violation?" "cpu-count" "csv->alists" + "csv-port->rows" "curry" "curryn" "cut" "cute" + "date->string" "datetime->alist" "datetime->epoch" + "datetime->iso8601" "datetime->julian" "datetime->string" + "datetime-add" "datetime-clamp" "datetime-day" + "datetime-diff" "datetime-floor-day" "datetime-floor-hour" "datetime-floor-month" "datetime-hour" "datetime-max" "datetime-min" "datetime-minute" "datetime-month" "datetime-nanosecond" "datetime-now" "datetime-offset" @@ -471,9 +473,10 @@ "identity" "if-let" "in-bytes" "in-chars" "in-hash-keys" "in-hash-pairs" "in-hash-values" "in-indexed" "in-lines" "in-list" "in-naturals" "in-port" "in-producer" "in-range" - "in-string" "in-vector" "interleave" "interpose" "iota" - "iterate-n" "json-object->string" "julian->datetime" "juxt" - "keep" "keyword->string" "keyword?" "last-pair" "leap-year?" + "in-range-inclusive?" "in-range?" "in-string" "in-vector" + "interleave" "interpose" "iota" "iterate-n" + "json-object->string" "julian->datetime" "juxt" "keep" + "keyword->string" "keyword?" "last-pair" "leap-year?" "length<=?" "length<=n?" "length<?" "length<n?" "length=?" "length=n?" "length>=?" "length>=n?" "length>?" "length>n?" "let-alist" "let-hash" "list->hash-table" "list-of?" @@ -492,38 +495,51 @@ "pp-to-string" "ppd" "ppd-to-string" "pprint" "prem" "prem!" "premq" "premq!" "premv" "premv!" "printf" "processor-count" "pset" "pset!" "psetq" "psetq!" "psetv" "psetv!" "push!" - "random-integer" "rassoc" "re" "re-find-all" "re-fold" - "re-groups" "re-match-end" "re-match-full" "re-match-group" - "re-match-groups" "re-match-named" "re-match-start" - "re-match?" "re-replace" "re-replace-all" "re-search" - "re-split" "re?" "read-all-as-lines" "read-all-as-string" - "read-csv" "read-csv-file" "read-file-lines" - "read-file-string" "read-json" "read-line" "reductions" - "regex-match" "regex-replace" "regex-replace-all" - "regex-search" "register-struct-type!" "remove-watch!" - "reset!" "result->option" "result->values" "result?" + "raise-contract-violation" "random-integer" "rassoc" "re" + "re-find-all" "re-fold" "re-groups" "re-match-end" + "re-match-full" "re-match-group" "re-match-groups" + "re-match-named" "re-match-start" "re-match?" "re-replace" + "re-replace-all" "re-search" "re-split" "re?" + "read-all-as-lines" "read-all-as-string" "read-csv" + "read-csv-file" "read-file-lines" "read-file-string" + "read-json" "read-line" "reductions" "regex-match" + "regex-replace" "regex-replace-all" "regex-search" + "register-struct-type!" "remove-watch!" "reset!" + "result->option" "result->values" "result?" "results-partition" "rows->csv-string" "rx" "sequence-results" "shared-cas!" "shared-ref" "shared-set!" - "shared-swap!" "shared-update!" "shared?" "slice" "snoc" - "some" "some->" "some->>" "some-fn" "sort" "sort!" "split" - "split-at" "split-with" "stable-sort" "stable-sort!" "str" - "string->json-object" "string->keyword" "string-contains" - "string-empty?" "string-find" "string-find-all" - "string-index" "string-join" "string-map" "string-match?" - "string-prefix?" "string-split" "string-suffix?" - "string-trim" "strip-meta" "struct-field-ref" - "struct-field-set!" "struct-predicate" "struct-type-info" - "swap!" "take" "take-last" "take-until" "take-while" - "time->string" "try" "try-result" "try-result*" "unique" - "until" "unwind-protect" "unwrap" "unwrap-err" "unwrap-or" - "unwrap-or-else" "update-in" "update-in!" "using" - "vary-meta" "vderef" "volatile!" "volatile?" "vreset!" - "vswap!" "when-let" "when/list" "while" "with-catch" - "with-id" "with-input-from-string" "with-list-builder" - "with-lock" "with-meta" "with-output-to-string" - "with-resource" "write-csv" "write-csv-file" - "write-file-string" "write-json" "zip" "~") - ("file" . "lib/jerboa/prelude.sls") + "shared-swap!" "shared-update!" "shared?" "sleep-ms" "slice" + "snoc" "some" "some->" "some->>" "some-fn" "sort" "sort!" + "split" "split-at" "split-with" "stable-sort" "stable-sort!" + "str" "string->json-object" "string->keyword" + "string-contains" "string-empty?" "string-find" + "string-find-all" "string-index" "string-join" "string-map" + "string-match?" "string-prefix?" "string-split" + "string-suffix?" "string-trim" "strip-meta" + "struct-field-ref" "struct-field-set!" "struct-predicate" + "struct-type-info" "swap!" "take" "take-last" "take-until" + "take-while" "time->string" "try" "try-result" "try-result*" + "unique" "until" "unwind-protect" "unwrap" "unwrap-err" + "unwrap-or" "unwrap-or-else" "update-in" "update-in!" + "using" "vary-meta" "vderef" "volatile!" "volatile?" + "vreset!" "vswap!" "when-let" "when/list" "while" + "with-catch" "with-id" "with-input-from-string" + "with-list-builder" "with-lock" "with-meta" + "with-output-to-string" "with-resource" "write-csv" + "write-csv-file" "write-file-string" "write-json" "zip" "~") + ("file" . "lib/jerboa/prelude.ss") + ("tier" . "core")) + ("(jerboa pure audit)" + ("exports" "discover-jerboa-projects" "pure-finding-category" + "pure-finding-evidence" "pure-finding-file" + "pure-finding-line" "pure-finding-project" + "pure-finding-recommendation" "pure-finding-severity" + "pure-finding?" "pure-report->markdown" + "pure-report->summary-line" "pure-report-blocking-findings" + "pure-report-clean?" "pure-report-files" + "pure-report-findings" "pure-report-root" + "pure-report-summary" "scan-project" "scan-projects") + ("file" . "lib/jerboa/pure/audit.ss") ("tier" . "core")) ("(jerboa reader)" ("exports" "*max-block-comment-depth*" "*max-list-length*" @@ -542,7 +558,7 @@ ("exports" "*package-dir*" "*registry-file*" "installed-packages" "package-install!" "package-installed?" "package-uninstall!" "package-update!" "registry-lookup" "registry-search") - ("file" . "lib/jerboa/registry.sls") + ("file" . "lib/jerboa/registry.ss") ("tier" . "core")) ("(jerboa runtime)" ("exports" "*method-tables*" "*struct-types*" "1+" "1-" @@ -562,6 +578,13 @@ "with-exception-handler" "~") ("file" . "lib/jerboa/runtime.sls") ("tier" . "core")) + ("(jerboa rust codegen)" + ("exports" "safe-rust-expression->string" "safe-rust-expression?" + "safe-rust-form->string" "safe-rust-form?" + "safe-rust-program->string" "safe-rust-type?" + "write-safe-rust-program") + ("file" . "lib/jerboa/rust/codegen.ss") + ("tier" . "core")) ("(jerboa translator)" ("exports" "default-transforms" "make-translator" "translate-brackets" "translate-define-values" @@ -576,10 +599,116 @@ "translate-using") ("file" . "lib/jerboa/translator.sls") ("tier" . "core")) + ("(jerboa typed checker)" + ("exports" "check-and-elaborate-typed-module" + "check-and-elaborate-typed-modules" "check-typed-module" + "check-typed-modules" "elaborate-typed-def-ir" + "elaborated-def-body-ir" "elaborated-def-decl" + "elaborated-def-name" "elaborated-def?" + "make-elaborated-def" "make-typed-check-error" + "typecheck-typed-library-form" "typed-check-error->string" + "typed-check-error-detail" "typed-check-error-hint" + "typed-check-error-kind" "typed-check-error-message" + "typed-check-error-source" "typed-check-error?" + "typed-module-valid?") + ("file" . "lib/jerboa/typed/checker.ss") + ("tier" . "core")) + ("(jerboa typed core)" + ("exports" "make-typed-ir-begin" "make-typed-ir-binding" + "make-typed-ir-bytes-build" "make-typed-ir-call" + "make-typed-ir-for-fold" "make-typed-ir-if" + "make-typed-ir-let" "make-typed-ir-lit" + "make-typed-ir-match" "make-typed-ir-match-clause" + "make-typed-ir-var" "typed-ir-begin-exprs" + "typed-ir-begin-source" "typed-ir-begin-type" + "typed-ir-begin?" "typed-ir-binding-expr" + "typed-ir-binding-name" "typed-ir-binding?" + "typed-ir-bytes-build-body" "typed-ir-bytes-build-size" + "typed-ir-bytes-build-source" "typed-ir-bytes-build-type" + "typed-ir-bytes-build-var-name" "typed-ir-bytes-build?" + "typed-ir-call-args" "typed-ir-call-info" + "typed-ir-call-kind" "typed-ir-call-kinds" + "typed-ir-call-operator" "typed-ir-call-source" + "typed-ir-call-type" "typed-ir-call?" + "typed-ir-for-fold-acc-init" "typed-ir-for-fold-acc-name" + "typed-ir-for-fold-body" "typed-ir-for-fold-range-end" + "typed-ir-for-fold-range-start" "typed-ir-for-fold-source" + "typed-ir-for-fold-type" "typed-ir-for-fold-var-name" + "typed-ir-for-fold?" "typed-ir-if-else" "typed-ir-if-source" + "typed-ir-if-test" "typed-ir-if-then" "typed-ir-if-type" + "typed-ir-if?" "typed-ir-let-bindings" "typed-ir-let-body" + "typed-ir-let-source" "typed-ir-let-type" "typed-ir-let?" + "typed-ir-lit-source" "typed-ir-lit-type" + "typed-ir-lit-value" "typed-ir-lit?" + "typed-ir-match-clause-bindings" + "typed-ir-match-clause-body" "typed-ir-match-clause-case" + "typed-ir-match-clause-field-types" "typed-ir-match-clause?" + "typed-ir-match-clauses" "typed-ir-match-default" + "typed-ir-match-scrutinee" "typed-ir-match-scrutinee-type" + "typed-ir-match-source" "typed-ir-match-type" + "typed-ir-match?" "typed-ir-node-source" + "typed-ir-node-type" "typed-ir-node?" "typed-ir-var-name" + "typed-ir-var-source" "typed-ir-var-type" "typed-ir-var?") + ("file" . "lib/jerboa/typed/core.ss") + ("tier" . "core")) + ("(jerboa typed parser)" + ("exports" "expr->list" "expr-cadddr" "expr-caddr" + "expr-cadr" "expr-car" "expr-cdddr" "expr-cdr" "expr-length" + "expr-list?" "expr-map" "expr-pair?" "expr-source" + "expr-symbol?" "expr-value" "make-typed-def" + "make-typed-field" "make-typed-module" "make-typed-param" + "make-typed-record" "make-typed-resource" + "make-typed-type-decl" "make-typed-variant" + "make-typed-variant-case" "parse-typed-declaration" + "parse-typed-library" "parse-typed-type" + "strip-source-annotations" "typed-def-body" + "typed-def-effects" "typed-def-name" "typed-def-params" + "typed-def-return-type" "typed-def-source" "typed-def?" + "typed-field-mutable?" "typed-field-name" + "typed-field-source" "typed-field-type" "typed-field?" + "typed-library-form?" "typed-module-declarations" + "typed-module-exports" "typed-module-imports" + "typed-module-name" "typed-module-source" "typed-module?" + "typed-param-name" "typed-param-source" "typed-param-type" + "typed-param?" "typed-record-fields" "typed-record-name" + "typed-record-source" "typed-record?" "typed-resource-close" + "typed-resource-name" "typed-resource-source" + "typed-resource?" "typed-type-decl-name" + "typed-type-decl-source" "typed-type-decl?" + "typed-variant-case-fields" "typed-variant-case-name" + "typed-variant-case-source" "typed-variant-case?" + "typed-variant-cases" "typed-variant-name" + "typed-variant-source" "typed-variant?") + ("file" . "lib/jerboa/typed/parser.ss") + ("tier" . "core")) + ("(jerboa typed rust)" + ("exports" "abi-safe-def?" "abi-safe-type?" "abi-wrapper-name" + "rust-symbol-name" "typed-library-form->rust-string" + "typed-library-forms->rust-crate-files" + "typed-library-forms->rust-crate-string" + "typed-module->rust-string" + "typed-modules->rust-crate-files" + "typed-modules->rust-crate-string") + ("file" . "lib/jerboa/typed/rust.ss") + ("tier" . "core")) + ("(jerboa typed wrapper)" + ("exports" "abi-chez-type" + "typed-library-form->jerboa-wrapper-library-string" + "typed-library-form->jerboa-wrapper-string" + "typed-library-forms->jerboa-wrapper-files" + "typed-library-forms->jerboa-wrapper-library-files" + "typed-module->jerboa-wrapper-library-string" + "typed-module->jerboa-wrapper-string" + "typed-module-wrapper-file-name" + "typed-module-wrapper-library-file-path" + "typed-modules->jerboa-wrapper-files" + "typed-modules->jerboa-wrapper-library-files") + ("file" . "lib/jerboa/typed/wrapper.ss") + ("tier" . "core")) ("(jerboa wasm closure)" ("exports" "free-variables" "lambda-lift" "lambda-params") - ("file" . "lib/jerboa/wasm/closure.sls") - ("tier" . "unstable")) + ("file" . "lib/jerboa/wasm/closure.ss") + ("tier" . "core")) ("(jerboa wasm codegen)" ("exports" "compile-expr" "compile-program" "context-add-func!" "context-add-local!" @@ -605,8 +734,8 @@ "wasm-module-start" "wasm-module-tables" "wasm-module-tags" "wasm-module-types" "wasm-module?" "wasm-type-params" "wasm-type-results") - ("file" . "lib/jerboa/wasm/codegen.sls") - ("tier" . "unstable")) + ("file" . "lib/jerboa/wasm/codegen.ss") + ("tier" . "core")) ("(jerboa wasm format)" ("exports" "bytevector-builder-append-bv!" "bytevector-builder-append-u8!" "bytevector-builder-build" @@ -756,16 +885,16 @@ "wasm-type-nullref" "wasm-type-rec" "wasm-type-structref" "wasm-type-sub" "wasm-type-sub-final" "wasm-type-void" "wasm-version") - ("file" . "lib/jerboa/wasm/format.sls") - ("tier" . "unstable")) + ("file" . "lib/jerboa/wasm/format.ss") + ("tier" . "core")) ("(jerboa wasm gc)" ("exports" "gc-all-forms" "gc-allocator-forms" "gc-memory-grow-forms" "gc-root-stack-forms") - ("file" . "lib/jerboa/wasm/gc.sls") - ("tier" . "unstable")) + ("file" . "lib/jerboa/wasm/gc.ss") + ("tier" . "core")) ("(jerboa wasm runtime)" ("exports" "make-wasm-array" "make-wasm-i31" "make-wasm-runtime" "make-wasm-store" "make-wasm-struct" @@ -787,8 +916,8 @@ "wasm-struct-type-idx" "wasm-struct?" "wasm-tag-type-idx" "wasm-tag?" "wasm-trap-message" "wasm-trap?" "wasm-validate-module") - ("file" . "lib/jerboa/wasm/runtime.sls") - ("tier" . "unstable")) + ("file" . "lib/jerboa/wasm/runtime.ss") + ("tier" . "core")) ("(jerboa wasm scheme-runtime)" ("exports" "runtime-all-forms" "runtime-arithmetic-forms" "runtime-bytevector-forms" "runtime-closure-forms" @@ -797,8 +926,8 @@ "runtime-equality-forms" "runtime-io-forms" "runtime-list-forms" "runtime-result-forms" "runtime-string-forms" "runtime-vector-forms") - ("file" . "lib/jerboa/wasm/scheme-runtime.sls") - ("tier" . "unstable")) + ("file" . "lib/jerboa/wasm/scheme-runtime.ss") + ("tier" . "core")) ("(jerboa wasm values)" ("exports" "BYTEVECTOR-HEADER-PAYLOAD" "CLOSURE-HEADER-PAYLOAD" "FIXNUM-MASK" "FIXNUM-MAX" @@ -819,7 +948,287 @@ "value-accessor-forms" "value-constructor-forms" "value-global-forms" "value-memory-forms" "value-predicate-forms" "value-tag-forms") - ("file" . "lib/jerboa/wasm/values.sls") + ("file" . "lib/jerboa/wasm/values.ss") + ("tier" . "core")) + ("(lsp analysis background-diagnostics)" + ("exports" + "request-diagnostics!" + "start-background-diagnostics!" + "stop-background-diagnostics!") + ("file" . "lsp/analysis/background-diagnostics.ss") + ("tier" . "unstable")) + ("(lsp analysis cache)" + ("exports" "cache-clear!" "cache-file-changed?" "cache-init!" + "cache-load-symbols" "cache-save-symbols!" + "cache-update-mtime!") + ("file" . "lsp/analysis/cache.ss") + ("tier" . "unstable")) + ("(lsp analysis completion-data)" + ("exports" + "builtin-completions" + "completion-candidates" + "jerboa-keywords") + ("file" . "lsp/analysis/completion-data.ss") + ("tier" . "unstable")) + ("(lsp analysis completion-tables)" + ("exports" + "builtin-completions" + "common-modules" + "jerboa-keywords") + ("file" . "lsp/analysis/completion-tables.ss") + ("tier" . "unstable")) + ("(lsp analysis document)" + ("exports" "document-line-at" "document-line-count" + "document-lines" "file-path->uri" "uri->file-path") + ("file" . "lsp/analysis/document.ss") + ("tier" . "unstable")) + ("(lsp analysis index)" + ("exports" + "find-jerboa-files" + "find-symbol-in-workspace" + "index-file!" + "index-workspace!") + ("file" . "lsp/analysis/index.ss") + ("tier" . "unstable")) + ("(lsp analysis module)" + ("exports" "extract-imports" "find-jerboa-home" + "parse-import-spec" "resolve-import-to-path" + "resolve-module-path") + ("file" . "lsp/analysis/module.ss") + ("tier" . "unstable")) + ("(lsp analysis parser)" + ("exports" "located-form-column" "located-form-end-column" + "located-form-end-line" "located-form-line" + "located-form-value" "located-form?" "parse-source" + "parse-source-safe") + ("file" . "lsp/analysis/parser.ss") + ("tier" . "unstable")) + ("(lsp analysis project-config)" + ("exports" + "load-project-config" + "project-config-exclude-patterns" + "project-config-get" + "project-config-library-dirs") + ("file" . "lsp/analysis/project-config.ss") + ("tier" . "unstable")) + ("(lsp analysis symbols)" + ("exports" "definition-kind->symbol-kind" "extract-symbols" + "sym-info-children" "sym-info-column" "sym-info-detail" + "sym-info-kind" "sym-info-line" "sym-info-name" "sym-info?") + ("file" . "lsp/analysis/symbols.ss") + ("tier" . "unstable")) + ("(lsp capabilities)" + ("exports" "server-capabilities") + ("file" . "lsp/capabilities.ss") + ("tier" . "unstable")) + ("(lsp handlers apply-edit)" + ("exports" + "handle-apply-edit-response" + "make-apply-edit-request" + "pending-edit-callbacks") + ("file" . "lsp/handlers/apply-edit.ss") + ("tier" . "unstable")) + ("(lsp handlers call-hierarchy)" + ("exports" + "handle-incoming-calls" + "handle-outgoing-calls" + "handle-prepare-call-hierarchy") + ("file" . "lsp/handlers/call-hierarchy.ss") + ("tier" . "unstable")) + ("(lsp handlers code-action)" + ("exports" "handle-code-action") + ("file" . "lsp/handlers/code-action.ss") + ("tier" . "unstable")) + ("(lsp handlers code-lens)" + ("exports" "handle-code-lens" "handle-code-lens-resolve") + ("file" . "lsp/handlers/code-lens.ss") + ("tier" . "unstable")) + ("(lsp handlers completion)" + ("exports" "handle-completion") + ("file" . "lsp/handlers/completion.ss") + ("tier" . "unstable")) + ("(lsp handlers configuration)" + ("exports" "handle-did-change-configuration") + ("file" . "lsp/handlers/configuration.ss") + ("tier" . "unstable")) + ("(lsp handlers definition)" + ("exports" "handle-definition") + ("file" . "lsp/handlers/definition.ss") + ("tier" . "unstable")) + ("(lsp handlers diagnostics)" + ("exports" "handle-diagnostic" "publish-diagnostics!") + ("file" . "lsp/handlers/diagnostics.ss") + ("tier" . "unstable")) + ("(lsp handlers execute-command)" + ("exports" "handle-execute-command" "supported-commands") + ("file" . "lsp/handlers/execute-command.ss") + ("tier" . "unstable")) + ("(lsp handlers folding)" + ("exports" "handle-folding-range") + ("file" . "lsp/handlers/folding.ss") + ("tier" . "unstable")) + ("(lsp handlers formatting)" + ("exports" "handle-formatting") + ("file" . "lsp/handlers/formatting.ss") + ("tier" . "unstable")) + ("(lsp handlers highlight)" + ("exports" "handle-highlight") + ("file" . "lsp/handlers/highlight.ss") + ("tier" . "unstable")) + ("(lsp handlers hover)" + ("exports" "handle-hover") + ("file" . "lsp/handlers/hover.ss") + ("tier" . "unstable")) + ("(lsp handlers implementation)" + ("exports" "handle-implementation") + ("file" . "lsp/handlers/implementation.ss") + ("tier" . "unstable")) + ("(lsp handlers inlay-hints)" + ("exports" "handle-inlay-hint") + ("file" . "lsp/handlers/inlay-hints.ss") + ("tier" . "unstable")) + ("(lsp handlers lifecycle)" + ("exports" + "handle-initialize" + "handle-initialized" + "handle-shutdown") + ("file" . "lsp/handlers/lifecycle.ss") + ("tier" . "unstable")) + ("(lsp handlers links)" + ("exports" "handle-document-link") + ("file" . "lsp/handlers/links.ss") + ("tier" . "unstable")) + ("(lsp handlers on-type-formatting)" + ("exports" "handle-on-type-formatting") + ("file" . "lsp/handlers/on-type-formatting.ss") + ("tier" . "unstable")) + ("(lsp handlers references)" + ("exports" "handle-references") + ("file" . "lsp/handlers/references.ss") + ("tier" . "unstable")) + ("(lsp handlers rename)" + ("exports" "handle-prepare-rename" "handle-rename") + ("file" . "lsp/handlers/rename.ss") + ("tier" . "unstable")) + ("(lsp handlers selection)" + ("exports" "handle-selection-range") + ("file" . "lsp/handlers/selection.ss") + ("tier" . "unstable")) + ("(lsp handlers semantic-tokens)" + ("exports" + "handle-semantic-tokens-full" + "semantic-tokens-legend") + ("file" . "lsp/handlers/semantic-tokens.ss") + ("tier" . "unstable")) + ("(lsp handlers signature)" + ("exports" "handle-signature-help") + ("file" . "lsp/handlers/signature.ss") + ("tier" . "unstable")) + ("(lsp handlers symbols)" + ("exports" + "handle-document-symbol" + "handle-workspace-symbol") + ("file" . "lsp/handlers/symbols.ss") + ("tier" . "unstable")) + ("(lsp handlers sync)" + ("exports" + "handle-did-change" + "handle-did-close" + "handle-did-open" + "handle-did-save") + ("file" . "lsp/handlers/sync.ss") + ("tier" . "unstable")) + ("(lsp handlers type-definition)" + ("exports" "handle-type-definition") + ("file" . "lsp/handlers/type-definition.ss") + ("tier" . "unstable")) + ("(lsp handlers type-hierarchy)" + ("exports" + "handle-prepare-type-hierarchy" + "handle-type-hierarchy-subtypes" + "handle-type-hierarchy-supertypes") + ("file" . "lsp/handlers/type-hierarchy.ss") + ("tier" . "unstable")) + ("(lsp handlers will-rename)" + ("exports" "handle-will-rename-files") + ("file" . "lsp/handlers/will-rename.ss") + ("tier" . "unstable")) + ("(lsp jsonrpc)" + ("exports" "INTERNAL-ERROR" "INVALID-PARAMS" "INVALID-REQUEST" + "METHOD-NOT-FOUND" "PARSE-ERROR" "REQUEST-CANCELLED" + "SERVER-NOT-INITIALIZED" "json-get" "json-obj" + "make-jsonrpc-error" "make-jsonrpc-notification" + "make-jsonrpc-response" "parse-jsonrpc-message") + ("file" . "lsp/jsonrpc.ss") + ("tier" . "unstable")) + ("(lsp server)" + ("exports" "register-all-handlers!" "register-notification-handler!" + "register-request-handler!" "send-notification!" + "start-server") + ("file" . "lsp/server.ss") + ("tier" . "unstable")) + ("(lsp state)" + ("exports" "make-server-state" "server-state-config" + "server-state-documents" "server-state-initialized?" + "server-state-initialized?-set!" "server-state-module-cache" + "server-state-send-notification" + "server-state-send-notification-set!" + "server-state-shutdown?" "server-state-shutdown?-set!" + "server-state-symbol-index" "server-state-workspace-root" + "server-state-workspace-root-set!" "server-state?" + "state-all-document-uris" "state-get-config" + "state-get-document" "state-get-module-exports" + "state-get-symbols" "state-remove-document!" + "state-set-document!" "state-set-module-exports!" + "state-set-symbols!") + ("file" . "lsp/state.ss") + ("tier" . "unstable")) + ("(lsp transport)" + ("exports" "read-lsp-message" "write-lsp-message") + ("file" . "lsp/transport.ss") + ("tier" . "unstable")) + ("(lsp types)" + ("exports" "CK-CLASS" "CK-COLOR" "CK-CONSTANT" + "CK-CONSTRUCTOR" "CK-ENUM" "CK-ENUMMEMBER" "CK-EVENT" + "CK-FIELD" "CK-FILE" "CK-FOLDER" "CK-FUNCTION" + "CK-INTERFACE" "CK-KEYWORD" "CK-METHOD" "CK-MODULE" + "CK-OPERATOR" "CK-PROPERTY" "CK-REFERENCE" "CK-SNIPPET" + "CK-STRUCT" "CK-TEXT" "CK-TYPEPARAMETER" "CK-UNIT" + "CK-VALUE" "CK-VARIABLE" "DIAG-ERROR" "DIAG-HINT" + "DIAG-INFO" "DIAG-WARNING" "SK-ARRAY" "SK-BOOLEAN" + "SK-CLASS" "SK-CONSTANT" "SK-CONSTRUCTOR" "SK-ENUM" + "SK-ENUMMEMBER" "SK-EVENT" "SK-FIELD" "SK-FILE" + "SK-FUNCTION" "SK-INTERFACE" "SK-KEY" "SK-METHOD" + "SK-MODULE" "SK-NAMESPACE" "SK-NULL" "SK-NUMBER" "SK-OBJECT" + "SK-OPERATOR" "SK-PACKAGE" "SK-PROPERTY" "SK-STRING" + "SK-STRUCT" "SK-TYPEPARAMETER" "SK-VARIABLE" + "completion-item->json" "diagnostic->json" "location->json" + "make-completion-item" "make-lsp-diagnostic" + "make-lsp-location" "make-lsp-position" "make-lsp-range" + "make-text-edit" "position->json" "range->json" + "text-edit->json") + ("file" . "lsp/types.ss") + ("tier" . "unstable")) + ("(lsp util log)" + ("exports" "*log-level*" "log-level-set!" "lsp-debug" + "lsp-error" "lsp-info" "lsp-log" "lsp-warn") + ("file" . "lsp/util/log.ss") + ("tier" . "unstable")) + ("(lsp util position)" + ("exports" "extract-word-at" "extract-word-before" + "identifier-char?" "line-col->offset" "offset->line-col") + ("file" . "lsp/util/position.ss") + ("tier" . "unstable")) + ("(lsp util string)" + ("exports" "string-contains" "string-contains-ci" "string-join" + "string-prefix?" "string-replace-all" "string-replace-pairs" + "string-split" "string-split-lines" "string-suffix?" + "string-trim" "string-trim-right") + ("file" . "lsp/util/string.ss") + ("tier" . "unstable")) + ("(lsp validation)" + ("exports" "*validation-enabled*" "validate-response") + ("file" . "lsp/validation.ss") ("tier" . "unstable")) ("(std actor bounded)" ("exports" "&mailbox-full" "bounded-send" "default-mailbox-config" @@ -828,7 +1237,7 @@ "mailbox-full-condition?" "mailbox-full?" "mailbox-size" "make-mailbox-config" "make-mailbox-full" "spawn-bounded-actor" "spawn-bounded-actor/linked") - ("file" . "lib/std/actor/bounded.sls") + ("file" . "lib/std/actor/bounded.ss") ("tier" . "stable")) ("(std actor checkpoint)" ("exports" "checkpoint-actor-mailbox" "checkpoint-age" @@ -839,7 +1248,7 @@ "delete-old-checkpoints" "deserialize-value" "list-checkpoints" "make-checkpoint-manager" "restore-actor-mailbox" "restore-value" "serialize-value") - ("file" . "lib/std/actor/checkpoint.sls") + ("file" . "lib/std/actor/checkpoint.ss") ("tier" . "stable")) ("(std actor cluster)" ("exports" "cluster-join!" "cluster-leave!" @@ -852,7 +1261,7 @@ "remote-whereis" "start-node!" "stop-node!" "strategy/least-loaded" "strategy/local-first" "strategy/round-robin" "whereis/any") - ("file" . "lib/std/actor/cluster.sls") + ("file" . "lib/std/actor/cluster.ss") ("tier" . "stable")) ("(std actor cluster-security)" ("exports" "authenticated-message-hmac" @@ -877,7 +1286,7 @@ "node-tls-config-verify-peer?" "node-tls-config?" "replay-window-check!" "replay-window?" "verify-delegation-token" "verify-message-auth") - ("file" . "lib/std/actor/cluster-security.sls") + ("file" . "lib/std/actor/cluster-security.ss") ("tier" . "stable")) ("(std actor core)" ("exports" "actor-alive?" "actor-id" "actor-kill!" @@ -888,7 +1297,7 @@ "make-remote-actor-ref" "self" "send" "set-actor-scheduler!" "set-dead-letter-handler!" "set-remote-send-handler!" "spawn-actor" "spawn-actor/linked") - ("file" . "lib/std/actor/core.sls") + ("file" . "lib/std/actor/core.ss") ("tier" . "stable")) ("(std actor crdt)" ("exports" "gcounter-increment!" "gcounter-merge!" @@ -906,13 +1315,13 @@ "pncounter?" "vclock->alist" "vclock-concurrent?" "vclock-get" "vclock-happens-before?" "vclock-increment!" "vclock-merge!" "vclock?") - ("file" . "lib/std/actor/crdt.sls") + ("file" . "lib/std/actor/crdt.ss") ("tier" . "stable")) ("(std actor deque)" ("exports" "deque-empty?" "deque-pop-bottom!" "deque-push-bottom!" "deque-size" "deque-steal-top!" "make-work-deque" "work-deque?") - ("file" . "lib/std/actor/deque.sls") + ("file" . "lib/std/actor/deque.ss") ("tier" . "stable")) ("(std actor distributed)" ("exports" "*cluster-name*" "*default-send-timeout*" @@ -926,36 +1335,36 @@ "process-group-join!" "process-group-leave!" "process-group-members" "remote-ref-id" "remote-ref-node" "remote-ref?" "serialize-message") - ("file" . "lib/std/actor/distributed.sls") + ("file" . "lib/std/actor/distributed.ss") ("tier" . "stable")) ("(std actor engine)" ("exports" "default-fuel" "engine-pool-stop!" "engine-pool-submit!" "engine-pool-worker-count" "engine-pool?" "make-engine-pool" "spawn-engine-actor") - ("file" . "lib/std/actor/engine.sls") + ("file" . "lib/std/actor/engine.ss") ("tier" . "stable")) ("(std actor mpsc)" ("exports" "make-mpsc-queue" "mpsc-close!" "mpsc-closed?" "mpsc-dequeue!" "mpsc-empty?" "mpsc-enqueue!" "mpsc-length" "mpsc-queue?" "mpsc-try-dequeue!") - ("file" . "lib/std/actor/mpsc.sls") + ("file" . "lib/std/actor/mpsc.ss") ("tier" . "stable")) ("(std actor protocol)" ("exports" "ask" "ask-sync" "defprotocol" "make-reply-channel" "reply" "reply-channel-get" "reply-channel-put!" "reply-channel?" "reply-to" "tell" "with-ask-context") - ("file" . "lib/std/actor/protocol.sls") + ("file" . "lib/std/actor/protocol.ss") ("tier" . "stable")) ("(std actor registry)" ("exports" "register!" "registered-names" "registry-actor" "start-registry!" "unregister!" "whereis") - ("file" . "lib/std/actor/registry.sls") + ("file" . "lib/std/actor/registry.ss") ("tier" . "stable")) ("(std actor scheduler)" ("exports" "cpu-count" "current-scheduler" "default-scheduler" "make-scheduler" "scheduler-start!" "scheduler-stop!" "scheduler-submit!" "scheduler-worker-count" "scheduler?") - ("file" . "lib/std/actor/scheduler.sls") + ("file" . "lib/std/actor/scheduler.ss") ("tier" . "stable")) ("(std actor supervisor)" ("exports" "child-spec-id" "child-spec-restart" "child-spec-shutdown" @@ -964,14 +1373,14 @@ "supervisor-count-children" "supervisor-delete-child!" "supervisor-restart-child!" "supervisor-start-child!" "supervisor-terminate-child!" "supervisor-which-children") - ("file" . "lib/std/actor/supervisor.sls") + ("file" . "lib/std/actor/supervisor.ss") ("tier" . "stable")) ("(std actor transport)" ("exports" "bytes->message" "current-node-id" "drop-connection!" "make-remote-actor-ref" "message->bytes" "start-node!" "start-node-server!" "transport-remote-send!" "transport-shutdown!") - ("file" . "lib/std/actor/transport.sls") + ("file" . "lib/std/actor/transport.ss") ("tier" . "stable")) ("(std actor)" ("exports" "actor-alive?" "actor-id" "actor-kill!" @@ -994,24 +1403,34 @@ "supervisor-restart-child!" "supervisor-start-child!" "supervisor-terminate-child!" "supervisor-which-children" "tell" "unregister!" "whereis" "with-ask-context") - ("file" . "lib/std/actor.sls") + ("file" . "lib/std/actor.ss") ("tier" . "stable")) ("(std agent)" - ("exports" "agent" "agent-error" "agent-value" "agent?" "await" - "clear-agent-errors" "restart-agent" "send" "send-off" + ("exports" "agent" "agent-error" "agent-error-handler" + "agent-error-mode" "agent-value" "agent?" "await" + "await-for" "clear-agent-errors" "restart-agent" "send" + "send-off" "set-error-handler!" "set-error-mode!" "shutdown-agent!") - ("file" . "lib/std/agent.sls") + ("file" . "lib/std/agent.ss") ("tier" . "stable")) ("(std amb)" ("exports" "amb" "amb-assert" "amb-collect" "amb-fail" "amb-find") - ("file" . "lib/std/amb.sls") + ("file" . "lib/std/amb.ss") ("tier" . "stable")) ("(std app)" ("exports" "app-arguments" "app-init-proc" "app-main-proc" "app-name" "app-run!" "app?" "current-app-name" "define-application" "make-app") - ("file" . "lib/std/app.sls") + ("file" . "lib/std/app.ss") + ("tier" . "stable")) + ("(std archive tar)" + ("exports" + "tar-block-size" + "tar-entries" + "tar-find" + "tar-walk") + ("file" . "lib/std/archive/tar.ss") ("tier" . "stable")) ("(std arena)" ("exports" "arena-alloc" "arena-alloc-bytes" "arena-alloc-string" @@ -1019,7 +1438,7 @@ "arena-intern!" "arena-intern-lookup" "arena-remaining" "arena-reset!" "arena-rollback!" "arena-stats" "arena-used" "arena?" "make-arena" "make-arena-interner" "with-arena") - ("file" . "lib/std/arena.sls") + ("file" . "lib/std/arena.ss") ("tier" . "stable")) ("(std assert)" ("exports" @@ -1027,7 +1446,7 @@ "assert-equal!" "assert-exception" "assert-pred") - ("file" . "lib/std/assert.sls") + ("file" . "lib/std/assert.ss") ("tier" . "stable")) ("(std async)" ("exports" "Async" "Async::descriptor" "async-channel-get" @@ -1035,7 +1454,19 @@ "async-promise-resolved?" "async-promise-value" "async-promise?" "async-sleep" "async-task" "async-task?" "make-async-promise" "run-async" "run-async/workers") - ("file" . "lib/std/async.sls") + ("file" . "lib/std/async.ss") + ("tier" . "stable")) + ("(std atomics)" + ("exports" "atomic-add!" "atomic-cas!" "atomic-counter?" + "atomic-dec!" "atomic-flag-clear!" "atomic-flag-read" + "atomic-flag-set!" "atomic-flag-test-and-set!" + "atomic-flag?" "atomic-inc!" "atomic-read" "atomic-reset!" + "atomic-sub!" "make-atomic-counter" "make-atomic-flag" + "make-per-worker-counters" "per-worker-counters-add!" + "per-worker-counters-length" "per-worker-counters-ref" + "per-worker-counters-reset!" "per-worker-counters-sum" + "per-worker-counters?") + ("file" . "lib/std/atomics.ss") ("tier" . "stable")) ("(std binary)" ("exports" "*byte-order*" "binary-pack" "binary-read" @@ -1048,12 +1479,12 @@ "bv-u32-set!" "bv-u64-ref" "bv-u64-set!" "bv-u8-ref" "bv-u8-set!" "define-binary-struct" "f32" "f64" "s16" "s32" "s64" "s8" "u16" "u32" "u64" "u8" "with-byte-order") - ("file" . "lib/std/binary.sls") + ("file" . "lib/std/binary.ss") ("tier" . "stable")) ("(std borrow)" ("exports" "borrow" "borrow-count" "borrow-mut" "consume" "make-owned" "owned-consumed?" "owned-ref" "owned-set!" "owned?") - ("file" . "lib/std/borrow.sls") + ("file" . "lib/std/borrow.ss") ("tier" . "stable")) ("(std build cross)" ("exports" "build-matrix-results" "compile-for-target" @@ -1068,7 +1499,7 @@ "platform/riscv64-linux" "platform/x86_64-linux" "platform/x86_64-macos" "platform=?" "run-build-matrix" "string->platform" "target-platform?") - ("file" . "lib/std/build/cross.sls") + ("file" . "lib/std/build/cross.ss") ("tier" . "stable")) ("(std build reproducible)" ("exports" "artifact-store-get" "artifact-store-has?" @@ -1087,7 +1518,7 @@ "provenance-read" "provenance-source-hash" "provenance-write" "provenance?" "sexp->provenance" "verify-build" "verify-provenance") - ("file" . "lib/std/build/reproducible.sls") + ("file" . "lib/std/build/reproducible.ss") ("tier" . "stable")) ("(std build sbom)"