$ the-wire · showcase
LiveView refuses hostless joins, Elixir keeps BDD keys in immediates
By RepoJournal · Filed · About Elixir & Phoenix · Composed from the cited sources · methodology
LiveView stopped crashing on joins whose url parses without a host and now resolves JS.patch relative links the way a browser does, while Elixir moved its BDD leaf offsets so keys and node hashes stay inside immediate integers.
Refuse joins whose url has no host instead of crashing (#4490) phoenixframework/phoenix_live_view
A join whose url or redirect parses to a URI with no host, such as "" or "clock-live-session", used to crash the LiveView channel with a CaseClauseError in verified_mount/8; those joins are now refused instead, since session_route/3 was still resolving them to an internal route that authorize_session/3 accepted.
resolve relative links (#4491) phoenixframework/phoenix_live_view
JS.patch("?foo=bar") now resolves like the browser would on <a href="?foo=bar">, so query-only and relative patch targets no longer depend on how the client happens to resolve the string.
Keep BDD leaf keys and hashes within immediate integers elixir-lang/elixir
Closed map and tuple leaves were offset by 1 <<< 60, putting keys below -2^59 into bignum territory on 64-bit systems, so every leaf creation, comparison, and node hash over such a leaf allocated. The offset is now 1 <<< 58, still ordering closed leaves first as long as leaves have fewer than 2^31 elements, and leaf keys are masked to 32 bits when hashing nodes, per Rafael Soares dos Santos's c...
Pin-point root cause on cascading type failures elixir-lang/elixir
José Valim's commit pins the root cause when a type failure cascades through the type checker, so the reported error points at the origin rather than the downstream symptom.
Improve shift docs, closes #16051 elixir-lang/elixir
The long tail is documentation: the shift docs were rewritten to close out the open question in #16051, and the LiveView asset build was regenerated.