RepoJournal
Elixir & Phoenix Elixir & Phoenix
156 wires and counting

$ follow Elixir & Phoenix

Keep up with Elixir & Phoenix in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-11-04
stories 6

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

Elixir prunes BDD-to-DNF expansion before it explodes

By RepoJournal · Filed · About Elixir & Phoenix · Composed from the cited sources · methodology

1 person shipped this

The type checker now intersects positive literals while expanding map and tuple BDDs instead of after, cutting one defguard case from 100,834 generated lines to the 3,764 that survived anyway.

Prune disjoint positives when converting map and tuple BDDs to DNF elixir-lang/elixir

by josevalim

Converting a map or tuple BDD to DNF used to expand every path and only then intersect each line's positive literals, discarding the empty results; the positives are now intersected as the conversion proceeds. In the "from multiple defguard" test, 116 map key fetches expanded 100,834 lines of which just 3,764 were non-empty, so the wasted work is the bulk of the cost when a struct union is refi...

Prune disjoint positives when converting map and tuple BDDs to DNF (#16046) elixir-lang/elixir

by José Valim

The commit that lands the pruning in elixir-lang/elixir. This is type checker internals, not a language change: nothing in your code's semantics moves, but analysis time on heavily union-typed map and tuple code does.

Occurrence typing for cond and with elixir-lang/elixir

by José Valim

Occurrence typing extends to `cond` and `with`, so narrowing from a clause's test can flow into the branches that follow it rather than stopping at pattern matches alone. Code that branches on type checks inside `cond` or digs through `with` clauses stands to get more precise analysis without annotation.

Quick answers

What shipped in Elixir & Phoenix on November 4, 2026?
The type checker now intersects positive literals while expanding map and tuple BDDs instead of after, cutting one defguard case from 100,834 generated lines to the 3,764 that survived anyway. In total, 3 commits and 3 pull requests landed.
Who contributed to Elixir & Phoenix on November 4, 2026?
1 developer shipped this update, including josevalim.
What were the notable Elixir & Phoenix updates?
Prune disjoint positives when converting map and tuple BDDs to DNF, Prune disjoint positives when converting map and tuple BDDs to DNF (#16046), and Occurrence typing for cond and with.