Repository navigation
v1.93.0
Changes
- lint: report a repeated match pattern (#915)
- lisp: add a vector pattern to match (#914)
- ci: fetch full history for the API break gate on push
- libschema: fix the final review of record refusals (#908)
- libschema: fix the review of the load rule (#908)
- libschema: refuse s:defmethod outside a load (#908)
- libschema: fix the fourth review of record refusals (#908)
- libschema: fix the third review of record refusals (#908)
- libschema: fix the second review of record refusals (#908)
- libschema: fix the review of record refusals (#908)
- libschema: refuse record writes and late methods at run time (#908)
- lisp: fix the review of let binding patterns (#910)
- lisp: destructuring patterns in let and let* bindings (#910)
- lsp: drop a named return in a record method test (#897)
- lint: fix the second review of the record method checks (#897)
- lint: share the symbol prefilter and snapshot scopes only at methods (#897)
- lint: keep workspace record methods per file, production only (#897)
- lint: read s:defmethod load scope from the CodeWalker (#897)
- lint: add record-defmethod-not-toplevel for call-time s:defmethod (#897)
- lint: know s:defmethod methods from other workspace files (#897)
- lint: add record-captured-set for set! of a closure local in a method (#897)
- libschema: check each object once in ValidateLoaded (#897)
- lisp: add LEnv.RegisterBuiltins, which binds no name (#907)
- libschema: typed methods, interfaces, s:is?, match; rename s:set!; new lint checks (#906)
- Skip ExpandChecked's walk when no check of it can fail (#902)
- libschema: add s:make-interface and Go method formals (#901)
- libschema: document that a record method call is atomic
- lint: expand the record macros without expander mode
- libschema: run :check once per outermost record call
- lint: add record-method-arity, record-defmethod-type and record-plain-set
- libschema: name a method's receiver as its first formal
- lint: add record-unknown-member and record-check-writes
- lint: skip the record checks in forms with no s: symbol
- libschema: format the record type tests with elps fmt
- lint: find record check sites with FindCallSites
- lint: record checks accept defconst and share one walk
- libschema: run :check after each method and restore fields on failure
- lint: add record type checks
- libschema: add record types with methods
- Bump qs from 6.15.2 to 6.17.0 in /editors/vscode (#899)
- Bump vscode-languageclient in /editors/vscode in the vscode-deps group (#888)
- Add Template.ExpandChecked, which expands with quasiquote's checks (#896)
- Add Go function objects (lisp.NewCapturedFun) and save them in durable dumps (#893)
- Bump the actions group across 1 directory with 2 updates (#892)
- Cut releases with the org's shared release workflow (#891)
Breaking changes
API break overrides added since v1.92.0 (surface | symbol | expires | issue | reason):
- go | analysis.RecordMacroTest | 2027-01-29 | elps#908 | in no tagged release; returns a test per top-level form so a bare head resolves in its form's package. Callers call RecordMacroTest(scope, exprs)(top) for each top-level form
- lisp | s:set! | 2027-01-28 | elps#903 | in no tagged release; renamed s:set-field! because (use-package 's) hid lisp:set!. Callers write (s:set-field! obj 'field v)