Skip to content

Catch forgotten definitions and catch up with the BEAM servers - #24

Merged
bbatsov merged 3 commits into
mainfrom
beam-servers
Nov 7, 2026
Merged

bbatsov merged 3 commits into
mainfrom
beam-servers

Conversation

@bbatsov

@bbatsov bbatsov commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

session.persistent now evaluates something else between a definition and its use, which is what it takes to catch a server that keeps only what each eval touches, like repartee did. The repartee profile gets a multiple snippet, so eval.multiple-forms runs there instead of skipping. And with nrepl-beam's fixes merged, -like dialtone and -like repartee have no scenarios left, so they act like nREPL.

session.persistent evaluated a definition and then its use, which
passes on a server that keeps only the definitions each eval touches.
repartee did just that (evals ran with Elixir's prune_binding), so after
`x = 1` and `y = 2` its sessions had lost `x`. The check evaluates the
value snippet in between now.
The profile had no multiple snippet, so eval.multiple-forms always
skipped, and repartee sending only the last value went unnoticed.
nrepl-beam fixed close, unknown-op and multiple values in October, and
stderr and repartee's values in November, but proof serve still did all
of it for -like dialtone and -like repartee, and the test that keeps the
presets in line with the matrix expected it too. Neither server has a
scenario left, which proof list shows as none, and the docs and the
notes on the spec say what they do now.
@bbatsov
bbatsov merged commit e9e325a into main Nov 7, 2026
5 checks passed
@bbatsov
bbatsov deleted the beam-servers branch November 7, 2026 09:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant