Skip to content

Performance boost on map operations + bugfix#15362

Merged
josevalim merged 5 commits into
elixir-lang:mainfrom
gldubc:typechecker-map-loop-investigation-prev
May 12, 2026
Merged

Performance boost on map operations + bugfix#15362
josevalim merged 5 commits into
elixir-lang:mainfrom
gldubc:typechecker-map-loop-investigation-prev

Conversation

@gldubc
Copy link
Copy Markdown
Member

@gldubc gldubc commented May 12, 2026

Add two shortcuts for doing map operations. This allows doing map operations on very large maps, with hundreds of differences (tests added).

Also fix #15330

This shaves off ~120ms on open_api_spex typechecking time.

gldubc added 5 commits May 12, 2026 17:47
Add the two important optimization paths for negative-map projection: value-side projection for map fetch/get and shape-side projection for map put/update.

Keep regression coverage for projected negative maps.
@gldubc gldubc force-pushed the typechecker-map-loop-investigation-prev branch from 193c15c to be9d5b9 Compare May 12, 2026 15:52
@josevalim josevalim merged commit b0db1a2 into elixir-lang:main May 12, 2026
15 checks passed
@josevalim
Copy link
Copy Markdown
Member

💚 💙 💜 💛 ❤️

@gldubc gldubc deleted the typechecker-map-loop-investigation-prev branch May 12, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

map_get/2 wrongly computed on BDD with difference

2 participants